Прататып айчыннай АС Phantom на базе Genode будзе готаў да канца года

Дзмітрый Завалішын распавёў аб праекце па партаванні віртуальнай машыны аперацыйнай сістэмы Phantom для працы ў асяроддзі мікраядзернай АС Genode. У інтэрв'ю адзначаецца, што асноўная версія Phantom ужо гатова да пілотных праектаў, а версія на базе Genode будзе даведзена да гатоўнасці да прымянення ў канцы года. Пры гэтым на сайце праекта пакуль заяўлены толькі працаздольны канцэптуальны прататып, стабільнасць і функцыянальнасць якога не даведзены да ўзроўню, прыдатнага да прамысловага выкарыстання, а сярод бліжэйшых планаў згадваецца фарміраванне альфа-версіі, прыдатнай для эксперыментаў іншымі распрацоўшчыкамі.

Код праекта распаўсюджваецца пад ліцэнзіяй LGPL, але апошняя змена ў асноўным рэпазітары датавана лістападам 2019 года. Звязаная з праектам публічная актыўнасць сканцэнтравана ў рэпазітары з форкам для Genode, які са снежня 2020 года падтрымлівае Антон Антонаў, студэнт з універсітэта Інаполіс.

Аперацыйная сістэма Phantom з пачатку 2000-х гадоў развівалася як персанальны праект Дзмітрыя Завалішына, а з 2010 года была пераведзена пад крыло кампаніі Digital Zone, створанай Дзмітрыем. Сістэма характэрна арыентацыяй на высокую надзейнасць і выкарыстаннем канцэпцыі "ўсё ёсць аб'ект" замест "усё ёсць файл", якая дазваляе абыйсціся без выкарыстання файлаў за кошт захавання стану памяці і бесперапыннага цыклу працы. Прыкладанні ў Phantom не завяршаюцца, а толькі прыпыняюцца і аднаўляюць працу c перапыненай кропкі. Усе зменныя і структуры дадзеных могуць захоўвацца столькі часу, колькі неабходна з дадаткам, пры гэтым спецыяльна праграмісту не трэба клапаціцца аб захаванні дадзеных.

Прыкладанні ў Phantom кампілююцца ў байткод, які выконваецца ў стэкавай віртуальнай машыне, падобнай на віртуальную машыну Java. Віртуальная машына забяспечвае персістэнтнасць памяці прыкладанняў - сістэма перыядычна скідае здымкі стану віртуальнай машыны на пастаянны носьбіт. Пасля выключэння або аварыйнага завяршэння праца можа быць працягнута, пачынаючы з апошняга захаванага здымка памяці. Здымкі ствараюцца ў асінхронным рэжыме і без прыпынення працы віртуальнай машыны, але ў снапшоце фіксуецца аднаразовы зрэз, як быццам віртуальную машыну спынілі, захавалі на дыск і зноў запусцілі.

Усе прыкладанні выконваюцца ў агульнай глабальнай адраснай прасторы, якая дазваляе абыйсціся без пераключэнняў кантэксту паміж ядром і прыкладаннямі, а таксама істотна спрашчае і паскарае ўзаемадзеянне паміж выкананымі ў віртуальнай машыне прыкладаннямі, якія могуць абменьвацца аб'ектамі праз перадачу спасылак. Падзел доступу ажыццяўляецца на ўзроўні аб'ектаў, спасылкі на якія можна атрымаць толькі праз выклік адпаведных метадаў (арыфметыка паказальнікаў адсутнічае). Любыя дадзеныя, у тым ліку лікавыя значэнні, апрацоўваюцца як асобныя аб'екты.

Для прыкладання праца выглядае бесперапыннай і не залежыць ад перазагрузак АС, аварыйных завяршэння працы і выключэнняў кампутара. Мадэль праграмавання для Phantom параўноўваецца з запускам ніколі не спыняецца сервера прыкладанняў для аб'ектнай мовы праграмавання. У якасці аднаго з асноўных спосабаў распрацоўкі прыкладанняў разглядаецца партаванне для Phantom праграм на мове Java, чаму спрыяе падабенства віртуальнай машыны Phantom з JVM. Акрамя кампілятара байткода для мовы Java, праектам плануецца стварэнне кампілятараў для Python і C#, а таксама рэалізацыя транслятара з прамежкавага кода WebAssembly.

Для выканання аперацый, якія патрабуюць высокай прадукцыйнасці, такіх як апрацоўка відэа і гуку, прадугледжана магчымасць запуску ў асобных патоках бінарных аб'ектаў з натыўным кодам (для зборкі бінарных аб'ектаў выкарыстоўваецца LLVM). Для доступу да нізкаўзроўневых сэрвісаў ядра частка класаў VM ("унутраныя" класы) рэалізавана на ўзроўні ядра АС. Для запуску Linux-прыкладанняў прадугледжана POSIX-праслойка, якая выконвае эмуляцыю выклікаў, неабходных для працы Unix-працэсаў (персістэнтнасць для прыкладанняў у POSIX-праслойцы пакуль не забяспечваецца).

Прататып айчыннай АС Phantom на базе Genode будзе готаў да канца года

Традыцыйная АС Phantom апроч віртуальнай машыны ўключае ўласнае ядро ​​з рэалізацыяй струменяў, мэнэджара памяці, зборшчыка смецця, механізмаў сінхранізацыі, сістэмы ўводу/высновы і драйвераў для працы з абсталяваннем, што прыкметна ўскладняе давядзенне праекту да гатовасці да шырокага ўжывання. Асобна развіваюцца кампаненты з сеткавым стэкам, графічнай падсістэмай і інтэрфейсам карыстальніка. Характэрна, што графічная падсістэма і аконны мэнэджар працуюць на ўзроўні ядра.

Для павышэння стабільнасці, пераноснасці і бяспекі праекта зроблена спроба пераносу віртуальнай машыны Phantom для працы з выкарыстаннем кампанентаў адкрытай мікраядзернай аперацыйнай сістэмы Genode, распрацоўку якой курыруе нямецкая кампанія Genode Labs. Для жадаючых паэксперыментаваць з Phantom на базе Genode падрыхтавана спецыяльнае зборачнае асяроддзе на базе Docker.

Выкарыстанне Genode дасць магчымасць выкарыстоўваць ужо правераныя мікраядра і драйверы, а таксама вынесці драйверы ў прастору карыстальніка (у бягучым выглядзе драйверы напісаны на Сі і выконваюцца на ўзроўні ядра Phantom). У тым ліку з'явіцца магчымасць выкарыстання мікраядра seL4, які прайшоў матэматычную верыфікацыю надзейнасці, якая пацвярджае, што рэалізацыя цалкам адпавядае спецыфікацыям, зададзеным на фармальнай мове. Разглядаецца магчымасць падрыхтоўкі падобнага доказу надзейнасці і для віртуальнай машыны Phantom, што дазволіць дамагчыся верыфікацыі ўсяго асяроддзя АС.

У якасці асноўнай вобласці ўжывання порта на базе Genode завецца распрацоўка прыкладанняў для розных прамысловых і ўбудавальных прылад. У цяперашні час ужо падрыхтаваны набор змен для віртуальнай машыны і дададзены працавальныя па-над Genode абвязкі для забяспечвальных персістэнтнасць кампанентаў ядра і асноўных нізкаўзроўневых інтэрфейсаў. Адзначаецца, што віртуальная машына Phantom ужо можа працаваць у 64-разрадным асяроддзі Genode, але яшчэ маецца быць рэалізаваць працу VM у рэжыме персістэнтнасці, перапрацаваць падсістэму драйвераў і адаптаваць для Genode кампаненты з сеткавым стэкам і графічнай падсістэмай.

Прататып айчыннай АС Phantom на базе Genode будзе готаў да канца года
Прататып айчыннай АС Phantom на базе Genode будзе готаў да канца года
Прататып айчыннай АС Phantom на базе Genode будзе готаў да канца года


Крыніца: opennet.ru

Дадаць каментар