Прототипот на домашниот OS Phantom базиран на Genode ќе биде готов пред крајот на годината

Дмитриј Завалишин зборуваше за проектот за пренесување на виртуелната машина на оперативниот систем Phantom за работа во опкружувањето на Genode microkernel OS. Во интервјуто се забележува дека главната верзија на Phantom е веќе подготвена за пилот проекти, а верзијата базирана на Genode ќе биде подготвена за употреба на крајот на годината. Во исто време, на веб-страницата на проектот досега е објавен само работен концептуален прототип, чија стабилност и функционалност не се доведени на ниво погодно за индустриска употреба, а меѓу најблиските планови е формирање на алфа верзија. погоден за експерименти од трети лица програмери.

Кодот на проектот е дистрибуиран под лиценцата LGPL, но последната промена во главното складиште е со датум од ноември 2019 година. Јавната активност поврзана со проектот е концентрирана во складиштето со вилушка за Genode, кое од декември 2020 година го одржува Антон Антонов, студент од Универзитетот Иннополис.

Од раните 2000-ти, оперативниот систем Phantom беше развиен како личен проект на Дмитриј Завалишин, а од 2010 година беше префрлен под крилото на компанијата Дигитална зона создадена од Дмитриј. Системот е забележлив по неговиот фокус на висока доверливост и употребата на концептот „сè е објект“ наместо „сè е датотека“, што ја елиминира употребата на датотеки поради зачувување на состојбата на меморијата и континуиран циклус на работа. Апликациите во Phantom не се прекинуваат, туку само се паузираат и продолжуваат од местото каде што застанале. Сите променливи и структури на податоци може да се складираат онолку долго колку што и е потребно на апликацијата, а програмерот не мора да води посебна грижа за зачувување на податоците.

Апликациите во Phantom се компајлираат во бајтекод, кој работи во виртуелна машина базирана на стек, слична на виртуелната машина Java. Виртуелната машина обезбедува упорност на меморијата на апликацијата - системот периодично ги испушта снимките од состојбата на виртуелната машина до постојаните медиуми. По исклучување или паѓање, работата може да се продолжи почнувајќи од последната зачувана снимка од меморијата. Снимките се создаваат асинхроно и без суспендирање на виртуелната машина, но снимката доловува еднократно парче, како виртуелната машина да е запрена, зачувана на дискот и повторно стартувана.

Сите апликации работат во заеднички глобален адресен простор, што ја елиминира потребата за контекстно префрлување помеѓу кернелот и апликациите и во голема мера ја поедноставува и забрзува комуникацијата помеѓу апликациите што работат во виртуелна машина што може да разменува објекти преку референтно пренесување. Раздвојувањето на пристапот се врши на ниво на објекти, референци до кои може да се добијат само со повикување на соодветните методи (нема аритметика на покажувачот). Сите податоци, вклучувајќи ги и нумеричките вредности, се третираат како посебни објекти.

За апликацијата, работата изгледа континуирана и не зависи од рестартирање на ОС, паѓања и исклучувања на компјутерот. Програмскиот модел за Phantom се споредува со водење на непрекинат сервер за апликации за објект програмски јазик. Пренесувањето Java програми за Phantom се смета за еден од главните начини за развој на апликации, што е олеснето со сличноста на виртуелната машина Phantom со JVM. Покрај компајлерот на бајтекод за јазикот Јава, проектот планира да создаде компајлери за Python и C#, како и имплементација на преведувач од посредниот код на WebAssembly.

За извршување на операции кои бараат високи перформанси, како видео и аудио обработка, можно е да се извршуваат бинарни објекти со мајчин код во посебни нишки (LLVM се користи за изградба на бинарни објекти). За пристап до услугите на јадрото на ниско ниво, некои VM класи („внатрешни“ класи) се имплементирани на ниво на кернелот на ОС. За да се стартуваат апликациите на Linux, се обезбедува слој POSIX кој ги емулира повиците потребни за функционирање на процесите на Unix (упорноста за апликации во слојот POSIX сè уште не е обезбедена).

Прототипот на домашниот OS Phantom базиран на Genode ќе биде готов пред крајот на годината

Традиционалниот Phantom OS, покрај виртуелната машина, вклучува и сопствен кернел со имплементација на нишки, мемориски менаџер, собирач на ѓубре, механизми за синхронизација, I/O систем и драјвери за работа со опрема, што значително го отежнува носењето проектот до подготвеност за широка употреба. Одделно, се развиваат компоненти со мрежен стек, графички потсистем и кориснички интерфејс. Вреди да се одбележи дека графичкиот потсистем и менаџерот на прозорци работат на ниво на јадрото.

За да се подобри стабилноста, преносливоста и безбедноста на проектот, беше направен обид да се префрли на работа виртуелната машина Phantom со помош на компонентите на отворениот микрокернелен оперативен систем Genode, чиј развој е надгледуван од германската компанија Genode Labs. За оние кои сакаат да експериментираат со Phantom базиран на Genode, подготвена е посебна средина за градење базирана на Docker.

Користењето на Genode ќе овозможи користење на веќе тестирани микрокернели и драјвери, како и внесување на драјвери во корисничкиот простор (во нивната сегашна форма, двигателите се напишани во C и работат на ниво на Phantom кернелот). Конкретно, ќе биде можно да се користи микрокернелот seL4, кој помина математичка проверка на веродостојноста, потврдувајќи дека имплементацијата целосно е во согласност со спецификациите наведени во формалниот јазик. Се разгледува можноста за подготовка на сличен доказ за доверливост за виртуелната машина Phantom, што ќе овозможи верификација на целата ОС околина.

Главната област на примена на пристаништето базирано на Genode е развој на апликации за различни индустриски и вградени уреди. Во моментов, веќе е подготвен сет на промени за виртуелната машина и додадени се врски што работат на врвот на Genode за упорните компоненти на кернелот и главните интерфејси на ниско ниво. Забележано е дека виртуелната машина Phantom веќе може да работи во 64-битна Genode околина, но VM допрва треба да се имплементира во упорен режим, потсистемот на возачот треба да се преработи, а компонентите со мрежен стек и графички потсистем имаат да се адаптира за Генод.

Прототипот на домашниот OS Phantom базиран на Genode ќе биде готов пред крајот на годината
Прототипот на домашниот OS Phantom базиран на Genode ќе биде готов пред крајот на годината
Прототипот на домашниот OS Phantom базиран на Genode ќе биде готов пред крајот на годината


Извор: opennet.ru

Додадете коментар