Прототипът на вътрешната операционна система Phantom, базирана на Genode, ще бъде готов преди края на годината

Дмитрий Завалишин говори за проекта за пренасяне на виртуалната машина на операционната система Phantom за работа в средата на микроядрото Genode OS. В интервюто се отбелязва, че основната версия на Phantom вече е готова за пилотни проекти, а версията, базирана на Genode, ще бъде приведена в готовност за използване в края на годината. В същото време на уебсайта на проекта досега е обявен само работещ концептуален прототип, чиято стабилност и функционалност не са доведени до ниво, подходящо за индустриална употреба, а сред най-близките планове е формирането на алфа версия подходящ за експерименти от разработчици на трети страни.

Кодът на проекта се разпространява под лиценз LGPL, но последната промяна в главното хранилище е от ноември 2019 г. Публичната дейност, свързана с проекта, е съсредоточена в хранилището с вилка за Genode, което от декември 2020 г. се поддържа от Антон Антонов, студент от Innopolis University.

От началото на 2000-те години операционната система Phantom е разработена като личен проект на Дмитрий Завалишин, а от 2010 г. е прехвърлена под крилото на компанията Digital Zone, създадена от Дмитрий. Системата се отличава с фокуса си върху високата надеждност и използването на концепцията „всичко е обект“ вместо „всичко е файл“, което елиминира използването на файлове поради запазването на състоянието на паметта и непрекъснат цикъл на работа. Приложенията във Phantom не се прекратяват, а само се поставят на пауза и се възобновяват от мястото, където са спрели. Всички променливи и структури от данни могат да се съхраняват толкова дълго, колкото е необходимо на приложението, като програмистът не трябва да полага специални грижи за запазване на данните.

Приложенията във Phantom се компилират в байт код, който работи във виртуална машина, базирана на стек, подобна на виртуалната машина на Java. Виртуалната машина осигурява постоянство на паметта на приложението - системата периодично изхвърля моментни снимки на състоянието на виртуалната машина на постоянен носител. След изключване или срив работата може да продължи, започвайки от последната запазена моментна снимка на паметта. Моментните снимки се създават асинхронно и без спиране на виртуалната машина, но моментната снимка улавя еднократен отрязък, сякаш виртуалната машина е била спряна, записана на диск и стартирана отново.

Всички приложения работят в общо глобално адресно пространство, което елиминира необходимостта от превключване на контекста между ядрото и приложенията и значително опростява и ускорява комуникацията между приложенията, работещи във виртуална машина, която може да обменя обекти чрез прехвърляне на референции. Разделянето на достъпа се извършва на ниво обекти, препратки към които могат да бъдат получени само чрез извикване на съответните методи (няма аритметика на указателя). Всички данни, включително числови стойности, се третират като отделни обекти.

За приложението работата изглежда непрекъсната и не зависи от рестартиране на операционната система, сривове и изключвания на компютъра. Програмният модел за Phantom се сравнява с работа на непрекъснат сървър за приложения за обектен програмен език. Пренасянето на Java програми за Phantom се счита за един от основните начини за разработване на приложения, което се улеснява от сходството на виртуалната машина Phantom с JVM. В допълнение към компилатора на байт код за езика Java, проектът планира да създаде компилатори за Python и C#, както и внедряването на преводач от междинния код на WebAssembly.

За извършване на операции, които изискват висока производителност, като видео и аудио обработка, е възможно да се изпълняват двоични обекти с естествен код в отделни нишки (LLVM се използва за изграждане на двоични обекти). За достъп до услуги на ядрото на ниско ниво някои VM класове („вътрешни“ класове) се внедряват на ниво ядро ​​на ОС. За стартиране на Linux приложения е осигурен POSIX слой, който емулира повикванията, необходими за работата на Unix процесите (все още не е осигурено постоянство за приложения в POSIX слоя).

Прототипът на вътрешната операционна система Phantom, базирана на Genode, ще бъде готов преди края на годината

Традиционната Phantom OS, в допълнение към виртуалната машина, включва собствено ядро ​​с внедряване на нишки, мениджър на паметта, събирач на боклук, механизми за синхронизация, I / O система и драйвери за работа с оборудване, което значително усложнява въвеждането проектът да бъде готов за широко използване. Отделно се разработват компоненти с мрежов стек, графична подсистема и потребителски интерфейс. Трябва да се отбележи, че графичната подсистема и мениджърът на прозорци работят на ниво ядро.

За да се подобри стабилността, преносимостта и сигурността на проекта, беше направен опит за прехвърляне на виртуалната машина Phantom за работа с помощта на компонентите на отворената микроядрена операционна система Genode, чието развитие се контролира от немската компания Genode Labs. За тези, които искат да експериментират с Phantom, базиран на Genode, е подготвена специална среда за изграждане, базирана на Docker.

Използването на Genode ще направи възможно използването на вече тествани микроядра и драйвери, както и пренасянето на драйвери в потребителското пространство (в сегашната си форма драйверите са написани на C и работят на ниво Phantom kernel). По-специално, ще бъде възможно да се използва микроядрото seL4, което е преминало математическа проверка на надеждността, потвърждавайки, че изпълнението напълно отговаря на спецификациите, посочени във официалния език. Обмисля се възможността за изготвяне на подобно доказателство за надеждност за виртуалната машина Phantom, което ще позволи проверка на цялата среда на ОС.

Основната област на приложение на базирания на Genode порт е разработването на приложения за различни индустриални и вградени устройства. Понастоящем вече е подготвен набор от промени за виртуалната машина и са добавени свързвания, работещи върху Genode, за компонентите за устойчивост на ядрото и основните интерфейси на ниско ниво. Отбелязва се, че виртуалната машина Phantom вече може да работи в 64-битова Genode среда, но VM все още не е внедрен в режим на постоянство, подсистемата на драйвера трябва да бъде преработена, а компонентите с мрежов стек и графична подсистема имат да бъдат адаптирани за Genode.

Прототипът на вътрешната операционна система Phantom, базирана на Genode, ще бъде готов преди края на годината
Прототипът на вътрешната операционна система Phantom, базирана на Genode, ще бъде готов преди края на годината
Прототипът на вътрешната операционна система Phantom, базирана на Genode, ще бъде готов преди края на годината


Източник: opennet.ru

Добавяне на нов коментар