Подавляющее большинство операционных систем, над которыми работают российские компании, создаются на ядре GNU/Linux. Возможно, у них наконец-то появится конкурент: DZ Systems представила ОС «Фантом», микроядро которой написано «с нуля».
Зачем нужна российская ОС
ОС «Фантом» предназначена, прежде всего, для носимых и встраиваемых гаджетов. Это система промышленного назначения, ориентированная на интернет вещей – например, специальные комплексы для автоматизации промышленных производств, элементы умного города вроде светофоров для интеллектуального регулирования движения, модули в зданиях, которые отвечают за управление освещением, отоплением и кондиционированием. «Фантом» также можно будет использовать в теплоэнергетике, на военных объектах и в банках, где предъявляются особые требования к отказоустойчивости и защищенности решений.
Интерфейс ОС «Фантом»
По словам Дмитрия Завалишина, основатель DZ Systems, базовая версия системы включает два слоя. Первый непосредственно взаимодействует с аппаратным обеспечением, например, с процессором, контроллером памяти, а также с драйверами устройств. Второй – слой реализации сущности ОС: ее архитектуры, взаимодействия с объектами и пользовательским интерфейсом.
Основное отличие «Фантома» от систем на ядре GNU/Linux – в представлении объектов. В Linux используется принцип «все есть файл»: в них хранятся программы, данные, настройки. А в российской ОС «все есть объект».
Архитектура ОС «Фантом»
Такая смена фокуса делает систему стабильнее и безопаснее. Она не прекращает работать, даже если выключить компьютер – эта ситуация воспринимается как пауза. Сразу после включения прикладные программы продолжат с того места, на котором остановились.
Процесс разработки
Создание ОС «Фантом» стартовало в 2010 году. Основатель DZ Systems Дмитрий Завалишин не раз рассказывал о ней на конференции HighLoad++ и других мероприятиях. Но только сейчас в интервью CNews он заявил, что рабочий прототип системы готов к использованию в пилотных проектах, а концу года с «Фантомом» можно будет работать в обычном режиме.
В создании системы, помимо DZ Systems, участвуют специалисты университета «Иннополис». Они подключились к проекту в 2019 году и занимаются портированием «Фантома» на ядра Genode – заменой первого слоя системы. Для этого среду исполнения программ ОС нужно срастить с программным ядром фреймворка с поддержкой различных архитектур (x86, ARM, RISC-V) и гипервизоров, в частности, seL4. Это математически верифицированное ядро: его надежность и полное соответствие заданным спецификациям доказаны с помощью математических методов.
После портирования система должна стать надежнее и безопаснее, и ее будет проще внедрить в реальных промышленных проектах. Кроме того, это упростит доработку «Фантома».
Особенности реализации
В «Фантоме» используется концепция персистентной виртуальной памяти, как в ОС EROS, которая создавалась Университетом Джона Хопкинса в США в 1991-2005 годах, и полностью управляемый код, как в ОС Singularity исследовательского подразделения Microsoft. Решение распространяется по открытой лицензии LGPL. Микроядро системы написано «с нуля».
Запуск игры Quake в ОС «Фантом» через подсистему Unix
По своей сути ОС «Фантом» близка к виртуальной машине Java. Она регулярно делает снимки своего состояния и сохраняет их в постоянной памяти – что-то подобное происходит при переходе Windows в режим гибернации. После включения система восстанавливается из такого снимка.
Файлы как таковые для работы «Фантома» не нужны. По словам авторов идеи системы, за счет этого вредоносному коду будет сложнее проникнуть в ОС и изменить ее поведение, чтобы украсть данные или нарушить работу оборудования. Разработчикам также не нужно заботиться о сохранении данных в файл и управлении памятью – это выполняется автоматически.
Система использует глобальное адресное пространство. Ей не нужно часто переключаться между своим ядром и запущенными программами, в результате достигается значительный выигрыш в производительности.
Встроенные и пользовательские типы данных – например, целые числа и объекты классов, – в системе обрабатываются единообразно. Благодаря этому можно построить байт-кода Java в инструкции, понятные «Фантому», и быстро портировать существующие Java-приложения для новой ОС.
Также в ОС «Фантом» есть возможность выполнения низкоуровневого кода в отдельном потоке. Это актуально для задач, связанных с обработкой графики, звука или больших массивов данных – там, где нужны сложные вычисления.
Есть здесь и начальная поддержка стандарта POSIX. В теории это позволит переносить на ОС «Фантом» приложения для Linux.
ОС «Фантом» на GitHub