: . Главная . : . Форум . : . Загрузка . : . Пользователи . : . ЧаВо . : . Документация . :


Операционная система 3OS -> Форумы -> Идеология проекта
<< Предыдущая тема | Следующая тема >>   

Зачем?

Перейти к странице Предыдущая -1-2-3-4-5-6-7-8-9-10-11-12-13 Следующая
Автор Отправлено
czarker
Friday 18.02.2005 11:27 Цитата

Зарегистрирован: Monday 10.01.2005 17:26
Местоположение: Москва, т.д.
Сообщений - 48
Нет, товарищи! У вас получается, что Trusted- любой компилятор языка высокого уровня. Но в Windows полным-полного лагучего и, в некоторых случаях, вредоносного софта на языках высокого уровня. И т.д.

Я думал, что речь идёт об особом компиляторе, особо устроенном, имеющим интеллектуальную систему проверки на "агрессивность" кода. Ну а так...

И вообще, ваш идеал, похоже, - PalmOS4. Пейджер, который вообще не позволяет выйти за отведённые рамки. Нужен тебе 1 байт или 100 Кб - всё получай боксами по 40 (по-моему) Кб.
Полный trusted. Даже на C.

Но это всё, конечно, моё сугубо личное мнение.
Наверх
AlexanderK
Friday 18.02.2005 11:44 Цитата
Зарегистрирован: Tuesday 05.10.2004 13:47
Местоположение: 2:5020/829.5
Сообщений - 49
Я не вижу смысла строить систему именно в виде компилятора. Это ничего не даст.
Наверх
AlexanderK
Friday 18.02.2005 11:55 Цитата
Зарегистрирован: Tuesday 05.10.2004 13:47
Местоположение: 2:5020/829.5
Сообщений - 49
<captain cobalt>
Замечательно!
Вот хорошая ссылка по теме:
http:/qnx.org.ru/index.php?option=com_minibb&action=vthread&forum=4&topic=2849
Краткое содержание: "Как мне инкапсулировать pthread-ы?" - спрашивает некто. "Используй Active Objects" - отвечает Оlej, и отмечает существенное отличие AO от "процессов".

А лучше объекты типа "COM-server".
Наверх
KSLcom
Friday 18.02.2005 16:59 Цитата
Зарегистрирован: Saturday 29.01.2005 20:47
Сообщений - 5
мдя... ну вы тут и нафлеймили ))
ради поддержания образовательного флейма подкину ссылочку http://rsdn.ru/Forum/Message.aspx?mid=994725#994725 Там народ обсуждает необходимость защиты памяти в Оберон-ОС.

А если по существу... Вот если кто то сейчас собирается писать ОС, то хорошо если вменяемый результат будет к году 2010 и ОС будет эксплуатироваться лет эдак 10-15 на компах с процессором(ами) от 5 гигагерц, памятью от 8 гигабайт в которой живут десятки тысяч процессов/потоков (активных объектов). Неужели работа всего этого хозяйства будет зависеть от внимательности програмиста? Врятли. В Microsoft это тоже поняли и родили .NET, которая, я думаю, в будующем полностью заменит Win32API и вытеснит unmanaged код, оставив ему место в драйверах и т.п. Но у microsoft это всё пока впереди, а в BlueBottle эти идеи уже реализованы как 5 лет. Конешно BlueBottle и Windows не сравнимы, но ведь BluеBottle это типа прототип системы построенной на новой концепции.
Наверх
AlexanderK
Friday 18.02.2005 18:14 Цитата
Зарегистрирован: Tuesday 05.10.2004 13:47
Местоположение: 2:5020/829.5
Сообщений - 49
Тогда и писать по большому счёту ничего не нужно, всё равно всё MS со временем напишет. И .Net и WinFS и всё остальное прочее. Подводим итог - проект успешно завершён
Наверх
captain cobalt
Wednesday 23.03.2005 18:45 Цитата
Зарегистрирован: Sunday 15.02.2004 03:47
Сообщений - 49
Vadim Ushakov писал(а): ...
Динамических проверок не требуется?

Vadim Ushakov писал(а): ...
Кстати, приведенная цитата означает, что runtime Оберона все-таки выполняет динамические проверки типов.

Одно дело указатели, другое дело типы.
Если смастерить указатель невозможно, то не нужно проверять их корректность во время исполнения.
Динамическая типизация в Обероне реализуется в явном виде с помощью IS и WITH. В остальных случаях контроль типизации может быть произведён статически, без накладных расходов в рантайме.
AlexanderK писал(а): ...
Я не вижу смысла строить систему именно в виде компилятора. Это ничего не даст.

Это даст новые возможности за счёт тесного взаимовыгодного сотрудничества компилятора и рантайма. Не обязательно, чтобы компилятор был только для одного языка. Достаточно лишь, чтобы используемые языки были сильно типизированными и обладали прозрачностью ссылок.
czarker писал(а): ...
Я думал, что речь идёт об особом компиляторе, особо устроенном, имеющим интеллектуальную систему проверки на "агрессивность" кода. Ну а так...

Так и есть.
Фактически, речь идёт о языке программирования, на котором невозможно написать программу, которая сможет произвольно обратиться к чужим данным в общем адресном пространстве.

Компилятор здесь "особый" в том смысле, что загружать можно только код, полученный с помощью этого компилятора. И нельзя загрузить собственноручно изготовленный машинный код.
KSLcom писал(а): ...
мдя... ну вы тут и нафлеймили ))
ради поддержания образовательного флейма подкину ссылочку

Хорошая ссылочка. Давненько не доводилось читать форум rsdn.
KSLcom писал(а): ...
В Microsoft это тоже поняли и родили .NET, которая, я думаю, в будующем полностью заменит Win32API и вытеснит unmanaged код

А многие до сих пор не верят в это.
KSLcom писал(а): ...
Но у microsoft это всё пока впереди, а в BlueBottle эти идеи уже реализованы как 5 лет. Конешно BlueBottle и Windows не сравнимы, но ведь BluеBottle это типа прототип системы построенной на новой концепции.

Вот меня и интересует, не появились ли здесь сторонники (или противники) Bluebottle? A?
Поддерживаю утверждение о том, что это технологический лидер на данный момент.

[ Редактирование Wednesday 23.03.2005 19:13 ]
Наверх
Vadim Ushakov
Wednesday 13.04.2005 10:32 Цитата
Зарегистрирован: Monday 07.02.2005 04:57
Местоположение: Россия, Красноярск
Сообщений - 35
Кажется, миллион лет назад я писал:
Vadim Ushakov писал(а): ...
если использовать парадигму единого адресного пространства, то можно навсегда попрощаться с подсистемой безопасности - в рамках этой модели ее реализовать невозможно
Я пытался найти принципиальные (неустранимые) уязвимости такой модели, но теперь вынужден признать, что построение системы вокруг ЯВУ-компилятора - это хорошая мысль. Я попробовал спроектировать нечто объектно-ориентированное поверх микроядра с класическим IPC на основе сообщений, но столкнулся с тем, что нижележащие абстракции не удается "упрятать" в ОО-оболочку и они все время напоминают о себе. В итоге у меня начало получаться нечто монструозное, типа COM. Переход же к single-address-space системе снимает все проблемы. Можете считать этот абзац извинением перед captain cobalt и покаянием в грехах .

Какой ЯВУ выбрать в качестве основного языка системы? Я думаю, выбор не особо велик: Oberon-2, Active Oberon, или даже не очень широко известный O2M. Последний, впрочем, использует процедурно-параметрическую модель и эволюцию программ снизу вверх, в то время как классическое ООП основано на виртуальных методах и эволюции сверху вниз (от абстрактного к конкретному).

На мой взгляд, недостатком Оберона является отсутствие структурной обработки исключений и абстракции подтипов (таких как подтипы в Ада). Кстати, кто-нибудь знает, где можно (если вообще можно) достать исходные тексты какого-либо из Оберонов?

to captain cobalt:

captain cobalt писал(а): ...
Так ведь нет.
Всё проверки происходят во время компиляции.
На самом деле не все так однозначно. Можно показать сущность динамических проверок на таком примере (используется Ада-подобный синтаксис) :
subtype AA is INTEGER range 0..10 ;
subtype BB is INTEGER range -10..-1 ;
subtype CC is INTEGER range 0..20 ;
a: AA; b: BB; c: CC;
b := a; c := a; a := c;
Присваивание b := a явно бессмысленно, поскольку диапазоны подтипов не пересекаются, следовательно его ошибочность можно определить во время компиляции. Присваивание c := a можно выполнить всегда, поскольку CC включает в себя все возможные значения AA, динамических проверок не требуется. Однако присваивание a := c нуждается в динамических проверках, и, если присваиваемое значение не входит в интервал 0..10, будет инициировано исключение.
С объектами, массивами и указателями точно также - часть присваиваний всегда будет нуждаться в динамических проверках.

Давайте пользоваться настоящими высокоуровневыми языками, а не "высокоуровневым ассемблером Си" .
Наверх
Vadim Ushakov
Wednesday 13.04.2005 10:36 Цитата
Зарегистрирован: Monday 07.02.2005 04:57
Местоположение: Россия, Красноярск
Сообщений - 35
captain cobalt писал(а): ...
KSLcom писал(а): ...
В Microsoft это тоже поняли и родили .NET, которая, я думаю, в будующем полностью заменит Win32API и вытеснит unmanaged код
А многие до сих пор не верят в это.
По поводу unmanaged code. Юникс целиком написана на Си, который, как известно, не поддерживает автоматическую проверку выхода индекса за границы массива. Из-за этого практически каждый день в системе обнаруживают очередную дыру, которую потом спешно заделывают, а бедным админам приходится ставить на систему кучу заплаток. Всем ясно, что виноваты особенности языка программирования, но никому не приходит в голову сказать: "Давайте писать на более безопасном языке." Почему? Я часто задавал этот вопрос юниксойдам и обычно мне отвечали что: 1) все так делают и 2) нечего задавать глупые вопросы. Либо же начинали рассуждать о производительности и о том, какой быстрый код генерирует компилятор Си.

Чтобы делали все эти специалисты по сетевой безопасности, консультанты всех мастей, авторы книг "Техника сетевых атак" и им подобные личности, если бы люди вдруг начали пользоваться системой, в которой В ПРИНЦИПЕ И ВООБЩЕ не существует проблемы переполнения буфера? Вот поэтому unmanaged code до сих пор жив.
Наверх
captain cobalt
Wednesday 13.04.2005 18:49 Цитата
Зарегистрирован: Sunday 15.02.2004 03:47
Сообщений - 49
Vadim Ushakov писал(а): ...
Я пытался найти принципиальные (неустранимые) уязвимости такой модели, но теперь вынужден признать, что построение системы вокруг ЯВУ-компилятора - это хорошая мысль. Я попробовал спроектировать нечто объектно-ориентированное поверх микроядра с класическим IPC на основе сообщений, но столкнулся с тем, что нижележащие абстракции не удается "упрятать" в ОО-оболочку и они все время напоминают о себе. В итоге у меня начало получаться нечто монструозное, типа COM. Переход же к single-address-space системе снимает все проблемы. Можете считать этот абзац извинением перед captain cobalt и покаянием в грехах .
Принимается.
Будем Bluebottle напильником обрабатывать?
Vadim Ushakov писал(а): ...
Какой ЯВУ выбрать в качестве основного языка системы? Я думаю, выбор не особо велик: Oberon-2, Active Oberon, или даже не очень широко известный O2M. Последний, впрочем, использует процедурно-параметрическую модель и эволюцию программ снизу вверх, в то время как классическое ООП основано на виртуальных методах и эволюции сверху вниз (от абстрактного к конкретному).
Active Oberon - хорошо.
Хотелось бы "Active Component Pascal".
Vadim Ushakov писал(а): ...
На мой взгляд, недостатком Оберона является отсутствие структурной обработки исключений и абстракции подтипов (таких как подтипы в Ада).
Это тоже очень флудерастическая тема (а сейчас по сути идёт двенадцатая страница оффтопика, надо бы конкретных тем наделать). Есть весьма весомые доводы с другой стороны.
Vadim Ushakov писал(а): ...
Кстати, кто-нибудь знает, где можно (если вообще можно) достать исходные тексты какого-либо из Оберонов?
А что, там-где-надо нету? Сейчас посмотрю.
Vadim Ushakov писал(а): ...
На самом деле не все так однозначно. Можно показать сущность динамических проверок на таком примере (используется Ада-подобный синтаксис) :
subtype AA is INTEGER range 0..10 ;
subtype BB is INTEGER range -10..-1 ;
subtype CC is INTEGER range 0..20 ;
a: AA; b: BB; c: CC;
b := a; c := a; a := c;
Присваивание b := a явно бессмысленно, поскольку диапазоны подтипов не пересекаются, следовательно его ошибочность можно определить во время компиляции. Присваивание c := a можно выполнить всегда, поскольку CC включает в себя все возможные значения AA, динамических проверок не требуется. Однако присваивание a := c нуждается в динамических проверках, и, если присваиваемое значение не входит в интервал 0..10, будет инициировано исключение.
С объектами, массивами и указателями точно также - часть присваиваний всегда будет нуждаться в динамических проверках.
Да, часть присваиваний всегда будет нуждаться в динамических проверках.
Динамическая проверка диапазонов - это замечательная вещь в Ada. Однако, как известно, в Обероне специально были исключены типы-диапазоны Паскаля (тоже неоднозначное решение).
Vadim Ushakov писал(а): ...
Давайте пользоваться настоящими высокоуровневыми языками, а не "высокоуровневым ассемблером Си" .
Аплодисменты.
Vadim Ushakov писал(а): ...
"Давайте писать на более безопасном языке." Почему? Я часто задавал этот вопрос юниксойдам и обычно мне отвечали что: 1) все так делают и 2) нечего задавать глупые вопросы. Либо же начинали рассуждать о производительности и о том, какой быстрый код генерирует компилятор Си.
Наверное надо им показывать вот это. Там сравнивается производительность state-of-the-art компиляторов си++ с сугубо исследовательскими компиляторами Оберона собственно из школы Вирта рук нескольких человек (а также компиляторами некоторых других языков). Сделать вывод о том, каковы были бы способности оптимизаторов Оберона, если бы в них была вложена хотя бы малая доля ресурсов, потраченных на оптимизаторы си++. Впрочем, говорят способности XDS впечатляют...
Наверх
pumba103
Wednesday 13.04.2005 19:20 Цитата
Зарегистрирован: Monday 08.11.2004 09:39
Сообщений - 9
Как человек, три месяца назад инициировавший эту тему, с удовольствием (искренне) соглашаюсь, что повидимому лучшим языком для напмсания новой операционной системы является Oberon. Выбирая диалект языка, мы в свое время (два года назад) остановились на Oberon-2 в версии Oberon PC Native по следующим соображениям - это зрелый, устоявшийся диалект языка, обладающий всеми средствами для написания ОС. Основной разработчик компилятора - Patrik Reali - покинул ETHZ в 2002 и в настоящее время ActiveOberon похоже заброшен и основные усилия направлены на Zonnon. Что касается напильника и BlueBottle, то представляется более перспективным создание своей системы "по мотивам" Oberon и BlueBottle.
Но естественно это мое личное мнение.
Наверх
Перейти к странице Предыдущая -1-2-3-4-5-6-7-8-9-10-11-12-13 Следующая

Модераторы: Roman I Khimov, netwizard.

Переход:     Наверх