Прототип отечественной ОС Phantom на базе Genode будет готов до конца года
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Дмитрий Завалишин рассказал о проекте по портированию виртуальной машины операционной системы Phantom для работы в окружении микроядерной ОС Genode. В интервью отмечается, что основная версия Phantom уже готова к пилотным проектам, а версия на базе Genode будет доведена до готовности к применению в конце года. При этом на сайте проекта пока заявлен только работоспособный концептуальный прототип, стабильность и функциональность которого не доведены до уровня, пригодного к промышленному использованию, а среди ближайших планов упоминается формирование альфа-версии, пригодной для экспериментов сторонними разработчиками.
Код проекта распространяется под лицензией LGPL, но последнее изменение в основном репозитории датировано ноябрём 2019 года. Связанная с проектом публичная активность сосредоточена в репозитории с форком для Genode, который с декабря 2020 года поддерживает Антон Антонов, студент из университета Иннополис.
Операционная система Phantom с начала 2000-x годов развивалась как персональный проект Дмитрия Завалишина, а с 2010 года была переведена под крыло компании Digital Zone, созданной Дмитрием. Система примечательна ориентацией на высокую надёжность и использованием концепции "все есть объект" вместо "все есть файл", позволяющей обойтись без использования файлов за счёт сохранения состояния памяти и непрерывного цикла работы. Приложения в Phantom не завершаются, а лишь приостанавливаются и возобновляют работу c прерванной точки. Все переменные и структуры данных могут храниться столько времени, сколько необходимо приложению, при этом специально программисту не нужно заботиться о сохранении данных.
Приложения в Phantom компилируются в байткод, который выполняется в стековой виртуальной машине, похожей на виртуальную машину Java. Виртуальная машина обеспечивает персистентность памяти приложений - система периодически сбрасывает снимки состояния виртуальной машины на постоянный носитель. После выключения или аварийного завершения работа может быть продолжена, начиная с последнего сохранённого снимка памяти. Снимки создаются в асинхронном режиме и без приостановки работы виртуальной машины, но в снапшоте фиксируется единовременный срез, как будто виртуальную машину остановили, сохранили на диск и опять запустили.
Все приложения выполняются в общем глобальном адресном пространстве, которое позволяет обойтись без переключений контекста между ядром и приложениями, а также существенно упрощает и ускоряет взаимодействие между выполняемыми в виртуальной машине приложениями, которые могут обмениваться объектами через передачу ссылок. Разделение доступа осуществляется на уровне объектов, ссылки на которые можно получить только через вызов соответствующих методов (арифметика указателей отсутствует). Любые данные, в том числе числовые значения, обрабатываются как отдельные объекты.
Для приложения работа выглядит непрерывной и не зависит от перезагрузок ОС, аварийных завершений работы и выключений компьютера. Модель программирования для Phantom сравнивается с запуском никогда не останавливающегося сервера приложений для объектного языка программирования. В качестве одного из основных способов разработки приложений рассматривается портирование для Phantom программ на языке Java, чему способствует схожесть виртуальной машины Phantom с JVM. Кроме компилятора байткода для языка Java, проектом планируется создание компиляторов для Python и C#, а также реализация транслятора из промежуточного кода WebAssembly.
Для выполнения операций, требующих высокой производительности, таких как обработка видео и звука, предусмотрена возможность запуска в отдельных потоках бинарных объектов с нативным кодом (для сборки бинарных объектов используется LLVM). Для доступа к низкоуровневым сервисам ядра часть классов VM ("внутренние" классы) реализована на уровне ядра ОС. Для запуска Linux-приложений предусмотрена POSIX-прослойка, выполняющая эмуляцию вызовов, необходимых для работы Unix-процессов (персистентность для приложений в POSIX-прослойке пока не обеспечивается).
Традиционная ОС Phantom помимо виртуальной машины включает собственное ядро с реализацией потоков, менеджера памяти, сборщика мусора, механизмов синхронизации, системы ввода/вывода и драйверов для работы с оборудованием, что заметно усложняет доведение проекта до готовности к широкому применению. Отдельно развиваются компоненты с сетевым стеком, графической подсистемой и интерфейсом пользователя. Примечательно, что графическая подсистема и оконный менеджер работают на уровне ядра.
Для повышения стабильности, переносимости и безопасности проекта предпринята попытка переноса виртуальной машины Phantom для работы c использованием компонентов открытой микроядерной операционной системы Genode, разработку которой курирует немецкая компания Genode Labs.
Для желающих поэкспериментировать с
Phantom на базе Genode подготовлено специальное сборочное окружение на базе Docker.
Использование Genode даст возможность использовать уже проверенные микроядра и драйверы, а также вынести драйверы в пространство пользователя (в текущем виде драйверы написаны на Си и выполняются на уровне ядра Phantom). В том числе появится возможность использования микроядра seL4, прошедшего математическую верификацию надёжности, подтверждающую, что реализация полностью соответствует спецификациям, заданным на формальном языке. Рассматривается возможность подготовки подобного доказательства надёжности и для виртуальной машины Phantom, что позволит добиться верификации всего окружения ОС.
В качестве основной области применения порта на базе Genode называется разработка приложений для различных промышленных и встраиваемых устройств. В настоящее время уже подготовлен набор изменений для виртуальной машины и добавлены работающие поверх Genode обвязки для обеспечивающих персистентность компонентов ядра и основных низкоуровневых интерфейсов. Отмечается, что виртуальная машина Phantom уже может работать в 64-разрядном окружении Genode, но ещё предстоит реализовать работу VM в режиме персистентности, переработать подсистему драйверов и адаптировать для Genode компоненты с сетевым стеком и графической подсистемой.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://www.cnews.ru/news/top/...)
- OpenNews: Обзор отечественной экспериментальной операционной системы Phantom
- OpenNews: Микроядро seL4 математически верифицировано для архитектуры RISC-V
- OpenNews: Доступен Wasmer 2.0, инструментарий для создания приложений на базе WebAssembly
- OpenNews: Микроядерная ОС Genode переходит на лицензию AGPL
- OpenNews: Проект Genode опубликовал выпуск ОС общего назначения Sculpt 21.10
Похожие новости:
- Проект Genode опубликовал выпуск ОС общего назначения Sculpt 21.10
- Проект Genode опубликовал выпуск ОС общего назначения Sculpt 21.03
- Проект Genode опубликовал выпуск ОС общего назначения Sculpt 20.08
- [Высокая производительность, Анализ и проектирование систем, Администрирование баз данных, Промышленное программирование] К чему может привести ослабление уровня изоляции транзакций в базах данных
- Проект Genode опубликовал выпуск ОС общего назначения Sculpt 20.02
- Проект Genode опубликовал выпуск ОС общего назначения Sculpt 19.07
- [Разработка веб-сайтов, Серверное администрирование, Софт, Хранение данных] Архивирование веб-сайтов (перевод)
- [Будущее здесь, Видеотехника, Геоинформационные сервисы, Мультикоптеры, Обработка изображений] Pix4D — от фотографий к измерениям
- [DIY или Сделай сам, Мультикоптеры] Как сделать DJI Phantom 3 мобильным
- [Видеотехника, Гаджеты, Мультикоптеры, Фототехника] Ваш новый союзник в небе Mavic 2 Enterprise
Теги для поиска: #_phantom, #_genode
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 19:46
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Дмитрий Завалишин рассказал о проекте по портированию виртуальной машины операционной системы Phantom для работы в окружении микроядерной ОС Genode. В интервью отмечается, что основная версия Phantom уже готова к пилотным проектам, а версия на базе Genode будет доведена до готовности к применению в конце года. При этом на сайте проекта пока заявлен только работоспособный концептуальный прототип, стабильность и функциональность которого не доведены до уровня, пригодного к промышленному использованию, а среди ближайших планов упоминается формирование альфа-версии, пригодной для экспериментов сторонними разработчиками. Код проекта распространяется под лицензией LGPL, но последнее изменение в основном репозитории датировано ноябрём 2019 года. Связанная с проектом публичная активность сосредоточена в репозитории с форком для Genode, который с декабря 2020 года поддерживает Антон Антонов, студент из университета Иннополис. Операционная система Phantom с начала 2000-x годов развивалась как персональный проект Дмитрия Завалишина, а с 2010 года была переведена под крыло компании Digital Zone, созданной Дмитрием. Система примечательна ориентацией на высокую надёжность и использованием концепции "все есть объект" вместо "все есть файл", позволяющей обойтись без использования файлов за счёт сохранения состояния памяти и непрерывного цикла работы. Приложения в Phantom не завершаются, а лишь приостанавливаются и возобновляют работу c прерванной точки. Все переменные и структуры данных могут храниться столько времени, сколько необходимо приложению, при этом специально программисту не нужно заботиться о сохранении данных. Приложения в Phantom компилируются в байткод, который выполняется в стековой виртуальной машине, похожей на виртуальную машину Java. Виртуальная машина обеспечивает персистентность памяти приложений - система периодически сбрасывает снимки состояния виртуальной машины на постоянный носитель. После выключения или аварийного завершения работа может быть продолжена, начиная с последнего сохранённого снимка памяти. Снимки создаются в асинхронном режиме и без приостановки работы виртуальной машины, но в снапшоте фиксируется единовременный срез, как будто виртуальную машину остановили, сохранили на диск и опять запустили. Все приложения выполняются в общем глобальном адресном пространстве, которое позволяет обойтись без переключений контекста между ядром и приложениями, а также существенно упрощает и ускоряет взаимодействие между выполняемыми в виртуальной машине приложениями, которые могут обмениваться объектами через передачу ссылок. Разделение доступа осуществляется на уровне объектов, ссылки на которые можно получить только через вызов соответствующих методов (арифметика указателей отсутствует). Любые данные, в том числе числовые значения, обрабатываются как отдельные объекты. Для приложения работа выглядит непрерывной и не зависит от перезагрузок ОС, аварийных завершений работы и выключений компьютера. Модель программирования для Phantom сравнивается с запуском никогда не останавливающегося сервера приложений для объектного языка программирования. В качестве одного из основных способов разработки приложений рассматривается портирование для Phantom программ на языке Java, чему способствует схожесть виртуальной машины Phantom с JVM. Кроме компилятора байткода для языка Java, проектом планируется создание компиляторов для Python и C#, а также реализация транслятора из промежуточного кода WebAssembly. Для выполнения операций, требующих высокой производительности, таких как обработка видео и звука, предусмотрена возможность запуска в отдельных потоках бинарных объектов с нативным кодом (для сборки бинарных объектов используется LLVM). Для доступа к низкоуровневым сервисам ядра часть классов VM ("внутренние" классы) реализована на уровне ядра ОС. Для запуска Linux-приложений предусмотрена POSIX-прослойка, выполняющая эмуляцию вызовов, необходимых для работы Unix-процессов (персистентность для приложений в POSIX-прослойке пока не обеспечивается). Традиционная ОС Phantom помимо виртуальной машины включает собственное ядро с реализацией потоков, менеджера памяти, сборщика мусора, механизмов синхронизации, системы ввода/вывода и драйверов для работы с оборудованием, что заметно усложняет доведение проекта до готовности к широкому применению. Отдельно развиваются компоненты с сетевым стеком, графической подсистемой и интерфейсом пользователя. Примечательно, что графическая подсистема и оконный менеджер работают на уровне ядра. Для повышения стабильности, переносимости и безопасности проекта предпринята попытка переноса виртуальной машины Phantom для работы c использованием компонентов открытой микроядерной операционной системы Genode, разработку которой курирует немецкая компания Genode Labs. Для желающих поэкспериментировать с Phantom на базе Genode подготовлено специальное сборочное окружение на базе Docker. Использование Genode даст возможность использовать уже проверенные микроядра и драйверы, а также вынести драйверы в пространство пользователя (в текущем виде драйверы написаны на Си и выполняются на уровне ядра Phantom). В том числе появится возможность использования микроядра seL4, прошедшего математическую верификацию надёжности, подтверждающую, что реализация полностью соответствует спецификациям, заданным на формальном языке. Рассматривается возможность подготовки подобного доказательства надёжности и для виртуальной машины Phantom, что позволит добиться верификации всего окружения ОС. В качестве основной области применения порта на базе Genode называется разработка приложений для различных промышленных и встраиваемых устройств. В настоящее время уже подготовлен набор изменений для виртуальной машины и добавлены работающие поверх Genode обвязки для обеспечивающих персистентность компонентов ядра и основных низкоуровневых интерфейсов. Отмечается, что виртуальная машина Phantom уже может работать в 64-разрядном окружении Genode, но ещё предстоит реализовать работу VM в режиме персистентности, переработать подсистему драйверов и адаптировать для Genode компоненты с сетевым стеком и графической подсистемой. =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 19:46
Часовой пояс: UTC + 5