Вопреки названию я не буду, доказывать, что новая ОСь действительно нужна. Впрочем, даже если вы с большим скепсисом относитесь к подобной идее, это не значит, что здесь вы не найдете для себя интересных мыслей.
В сфере системного программного обеспечения в РФ и вообще СНГ сложилась критическая ситуация. Рынок операционных систем насыщен решениями иностранных производителей: Windows, MacOS, Linux, Symbian, QNX — среди них вы не найдете ни одной сделанной в России. Мы решили изменить сложившуюся ситуацию и создать свою конкурентоспособную операционную систему, которая будет надежнее и сможет работать лучше и быстрее существующих решений. С другой стороны она окажется более универсальной, что позволит использовать ее в широком спектре техники от бытовой электроники до высоконадежных вычислительных систем, от коммуникаторов до огромных кластеров с безразмерным объемом оперативной и дисковой памяти. Не растекаясь мыслью по древу перейду сразу к описанию собственного видения будущей ОС. Совместимость ОС со всеми ныне разработанными средами. Благодаря технологии прослоек совместимости можно обеспечить использование программ написанных для других ОС: Win32, POSIX, любой другой API. Отдельно создается прослойка совместимости с драйверами для других ОС, это может быть WinXP, что обусловлено ее популяросностью, а может и что-то другое. Универсальность. При минимальных доработках ОС может использоваться практически в любом оборудовании, на любой аппаратной платформе: все что имеет процессор в несколько десятков мегагерц и от двух мегабайт памяти, при этом должны обеспечиваться производительность и устойчивость. С другой стороны кластеры не должны быть чем-то экстраординарным для этой ОС. Гибкость и изменчивость системы – одно из ее главных достоинств. Благодаря микроядерности и объектно-ориентированному подходу, систему можно расширять по своему усмотрению, просто добавляя компоненты, при этом ни стабильность, ни надежность не страдают. А теперь более детально и по пунктам. Объектная идеология. Все ресурсы, механизмы и сервисы ОС представлены, как объекты. Объекты, имеющие одинаковые свойства и методы, объединяются классом. Например, файл или процесс — это классы объектов. ОС располагает механизмами, позволяющими включить сервис нового класса в систему и удалить его. Каждый класс экспортирует API, обеспечивающие процедурный доступ к этому классу (например, в среде языка С или в ассемблере), и API, обеспечивающие доступ в среде объектно-ориентированных языков. Объектный подход позволяет достраивать и изменять ОС "на ходу", добавляя в систему новые свойства, не меняя существующих. Связывание объектов. Любые именованные объекты, существующие на отдельной машине, могут быть доступны локально. Именованные объекты могут быть доступны также удаленно, если для данного класса объектов существует сервис удаленного доступа. В качестве механизма удаленного доступа к объектам будет использоваться собственный CORBA-подобный механизм. Таким образом, связывание объектов, существующих на различных машинах и доступ к ним независимы от платформы, а для доступа к объектам из иных операционных систем будут поставляться программные пакеты, поддерживающие используемый механизм связывания объектов для требуемой операционной среды. Такой подход обеспечивает возможность простого и гибкого управления удаленными объектами, независимый от аппаратных платформ, операционных сред и стеков сетевых протоколов и открывает возможности для легкого и эффективного создания многомашинных кластеров. Виртуальные подсистемы. Виртуальные подсистемы - это не ОС, загружаемые "целиком" и выполняемые независимо. Это системные модули-надстройки, преобразующие API соответствующей ОС в родной API и создающие окружение, в достаточной степени соответствующее "родному" окружению поддерживаемой операционной среды. Архитектурные особенности ОС позволяют включать в систему модули-надстройки, поддерживающие виртуальную операционную среду той или иной операционной системы. При этом для выполнения приложения в той или иной операционной среде его не нужно будет перекомпилировать со специальными библиотеками времени выполнения, обеспечивающими преобразование "чужого" API (интерфейс прикладного программирования) в "родной". Поддержка той или иной операционной среды осуществляется "изнутри" ОС, на уровне системных вызовов. В итоге на одном компьютере могут выполняться приложения, разработанные для разных операционных систем, в т.ч.Windows NT(2000), Windows XP, Linux и т.п. Кроме того, возможно при разработке новых приложений использовать библиотеки, позволяющие использовать в одном приложении те или иные API совместно. И несколько слов о том, чем все это может быть полезно простому пользователю. Графические интерфейсы. Поддержка качественных графических интерфейсов для управления системой во многом зависит от качества поддерживаемой графики. Можно сказать, что ОС будет располагать достаточной поддержкой для реализации как двухмерных, так и трехмерных оконных интерфейсов. Для поддержки компьютеров с дешевыми графическими интерфейсными картами можно ограничиться простым оформлением системных панелей (от панелей, работающих в EGA - VGA режимах, до двухмерных панелей с расширенными графическими режимами), а для мощных компьютеров с мощными графическими картами можно предлагать темы оформления, включающие трехмерные панели. Привычность интерфейса. Пользователи будут избавлены от необходимости полностью менять привычки, в частности переходить на новые программы, подавляющее большинство существующего ПО (в том числе профессиональное ПО и современные игры) сможет работать в нашей ОС. Благодаря вышеописанному механизму удаленного связывания, степень интеграции web-служб и настольных приложений будет иметь беспрецедентно высокий уровень, что даст пользователям совершенно новую эргономику. Повторное использование кода. Благодаря модульности и микроядерности ОС, легко избежать лицензионных проблем при интеграции разнообразных компонентов в ОС. Поэтому у нас нет нужды разрабатывать абсолютно все с нуля. Мы можем использовать уже существующие наработки: файловые системы (ZFS, Ext3/4, JFS, reiserFS, BeFS), систему печати (CUPS), драйвера (WinXP или Linux), подсистемы ядра ACPI, шрифты, наборы иконок, скринсейверы, обои рабочего стола и т.д. Таким образом можно существенно сократить объем трудозатрат при разработке ОС. Это не последний пост, посвященный ОС.
|