ARK>Или вы считаете, что такой дыры в процессоре быть не может в принципе? ARK>Если такой дыры в процессоре даже теоретически быть не может, то почему тогда вы считаете, что такая дыра может быть в верификаторе?
Верфицировать железо, кмк, гораздо проще чем софт.
scf>- Другие сетевые протоколы в сети Internet. Помимо личного адреса каждой кофеварке, должны обеспечивать идентификацию, аутентификацию и шифрование для каждого каждого узла в сети. сетевой адрес должен быть прибит гвоздями к конкретной железке и провайдеру
Хм. Вообще-то он есть — MAC-адрес. Почти прибит. Но за пределы локалки не передается. Нужно ? Зачем ?
Купил я кофеварку, а к ней прибит адрес этот. И переехал в другую страну. И оказался я в ней со своим адресом, видным всей сети, как белая ворона. Никакой структуры у сети больше нет. Ни тебе маски подсети, ни нормальной маршрутизации. Ищи эту кофеварку где хочешь. Адрес прибит, а вот кофеварка уехала вместе с адресом.
scf>- Стандартный байткод. Все языки высокого уровня, как со сборкой мусора, так и без неё, компилируются только в него. Компиляторы в нативный код стоят на машинах конечных пользователей и понимают только стандартный байткод. У стандартного байткода есть "безопасное" подмножество, программы на котором можно использовать в песочницах типа браузера.
Хм. Я хочу выжать из процессора максимум того, что он может дать. Байткод все же медленее. Запрет натива ?
scf>- Полная aппаратная и программная поддержка изоляции процессов в ОС.
А разве ее нет ?
scf>- Единый стандарт взаимодействия программ с ОС. POSIX был хорош, но недостаточен.
Имеется в виду, чтобы не было зоопарка в виде WinAPI/OLE/RPC и т.д. ? Тогда согласен
scf>- Единый стандарт платформ для дистрибьюции софта, включая платный софт. Включая платные библиотеки, входящие в платный софт
+1
scf>- Компании, которые специализируются на разработке платных библиотек и рантаймов с монетизацией "0.1% с каждой проданной программы, которая использует нашу либу"
Здравствуйте, Sharov, Вы писали:
ARK>>Или вы считаете, что такой дыры в процессоре быть не может в принципе? ARK>>Если такой дыры в процессоре даже теоретически быть не может, то почему тогда вы считаете, что такая дыра может быть в верификаторе?
S>Верфицировать железо, кмк, гораздо проще чем софт.
Резко сложнее.
Гонки, иголки, наводки, неустойчивые состояния...
S>(небольшая придирка) Фирмы, работающие в таких объемами так быстро не исчезают. Как минимум сотрудники на тех поддержку и саппорт отстаться должны.
Я вроде ни о каких объемах ничего не говорил.
Ну а что касается исчезновения — да даже и исчезновение иногда не требуется. Просто прекращена поддержка.
Вот есть такая фирма — Microsoft. И была такая ОС — Windows 2000. И нет ее поддержки.
А между тем еще 5 лет назад (не знаю, как сейчас) именно на этой ОС работали табло для показа отправления в аэропорту Домодедово. Мне об этом одно табло само сказало, потому что на нем был какой-то экран с MessageBox (программа упала) и на нем было черным по белому — Windows 2000.
Здравствуйте, alex_public, Вы писали:
_>В миллиметрах — это тоже не верно, потому что для человеческого взгляда важен угловой размер, а не линейный. Т.е. 7мм на смартфоне и на телевизоре — это очень разные вещи, из-за того, что их рассматривают с разного расстояния.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Хм. Вообще-то он есть — MAC-адрес. Почти прибит. Но за пределы локалки не передается. Нужно ? Зачем ?
Чтобы после переезда в другую страну включаешь кофеварку, она лезет на сервер. И сервер знает, что а) это та же кофеварка б) она теперь в другой стране. Решает проблему аутентификации и локализации.
scf>>- Стандартный байткод. Все языки высокого уровня, как со сборкой мусора, так и без неё, компилируются только в него. Компиляторы в нативный код стоят на машинах конечных пользователей и понимают только стандартный байткод. У стандартного байткода есть "безопасное" подмножество, программы на котором можно использовать в песочницах типа браузера.
PD>Хм. Я хочу выжать из процессора максимум того, что он может дать. Байткод все же медленее. Запрет натива ?
Я же написал, что на конечной машине он компилируется . Да, запрет натива. Производители процессоров выпускают новую модель вместе с компилятором под нее.
scf>>- Полная aппаратная и программная поддержка изоляции процессов в ОС. PD>А разве ее нет ?
Нет. На телефонах что-то похожее, но можно и нужно лучше. Чтобы каждая программа была готова работать, когда ей отрубят сеть, воткнут лимиты на место на диске и ограничат цпу, память и пропускную способность диска.
Здравствуйте, Sharov, Вы писали:
ARK>>Или вы считаете, что такой дыры в процессоре быть не может в принципе? ARK>>Если такой дыры в процессоре даже теоретически быть не может, то почему тогда вы считаете, что такая дыра может быть в верификаторе?
S>Верфицировать железо, кмк, гораздо проще чем софт.
Не уверен. Просто существующие языки плохо подходят для верификации.
PD>А вот что будут делать, если в алгоритме статической верификации обнаружилась ошибка, а программы уже прошли этап этой верификации, разошлись в миллионах копий и теперь рушат ОС или получают доступ к чужой памяти — объясни. Срочно патчить все выпущенные программы ? Как ? Фирма, выпустившая эту программу, давно закрылась, авторы разбрелись кто куда.
PD>Ну а что касается исчезновения — да даже и исчезновение иногда не требуется. Просто прекращена поддержка. PD>Вот есть такая фирма — Microsoft. И была такая ОС — Windows 2000. И нет ее поддержки.
ms методично и спокойно переводила людей на более новые ОС. Т.е. это не так "хоп и исчезла". К тому же, если таже 2000 так критична, то наверняка можно договориться о доработке за деньги.
Здравствуйте, Pavel Dvorkin, Вы писали:
WH>>ОС находит те места, которые не может верифицировать и добавляет туда проверку. PD>М-да... В общем, без проверок в рантайме ничего не выходит ни у тебя, ни у AlexRK.
Демагогию не разводи.
Мы говорим про крайне гипотетический случай, когда нашли ошибку в верификаторе.
PD>Компиляция прошла давно, на машине пользователя бинарник. Машинные коды верифицировать будем ?
Верифицировать нужно всегда и только на машине пользователя.
Иначе что помешает хакеру заслать зловредный бинарник?
Не очень ясно о чём вы AlexRK говорите. Но я говорю про верификацию промежуточного кода. И компиляцию на этапе установки.
Но если уж на, то пошло, то нет никаких проблем верифицировать бинарный код. Всё что для этого нужно чтобы компилятор рядом с исполняемым файлом положил необходимую метаинформацию.
WH>>Либо в клиническом случае пользователи качают патч на эту программу и всё. PD>Фирма, выпустившая программу, давно не существует, программисты разбрелись. Ты в курсе, что программы иногда живут очень долго ?
Я в курсе. Но если программа так нужна, то для неё сделают неофициальный патч.
Например, Vampire: The Masquerade — Bloodlines до рабочего состояния довели энтузиасты.
И это нужно только если:
1)Нашли ошибку в верификаторе. Я в это не верю, но допустим.
2)Программа не прошла новую верификацию.
3)Автоматическое исправление не дало удовлетворительный результат.
Вероятность каждого из этих событий ничтожна.
WH>>Ибо верификатор на несколько порядков проще чем процессор. PD>Вот только бы знать, насколько менее надежен.
На 100% надёжен. Ибо математически доказан. В отличии от процессора.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
А еще транзисторы могут отказывать -- температура, космос и т.д. Все это не касается логики работы процессора, которая вполне себе верифицируема.
Я не утверждаю, что это легко. Но это гораздо(!) проще верификации софта.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Компиляция прошла давно, на машине пользователя бинарник. Машинные коды верифицировать будем ?
Не, на машине пользователя некое промежуточное представление (высокоуровневый бинарник). Это промежуточное представление тоже верифицируется (при установке программы), но более упрощенным алгоритмом.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, samius, Вы писали:
S>>Гибрид необязателен. Берем C++ и верификатор. Я не призываю его брать после пропажи всего софта, я просто показываю что выбор не ограничен двумя пунктами.
PD>Я же не против верификатора, но речь-то идет об ОС, где нужна 100% надежность, хотя бы в принципе. Одна дыра — и мало не покажется, не заштопаешь. Программы уже на компьютере пользователя, этап статической верификации позади, иной защиты нет, не поправишь, как Meltdown.
Очевидно что дыра может быть в чем угодно, хоть в верификаторе, хоть в железе. Очевидно, что при наличии дыры никакой 100% надежности быть не может вне зависимости от выбранного подхода. О чем мы вообще рассуждаем? Если закладываем вероятность дыры, то будет и вероятность ненадежности.
PD>Вот тут не понял. Писать с нуля, конечно, придется. Но в итоге хочу я одновременно иметь 2 работающих приложения. И вариант, что мы с одного на другое переключаемся так, что когда одно работает, другое работать не имеет права, не принимается — это уже не многопрограммный режим, а бог знает что. Одно приложение с недоказанной корректностью обращений к памяти (какой-то фоновый процесс, которому часами работать надо), другое — нужна гарантия недоступности их памяти. И что делать ?
а) соглашаться на бог знает что.
б) высаживать приложение с недоказанной корректностью на другую машину.
в) переходить на многопроцессорные машины и гонять программы с разным клеймом на физически разных процессорах.
Здравствуйте, scf, Вы писали:
scf>Чтобы после переезда в другую страну включаешь кофеварку, она лезет на сервер. И сервер знает, что а) это та же кофеварка б) она теперь в другой стране. Решает проблему аутентификации и локализации.
Чудно, а ее теперь как из внешнего мира искать ?
PD>>Хм. Я хочу выжать из процессора максимум того, что он может дать. Байткод все же медленее. Запрет натива ? scf>Я же написал, что на конечной машине он компилируется . Да, запрет натива. Производители процессоров выпускают новую модель вместе с компилятором под нее.
Хм. Я все же хочу пооптимизировать сам на уровне ассемблера. Запретишь ?
scf>>>- Полная aппаратная и программная поддержка изоляции процессов в ОС. PD>>А разве ее нет ? scf>Нет. На телефонах что-то похожее, но можно и нужно лучше. Чтобы каждая программа была готова работать, когда ей отрубят сеть, воткнут лимиты на место на диске и ограничат цпу, память и пропускную способность диска.
Связи между вырубанием сети, лимитами а диске и ограничением цпу (что имеется в виду, кстати?) и изоляцией процессов не вижу.
Здравствуйте, WolfHound, Вы писали:
PD>>М-да... В общем, без проверок в рантайме ничего не выходит ни у тебя, ни у AlexRK. WH>Демагогию не разводи. WH>Мы говорим про крайне гипотетический случай, когда нашли ошибку в верификаторе.
Произошло некоторое смешение терминов. Наверное, действительно лучше говорить о "верификации" на конечной машине.
Выше в обсуждении под термином "верификация" понималось "доказательство корректности программы в соответствии со спецификацией".
Здравствуйте, Sharov, Вы писали:
WH>>Если бы код был под ВМ, то никакого переписывания было бы не нужно. WH>>Всё просто бы заработало. S>А драйвера и их производительность? А real-time, как он без натива?
Замечательно.
Я надеюсь ты в курсе что при компиляции код проходит через машинно-независимое промежуточное представление.
Я просто предлагаю на этом этапе компиляцию остановить и сохранить результат.
После чего на машине пользователя после верификации продолжить.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Sharov, Вы писали:
S>Я же выделил: S>
PD>>А вот что будут делать, если в алгоритме статической верификации обнаружилась ошибка, а программы уже прошли этап этой верификации, разошлись в миллионах копий и теперь рушат ОС или получают доступ к чужой памяти — объясни. Срочно патчить все выпущенные программы ? Как ? Фирма, выпустившая эту программу, давно закрылась, авторы разбрелись кто куда.
А, вот что. Сорри. Забыл.
PD>>Ну а что касается исчезновения — да даже и исчезновение иногда не требуется. Просто прекращена поддержка. PD>>Вот есть такая фирма — Microsoft. И была такая ОС — Windows 2000. И нет ее поддержки.
S>ms методично и спокойно переводила людей на более новые ОС. Т.е. это не так "хоп и исчезла".
MS-то переводила, а вот другая фирма могла просто забить на свой продукт.
>К тому же, если таже 2000 так критична, то наверняка можно договориться о доработке за деньги.
Я не знаю, насколько она там критична (вряд ли), но сомневаюсь, что MS согласится за любые деньги ее дорабатывать.
Здравствуйте, WolfHound, Вы писали:
WH>Демагогию не разводи.
Да какая там демагогия! Просто рассмотрение одного из вариантов.
WH>Мы говорим про крайне гипотетический случай, когда нашли ошибку в верификаторе.
Что-то мне говорит, что ошибка в программе (даже если она и верификатор) — случай совсем не крайне гипотетичный
WH>Не очень ясно о чём вы AlexRK говорите. Но я говорю про верификацию промежуточного кода. И компиляцию на этапе установки.
Ну тогда я , видимо, не вполне верно твои соображения понял. С AlexRK речь шла о статической верификации на уровне исходного языка, после прохождения которой и компиляции там же программа признается корректной и выпускается в мир. О промежуточном коде там и речи не было, как и о компиляции на этапе установки.
Переизложи, пожалуйста, свою точку зрения, кто кого и когда верифицирует и компилирует, и какой у тебя код есть — исходный, промежуточный , нативный, и кто что где делает.
WH>Я в курсе. Но если программа так нужна, то для неё сделают неофициальный патч.
Да уж. Надеяться на то, что проблемы с программой, которая изначально рушит ОС, а потом перестает работать, так как ОС ее признада недостойной, решаются с помощью неофициальных патчей — это замечательный деловой подход для разработчиков Ос
WH>На 100% надёжен. Ибо математически доказан. В отличии от процессора.
Эхе-хе... Алгоритмы и методы компиляции тоже вроде как доказаны, а компиляторы порой падают.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>MS-то переводила, а вот другая фирма могла просто забить на свой продукт.
А у другой таких масштабов не будет. Тут обе стороны понимают, что нужны некие гарантии.
PD>Я не знаю, насколько она там критична (вряд ли), но сомневаюсь, что MS согласится за любые деньги ее дорабатывать.
Здравствуйте, WolfHound, Вы писали:
S>>А драйвера и их производительность? А real-time, как он без натива? WH>Замечательно. WH>Я надеюсь ты в курсе что при компиляции код проходит через машинно-независимое промежуточное представление. WH>Я просто предлагаю на этом этапе компиляцию остановить и сохранить результат. WH>После чего на машине пользователя после верификации продолжить.
Не уверен, что замечательно. Если для драйверов я еще могу представить промежуточное исполнение и всяческие jit-оптимизации. То для real-time уже не очень -- там надо сразу, быстро и гарантированно без задержек.