Российский программный «долгострой» – уникальная микроядерная операционная система «Фантом» Дмитрия Завалишина – готова к использованию в пилотах. Ожидается, что проект, работа над которым ведется с 2010 г., заинтересует, в частности, энергетиков, военную промышленность, банки и сможет побороться за место под солнцем с Linux.
«Основная версия операционной системы готова к пилотным проектам. Версия для Genode пока не завершена, именно над ней и идет работа. По плану в конце года она будет готова к применению», – заявил Завалишин в разговоре с CNews.
Портированием на Genode занимается специальная рабочая группа, созданная в 2019 г. на базе «Иннополиса».
Процедура предусматривает сращивание среды исполнения программ этой операционной системы с программным ядром фреймворка, имеющим возможность поддержки многочисленных аппаратных платформ (x86, ARM, RISC-V и др.) и гипервизоров, включая формально верифицированную систему seL4. Как подчеркнул глава DZ Systems, это позволит упростить и ускорить реализацию и доработку «Фантома». Также это поможет сделать ОС более надежной и безопасной, адаптировать ее к реальному использованию в промышленной сфере.
Россияне создали уникальную ОС — конкурента Linux
«На сегодня существует базовая версия ОС "Фантом", которая включает в себя два слоя – традиционный слой кода, который управляет "железом" компьютера, и, собственно, слой реализации сущности ОС, – объясняет Завалишин. – Первый слой – это работа с процессором, контроллером памяти, драйверы устройств и т. п. Все это есть в любой ОС. Работа по портированию заключается в замене первого слоя на аналог из Genode. В процедуру входит написание прослойки, которая реализует низкоуровневые примитивы ядра ОС "Фантом", которые, в свою очередь, реализованы через аналогичные примитивы ядра Genode».
DZ Systems занимается развитием ОС «Фантом» на основе микроядра начиная с 2010 г. Разработка ведется с нуля. Согласно информации, опубликованной на официальном сайте проекта, эта российская ОС опирается на управляемый код и концепцию персистентной виртуальной памяти, ориентирована на применении в носимых и встраиваемых устройствах. Код проекта свободно доступен на условиях лицензии LGPL.
«Операционная система устроена таким образом, что с точки зрения прикладного процесса она никогда не перестает работать, – объясняет особенности своего детища Дмитрий Завалишин. – То есть физическое выключение компьютера для нее – то же самое, что пауза, не более. И прикладные программы при новом старте продолжают работать, как будто отключения не было».
Упрощенно говоря, «Фантом» представляет собой виртуальную машину, которая с заданной периодичностью «сбрасывает» снимки своего состояния (виртуальной памяти) в постоянную память (в некотором роде напоминает гибернацию в Microsoft Windows). Это позволяет в случае отключения питания компьютера или сбоя «откатить» систему к последней успешной транзакции и как ни в чем не бывало продолжить работу.
ОС «Фантом», запущенная в виртуальной машине QEMU
«В ситуации, когда ОС гарантирует программе вечную работу, каждая переменная такой программы семантически превращается в файл. Это означает, что программа перестает нуждаться в, собственно, файлах для хранения данных, которые требуются для работы. Это включает в себя как данные, которые поставляются вместе с программой, так и данные, порожденные в процессе работы. Нет файлов – нет точки входа для сторонней программы (вируса), нет способа вторгнуться в "личное пространство" программы для модификации ее поведения», – отметил Завалишин в разговоре с CNews, отвечая на вопрос о том, как помогает защититься от вредоносных программ применяемый в ОС «Фантом» подход.
Помимо повышения отказоустойчивости и безопасности, данная особенность «Фантома» упрощает разработку прикладного ПО под эту ОС: программисту, в частности, не нужно заботиться о сохранении данных, а ориентированность системы на управляемый код позволяет отказаться от управления памятью вручную.
Другая важная черта «Фантома», которую отмечают разработчики, – высокая производительность. Она достигается, в частности, за счет использования глобального адресного пространства и отсутствия характерного для современных мейнстримных ОС переключения контекста между ядром и запущенными программами, которое может быть весьма ресурсозатратным, но необходимым по соображениям безопасности.
Фото: phantomos.org
Графический интерфейс ОС «Фантом» с консолью Quake на переднем плане
По данным Github-wiki проекта, байт-код виртуальной машины «Фантома» во многом напоминает байт-код Java (выполняемый JVM), однако не предусматривает различий между встроенными типами данных и пользовательскими (классами), то есть любой объект (даже, к примеру, представляющий целое число) является экземпляром класса. Подобная схожесть позволяет достаточно легко построить конвертер байт-кода Java в понятный «Фантому», который позволит портировать на данную ОС уже существующие приложения, написанные на Java.
Кроме того, разработчики планировали предусмотреть возможность выполнения нативного кода (имеющего низкоуровневый, без посредников, доступ к «железу») в отдельном потоке (треде), привязанном к специальному объекту, что может быть полезно при решении задач, требующих высокой производительности, например, обработки видео, звука, сложных вычислений.
Наконец, «Фантом» обеспечивает начальную поддержку стандарта POSIX, что, в частности, может несколько облегчить перенос на данную ОС ПО с других, совместимых с этим стандартом, систем, например, Linux.
Тем не менее, на уникальность претендует «Фантом» в целом как совокупность довольно органично увязанных друг с другом и реализованных на практике давно существующих идей.
Sel4 – единственное сегодня микроядро, в отношении которого математически доказана безошибочность его кода, – говорит Дмитрий Завалишин. – Код "Фантома" достаточно прост и невелик по объему. Если мы внедрим в него доказанно правильное ядро, можно будет рассчитывать на то, что в результате удастся доказать и правильность кода всей операционной системы в целом. Это – одна из целей, которые мы преследуем в работе с университетом "Иннополис"».
Со слов Завалишина, сейчас «Фантом» функционирует на базе собственного ядра, которое прямо работает с аппаратурой компьютера.
По словам ректора университета «Иннополис» Александра Тормасова, в ближайшее время разработчики, помимо портирования ОС на Genode, рассчитывают подготовить ее к использованию в реальных проектах, а также добавить поддержку популярных языков программирования.
«Основная цель на сегодня – встроенные применения, которые требуют высокой надежности, IoT-тематика (устройства интернета вещей; – прим. CNews) и роботы», – говорит Завалишин. По его мнению, у ОС «Фантом» в данном сегменте рынка существует лишь один конкурент – Linux.
Одним из важных преимуществ операционных систем на базе Linux является свободная доступность широкого перечня программ, предназначенных для решения самых разных задач. Экосистема Linux формировалась десятилетиями при участии миллионов разработчиков и поддержке крупнейших технологических компаний мира.
На вопрос, как именно планируется решать проблему дефицита прикладных программ для по сути совершенно новой ОС «Фантом», Завалишин не ответил. По его словам, лабораторию в «Иннополисе», которая занимается системой, ведут два сотрудника университета, которые привлекают к работе группы студентов. Помимо них, над ОС трудится несколько сотрудников DZ Systems.
CNews
Воплощение «Фантома»
Как стало известно CNews, работа над операционной системой «Фантом», за которой стоят компания DZ Systems российского предпринимателя и программиста Дмитрия Завалишина, а также университет «Иннополис», близка к завершению. В 2022 г. разработчики рассчитывают подготовить рабочий прототип системы, портированный на фреймворк для создания ОС на базе микроядер Genode.«Основная версия операционной системы готова к пилотным проектам. Версия для Genode пока не завершена, именно над ней и идет работа. По плану в конце года она будет готова к применению», – заявил Завалишин в разговоре с CNews.
Портированием на Genode занимается специальная рабочая группа, созданная в 2019 г. на базе «Иннополиса».
Процедура предусматривает сращивание среды исполнения программ этой операционной системы с программным ядром фреймворка, имеющим возможность поддержки многочисленных аппаратных платформ (x86, ARM, RISC-V и др.) и гипервизоров, включая формально верифицированную систему seL4. Как подчеркнул глава DZ Systems, это позволит упростить и ускорить реализацию и доработку «Фантома». Также это поможет сделать ОС более надежной и безопасной, адаптировать ее к реальному использованию в промышленной сфере.
Россияне создали уникальную ОС — конкурента Linux
«На сегодня существует базовая версия ОС "Фантом", которая включает в себя два слоя – традиционный слой кода, который управляет "железом" компьютера, и, собственно, слой реализации сущности ОС, – объясняет Завалишин. – Первый слой – это работа с процессором, контроллером памяти, драйверы устройств и т. п. Все это есть в любой ОС. Работа по портированию заключается в замене первого слоя на аналог из Genode. В процедуру входит написание прослойки, которая реализует низкоуровневые примитивы ядра ОС "Фантом", которые, в свою очередь, реализованы через аналогичные примитивы ядра Genode».
DZ Systems занимается развитием ОС «Фантом» на основе микроядра начиная с 2010 г. Разработка ведется с нуля. Согласно информации, опубликованной на официальном сайте проекта, эта российская ОС опирается на управляемый код и концепцию персистентной виртуальной памяти, ориентирована на применении в носимых и встраиваемых устройствах. Код проекта свободно доступен на условиях лицензии LGPL.
Особенности ОС
В отличие от принципа «все есть файл», применяемого в Unix-подобных системах, к которым относится и популярная в России GNU/Linux – именно на ее основе построено большинство отечественных ОС («Альт», Astra Linux, «Ред ОС» и т.п.), «Фантом» базируется на принципе «все есть объект».«Операционная система устроена таким образом, что с точки зрения прикладного процесса она никогда не перестает работать, – объясняет особенности своего детища Дмитрий Завалишин. – То есть физическое выключение компьютера для нее – то же самое, что пауза, не более. И прикладные программы при новом старте продолжают работать, как будто отключения не было».
Упрощенно говоря, «Фантом» представляет собой виртуальную машину, которая с заданной периодичностью «сбрасывает» снимки своего состояния (виртуальной памяти) в постоянную память (в некотором роде напоминает гибернацию в Microsoft Windows). Это позволяет в случае отключения питания компьютера или сбоя «откатить» систему к последней успешной транзакции и как ни в чем не бывало продолжить работу.
ОС «Фантом», запущенная в виртуальной машине QEMU
«В ситуации, когда ОС гарантирует программе вечную работу, каждая переменная такой программы семантически превращается в файл. Это означает, что программа перестает нуждаться в, собственно, файлах для хранения данных, которые требуются для работы. Это включает в себя как данные, которые поставляются вместе с программой, так и данные, порожденные в процессе работы. Нет файлов – нет точки входа для сторонней программы (вируса), нет способа вторгнуться в "личное пространство" программы для модификации ее поведения», – отметил Завалишин в разговоре с CNews, отвечая на вопрос о том, как помогает защититься от вредоносных программ применяемый в ОС «Фантом» подход.
Помимо повышения отказоустойчивости и безопасности, данная особенность «Фантома» упрощает разработку прикладного ПО под эту ОС: программисту, в частности, не нужно заботиться о сохранении данных, а ориентированность системы на управляемый код позволяет отказаться от управления памятью вручную.
Другая важная черта «Фантома», которую отмечают разработчики, – высокая производительность. Она достигается, в частности, за счет использования глобального адресного пространства и отсутствия характерного для современных мейнстримных ОС переключения контекста между ядром и запущенными программами, которое может быть весьма ресурсозатратным, но необходимым по соображениям безопасности.
Фото: phantomos.org
Графический интерфейс ОС «Фантом» с консолью Quake на переднем плане
По данным Github-wiki проекта, байт-код виртуальной машины «Фантома» во многом напоминает байт-код Java (выполняемый JVM), однако не предусматривает различий между встроенными типами данных и пользовательскими (классами), то есть любой объект (даже, к примеру, представляющий целое число) является экземпляром класса. Подобная схожесть позволяет достаточно легко построить конвертер байт-кода Java в понятный «Фантому», который позволит портировать на данную ОС уже существующие приложения, написанные на Java.
Кроме того, разработчики планировали предусмотреть возможность выполнения нативного кода (имеющего низкоуровневый, без посредников, доступ к «железу») в отдельном потоке (треде), привязанном к специальному объекту, что может быть полезно при решении задач, требующих высокой производительности, например, обработки видео, звука, сложных вычислений.
Наконец, «Фантом» обеспечивает начальную поддержку стандарта POSIX, что, в частности, может несколько облегчить перенос на данную ОС ПО с других, совместимых с этим стандартом, систем, например, Linux.
Уникальность идей, заложенных в ОС «Фантом»
Стоит отметить, что идеи, воплощенные в ОС «Фантом», нельзя назвать совершенно новыми. К примеру, принцип персистентности реализован в ОС EROS (Extremely Reliable Operating System), которую с 1991 по 2005 гг. разрабатывал Университет Джона Хопкинса (США). Система, полностью написанная на управляемом коде, тоже существует – это Singularity за авторством исследовательского подразделения Microsoft.Тем не менее, на уникальность претендует «Фантом» в целом как совокупность довольно органично увязанных друг с другом и реализованных на практике давно существующих идей.
Дальнейшие планы разработчиков
В дальнейшие планы разработчиков, как рассказали CNews в DZ Systems, входит получение версии ОС «Фантом», интегрированной с чистым микроядром sel4, создание формально верифицированной ОС на базе верифицированного микроядра.Sel4 – единственное сегодня микроядро, в отношении которого математически доказана безошибочность его кода, – говорит Дмитрий Завалишин. – Код "Фантома" достаточно прост и невелик по объему. Если мы внедрим в него доказанно правильное ядро, можно будет рассчитывать на то, что в результате удастся доказать и правильность кода всей операционной системы в целом. Это – одна из целей, которые мы преследуем в работе с университетом "Иннополис"».
Со слов Завалишина, сейчас «Фантом» функционирует на базе собственного ядра, которое прямо работает с аппаратурой компьютера.
По словам ректора университета «Иннополис» Александра Тормасова, в ближайшее время разработчики, помимо портирования ОС на Genode, рассчитывают подготовить ее к использованию в реальных проектах, а также добавить поддержку популярных языков программирования.
Главный конкурент – Linux
Говоря о коммерческих перспективах продукта, руководитель DZ Systems заявил, что тот, вероятно, заинтересует организации, уделяющие особое внимание безопасности – предприятия ТЭК, военной промышленности, объекты критической информационной инфраструктуры (КИИ), например банки.«Основная цель на сегодня – встроенные применения, которые требуют высокой надежности, IoT-тематика (устройства интернета вещей; – прим. CNews) и роботы», – говорит Завалишин. По его мнению, у ОС «Фантом» в данном сегменте рынка существует лишь один конкурент – Linux.
Одним из важных преимуществ операционных систем на базе Linux является свободная доступность широкого перечня программ, предназначенных для решения самых разных задач. Экосистема Linux формировалась десятилетиями при участии миллионов разработчиков и поддержке крупнейших технологических компаний мира.
На вопрос, как именно планируется решать проблему дефицита прикладных программ для по сути совершенно новой ОС «Фантом», Завалишин не ответил. По его словам, лабораторию в «Иннополисе», которая занимается системой, ведут два сотрудника университета, которые привлекают к работе группы студентов. Помимо них, над ОС трудится несколько сотрудников DZ Systems.
CNews