Источник: СNEWS
Сразу стоит сказать, что ОС Phantom, которую готовит к выходу российский разработчик Дмитрий Завалишин, существует лишь в виде прототипа. Но прототипа уже вполне работоспособного, который позволяет говорить о возможностях системы.
По словам автора проекта, ОС Phantom предназначается, в первую очередь, для промышленного использования. Она может заинтересовать банки, военных, возможно, операторов дата-центров и энергетиков. Но это потом, а пока давайте посмотрим на то, что предлагает операционная система.
Это новый проект?
Нет, наоборот, работу над ОС автор проекта начал еще в начале 2000-х, в течение нескольких лет работы велись не особо активно. После 2010 года Дмитрий Завалишин решил перевести операционную систему на коммерческие рельсы и перенес все работы в «юрисдикцию» своей же компании, которая называется Digital Zone.
На данный момент основной прототип готов к запуску в виде пилотных проектов. К концу года будет готова и версия на базе микроядерной ОС Genode — сейчас ведется работа по портированию виртуальной машины системы Phantom для использования в окружении ОС Genode. Портирование заключается в создании «прослойки», которая реализует низкоуровневые примитивы ядра Phantom. Они, к слову, реализованы через аналогичные примитивы ядра Genode.
По словам разработчика, базовая версия операционной системы «включает в себя два слоя – традиционный слой кода, который управляет „железом“ компьютера, и, собственно, слой реализации сущности ОС». Первый слой в этом случае — работа с процессором, контроллером памяти, драйверами устройств и т.п. Все это есть в любой другой операционной системе.
Базируется операционная система на управляемом коде и концепции персистентной виртуальной памяти. Ее предполагается использовать в носимых и встраиваемых устройствах. Что касается кода проекта, то он распространяется на условиях лицензии LGPL.
Возможности системы и нюансы ее работы
Главная особенность ОС — использование концепции «все есть объект» вместо «все есть файл». Соответственно, система дает возможность обойтись без использования файлов за счет сохранения состояния памяти и непрерывного цикла работы. Все приложения в среде ОС не завершаются, и приостанавливают работу. Ее восстановление выполняется с прерванной точки. Все связанные с определенным приложением переменные и структуры данных хранятся столько времени, сколько необходимо самому приложению.
C точки зрения прикладного процесса система работает все время. Физическое выключение компьютера для ОС — фактически, пауза. Как только компьютер включают, прикладные программы работают так же, как и до отключения.
Приложения работают в общем адресном пространстве, такое решение дает возможность обойтись без переключений между ядром и приложениями. Кроме того, упрощается и оптимизируется взаимодействие между выполняемыми в виртуальной машине приложениями. Объектами они обмениваются через передачу ссылок. Что касается разделения доступа, без чего обойтись нельзя, то оно осуществляется на уровне объектов, которые можно получить лишь посредством вызова соответствующих методов. Любые данные обрабатываются как отдельные объекты.
Операционные системы — весьма интересная тема, но у нас есть и другие статьи, оцените — мы рассказываем о:
→ Маленьких «малинках» в крупном дата-центре
→ новых SoC от Apple — M1 Pro и M1 Max
→ Создании собственного корпуса для сервера
По словам разработчика, его ОС — виртуальная машина, которая с определенной периодичностью делает снимки своего состояния и помещает их в постоянную память. Такая схема работы напоминает гибернацию в Microsoft Windows. Отключение ПК или программный сбой — не проблема, ОС можно откатить ко времени последней успешной транзакции и продолжить работу.
Снимки состояния выполняются в асинхронном режиме без приостановки работы виртуальной машины. В снимке фиксируется единовременный срез.
В ОС есть и собственное ядро с реализацией потоков, менеджера памяти, сборщика мусора, механизмов синхронизации, системы ввода/вывода и драйверов для работы с оборудованием. Об этом уже говорилось выше, ядро позволяет использовать систему для работы с самыми разными задачами. Что касается компонентов с сетевым стеком, графической подсистемой и интерфейсом пользователя, то их развивают отдельно.
Зачем портировать систему?
Разработчики отмечают, что портирование виртуальной машины Phantom для работы с использованием компонентов открытой микроядерной операционной системы Genode необходимо для повышения стабильности, безопасности и переносимости проекта. Уже подготовлено сборочное окружение на базе Docker для тех пользователей, кто желает провести несколько экспериментов с Phantom.
Genode позволяет работать с уже проверенными микроядрами и драйверами. Так же появляется возможность вынесения драйверов в пространство пользователя. Одна из возможностей — работа с микроядром seL4, которое прошло математическую верификацию надежности.
На данный момент виртуальная машина Phantom может работать в 64-разрядном окружении Genode. Правда, разработчикам нужно еще переработать подсистему драйверов и адаптировать для Genode компоненты с сетевым стеком и графической подсистемой.
Ну а закончить обзор системы стоит словами разработчиков о позиционировании этой ОС: «Основная цель на сегодня – встроенные применения, которые требуют высокой надежности, IoT-тематика и роботы».
Автор: Ирина