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


Обновление 3OS Monday, 24 January 2005, 06:26:03
Пожалуй, стоит принять за очевидный факт то, что модель разработки операционной системы 3OS, существовавшая до начала 2005 года показала себя как бесперспективная. Вторая половина 2004 года характеризовалась фактически полным отсутствием активности со стороны участников проекта. Вместе с тем, стоит также понять, что проблема существует не только и не столько в модели разработки, сколько в поставленных целях и задачах. Очевидно, что существующая команда разработчиков просто не в состоянии реализовать такую 3OS, как это планировалось изначально. Более того, у команды есть серьезные сомнения в том, что это реализуемо вообще в приемлемые сроки и на должном уровне, даже если очень сильно расширить команду разработчиков.

В связи с этим, так как считается, что наша задача как проекта – все-таки реализация идей 3OS, возникла необходимость в пересмотре того, как и какие идеи должна реализовать 3OS.

Так вот, согласно обновленной концепции 3OS можно считать, что главное, что должен реализовать проект – это свои прикладные технологии. В прикладных технологиях и заключается весь 3OS. Из этого следует, что разработка своего ядра операционной системы прекращается и далее будет использоваться ядро другой ОС. Стоит отметить, что ядро, созданное 3OS до этого, являлось интересной исследовательской работой, но, к сожалению, мы вынуждены признать ее нежизнеспособной.

Linux


Из существующих ядер требуется выбрать то, для которого существует максимум драйверов устройств и является свободным. Под „свободным” здесь следует понимать совместимость с основной лицензией 3OS – LGPL. Исходя же из прикладной направленности 3OS, архитектура ядра не имеет большого значения, если, конечно, это ядро обеспечивает должную стабильность.

Пожалуй, очевидным в этом случае, становится выбор ядра Linux для 3OS. Важно отметить, что, хотя Linux использует лицензию GPL, все, что команда разработчиков 3OS будет делать для ядра ОС, будет делаться под лицензией LGPL, если, конечно, это не правка GPL кода.

Linux не означает дистрибутива GNU/Linux и команда разработчиков просит всех это понять. Тем не менее, рассматривается возможность, на каком-то этапе, распространения сдвоенной системы GNU/3OS/Linux, просто для того, чтобы ею можно было пользоваться как полноценной ОС сегодня, а не послезавтра. Плюс это должно стать удобной средой для разработчиков.

Тем не менее, все это не означает того, что нам не потребуются работы на уровне ядра ОС.

.NET


В качестве основной среды исполнения 3OS решено взять .NET. Причины, должно быть, очевидны, это одна из лучших платформ на сегодняшний день, которая, к тому же, пользуется большим успехом и будет пользоваться еще большим успехом далее. В остальном, то как работает .NET очень схоже по духу с тем, чем должна быть 3OS.

Однако, для лучшей поддержки исполняемых файлов .NET предполагается реализация этой поддержки в виде модуля для ядра Linux. Основой для реализации .NET в 3OS станет Mono.

Это, а также кэширование оттранслированных исполняемых файлов .NET и другие оптимизации в подсистеме исполнения .NET позволят вывести скорость работы .NET приложений на новый уровень, а так же частично отказаться от зависимости от библиотек C/C++, то есть позволит сделать .NET именно родной средой приложений 3OS.

То есть для обеспечения прекрасной производительности здесь достаточно предусмотреть сохранение скомпилированного на платформу кода, далее начнет работать оптимизация под конкретный используемый процессор, которая в любом случае лучше, нежели статические бинарники для i386, i586, i686.

ЕПД


Из прикладных технологий, планировавшихся для реализации в 3OS, одной из самый важных является концепция Единого Пространства Данных, на которую опираются все остальные возможности системы, которое, по сути, и дает нам то единство, что есть в Unix, но там все есть файл и доступ "тупой" побайтовый, а здесь все есть контейнер, который суть есть объект, и доступ к которому осуществляется через кодек. Так как это также в большой степени системный механизм взаимодействия, то, очевидно, что он имеет большой приоритет в реализации.

В виду того, что наследие Linux имеет мало общего с ЕПД, были рассмотрены различные варианты его реализации поверх существующего ядра. Оптимальным было принято решение о реализации его для набирающей популярность и независимой от платформы среды .NET. ЕПД будет реализовано как расширение .NET, работающее полностью в пользовательском пространстве.

Так как планируется максимальный отказ от использования „родных” для ядра Linux файловых систем в пользу модели контейнеров-кодеков-потоков, то возникает вопрос о доступе ядра через механизм VFS в ЕПД. Предполагается, что такой механизм будет реализован путем расширения к LUFS – механизму поддержки файловых систем в пользовательском пространстве для Linux. Это также означает то, что нам придется использовать на данный момент релизы из ветки -mm ядра Linux, где LUFS уже не просто включен, но он в этой ветке уже нашел свое дальнейшее развитие.

Это, а также отображение ФС Linux в ЕПД даст возможность полноценного взаимодействия среды 3OS и среды GNU/Linux в обе стороны. В то же время, возможность включения программ GNU в 3OS еще рассматривается.

О совместимости объектной идеологии и идеологии файловой - здесь все просто, файл есть объект RAW, над ним тоже можно работать, хотя методы здесь будут вполне обыденны. Но такая обертка позволит нам строить Систему.

Приложения и кодеки


Приложения 3OS и кодеки ЕПД настолько переплетутся меж собой, что определить что есть что уже будет не так легко. Все это будет достигаться в первую очередь благодаря максимальному использованию мощного механизма интерфейсов .NET. При этом, одним из основных для приложений 3OS интерфейсов должен стать интерфейс передачи сообщений, как механизм передачи управляющих сигналов.

Управляющие сигналы позволят сделать то, что планировалось изначально в 3OS – полное отделение функциональности приложения и его интерфейса, то есть вся работа с интерфейсом будет транслироваться в сообщения коду приложения, а то, какой на самом деле используется интерфейс, будет совсем не важно.

По сути, с учетом того, какие возможности предоставляет механизм ЕПД, можно сказать, что рано или поздно создание приложений выльется в написание интерфейса, которое, вероятнее всего, будет выполняться на XML.

Организационные вопросы


Конференция будет открыта для доступа всех желающих, однако модерироваться будет жестко.

Документация и сайт будут переданы в ведение одного человека, который будет специально документацией и сайтом заниматься, получая уже готовую информацию для публикации из конференции.

Все это необходимо для того, чтобы конференция стала центром разработки.

Отныне основной средой разработки для всех можно считать Linux-среды. Но, помимо этого, для успешной работы над текущей частью работы по интеграции .NET в ядро Linux, разработчикам также необходимы, в первую очередь, исходники Mono. Текущее ядро, на которое ориентирован проект – 2.6.10, однако по мере выхода новых версий мы будем плавно переходить на них, не забывая о наборе патчей Эндрю Мортона для LUFS.


Так как все новые планы достаточно радикальны, понадобится время просто на изучение того же Linux и Mono участниками проекта, прежде чем разработка войдет в нормальный ритм. Контрольной точкой здесь будем считать один месяц.

Приглашаем желающих в команду разработчиков.
email to someone printer friendly
Добавил Roman I Khimov | Читать/Отправить комментарии: 8