Dmitri Zavalyshin ka folur për projektin e portimit të makinës virtuale të sistemit operativ Phantom për të punuar në një ambient të sistemit të mikrokernelit Genode. Në intervistë theksohet se versioni kryesor i Phantom është tashmë gati për projekte pilot, dhe versioni mbi bazën e Genode do të përfundohet për përdorim deri në fund të vitit. Në të njëjtën kohë, në faqen e projektit aktualisht është shpallur vetëm një prototip konceptual funksional, stabiliteti dhe funksionaliteti i të cilit nuk janë arritur në një nivel të përshtatshëm për përdorim industrial, dhe midis planeve të afërta përmendet formimi i një versioni alfa, i përshtatshëm për eksperimente nga zhvillues të tjerë.
Kodi i projektit shpërndahet nën licencën LGPL, por ndryshimi i fundit në depozitën kryesore daton nga nëntori i vitit 2019. Aktiviteti publik i lidhur me projektin është përqendruar në depozitën me forkun për Genode, e cila mbështetet nga Anton Antonov, një student nga universiteti Innopolis që nga dhjetori i vitit 2020.
Sistemi operativ Phantom ka zhvilluar si një projekt personal i Dmitrit Zavalyshin që nga fillimi i viteve 2000, dhe që nga viti 2010 është kaluar nën menaxhimin e kompanisë Digital Zone, të themeluar nga Dmitri. Sistemi është i njohur për orientimin e tij në besueshmëri të lartë dhe për përdorimin e konceptit "çdo gjë është një objekt" në vend të "çdo gjë është një skedar", i cili lejon që të shmangen përdorimi i skedareve përmes ruajtjes së gjendjes së memories dhe ciklit të vazhdueshëm të punës. Aplikacionet në Phantom nuk përfundojnë, por vetëm pezullohen dhe rinisën nga pika e ndërprerë. Të gjitha variablet dhe strukturat e të dhënave mund të ruhen për aq kohë sa kërkohet nga aplikacioni, pa përdoruesi e programuesit që të ketë nevojë të shqetësohet për ruajtjen e të dhënave.
Aplikacionet në Phantom kompilohen në bytecode, i cili ekzekutohet në një makinë virtuale me stack, të ngjashme me makinën virtuale Java. Makinë virtuale siguron qëndrueshmërinë e memories së aplikacioneve - sistemi herë pas here ruan blloqet e gjendjes së makinës virtuale në një medium të përhershëm. Pas fikjes ose përfundimit të papritur, puna mund të vazhdojë duke filluar nga blloku i fundit i ruajtur i memories. Blloqet krijohen në mënyrë asinkrone dhe pa ndalur punën e makinës virtuale, por në snapshot regjistrohet një prerje e përkohshme, sikur makina virtuale të ishte ndalur, ruajtur në disk dhe më pas rinisur.
Të gjitha aplikacionet ekzekutohen në një hapësirë globale adrese që lejon të shmangen kalimet e kontekstit mes bërthamës dhe aplikacioneve, si dhe ndihmon shumë në thjeshtimin dhe përshpejtimin e ndërveprimit ndërmjet aplikacioneve të ekzekutuara në makinën virtuale, të cilat mund të ndajnë objekte përmes transferimit të referencave. Ndërseparimi i aksesit realizohet në nivelin e objekteve, referencat e të cilave mund të merren vetëm përmes thirrjes së metodave përkatëse (aritmetika e treguesve mungon). Të dhënat e çdo lloji, përfshirë vlerat numerike, trajtohen si objekte të veçanta.
Për aplikacionin punimi duket i vazhdueshëm dhe nuk varet nga rinstalimet e OS-së, përfundimet e papritura të punës dhe fikjet e kompjuterit. Modeli i programimit për Phantom krahasohet me ekzekutimin e aplikacioneve që nuk ndalen kurrë. сервера si një nga mënyrat kryesore të zhvillimit të aplikacioneve është konsideruar portimi i programeve për Phantom në gjuhën Java, për të cilin ndihmon ngjashmëria e makinës virtuale Phantom me JVM. Përveç kompilatorit të bytecode për gjuhën Java, projekti parashikon krijimin e kompilatorëve për Python dhe C#, si dhe realizimin e një përkthyesi nga kodi ndërmjetës WebAssembly.
Për kryerjen e operacioneve që kërkojnë performancë të lartë, si përpunimi i videove dhe audios, është parashikuar mundësia e ekzekutimit në rrjedha të veçanta të objekteve binare me kod natyror (për ndërtimin e objekteve binare përdoret LLVM). Për qasje në shërbimet e nivelit të ulët të bërthamës, disa klasa VM (“klasa të brendshme”) janë implementuar në nivelin e bërthamës së OS. Për ekzekutimin e aplikacioneve Linux është parashikuar një ndërfaqe POSIX, që realizon emulimin e thirrjeve të nevojshme për funksionimin e proceseve Unix (për aplikacionet në ndërfaqen POSIX, për momentin nuk sigurohet qëndrueshmëria).

Sistemi operativ tradicional Phantom, përveç makinës virtuale, përfshin një bërthamë të vetën me realizimin e rrjedhave, menaxherit të memories, grumbulluesit të mbeturinave, mekanizmave të sinkronizimit, sistemin e hyrje/dalje dhe drejtuesit për të punuar me pajisjet, gjë që e komplikon ndjeshëm përfundimin e projektit për përdorim të gjerë. Komponentët me paketën rrjetore, sistemin grafik dhe ndërfaqen e përdoruesit zhvillohen veçmas. E veçantë është që sistemi grafik dhe menaxheri i dritareve punojnë në nivelin e bërthamës.
Për të rritur stabilitetin, portabilitetin dhe sigurinë e projektit, është bërë një përpjekje për të kaluar makinën virtuale Phantom për të punuar me komponentët e sistemit operativ mikro-njësor me kod të hapur Genode, zhvillimin e të cilit e mbikëqyr kompania gjermane Genode Labs. Për ata që dëshirojnë të eksperimentojnë me Phantom mbi Genode, është përgatitur një ambient ndërtimi të veçantë mbi bazën e Docker.
Përdorimi i Genode do të ofrojë mundësinë për të përdorur mikro-bërthamat dhe drejtuesit e provuar, si dhe për të nxjerrë drejtuesit në hapësirën e përdoruesit (në formën aktuale, drejtuesit janë të shkruar në C dhe ekzekutohen në nivelin e bërthamës së Phantom). Po ashtu do të shfaqet mundësia e përdorimit të mikro-bërthamës seL4, e cila ka kaluar verifikimin matematikor të besueshmërisë, duke konfirmuar se implementimi përputhet plotësisht me specifikimet e caktuara në gjuhën formale. Po shqyrtohet mundësia e përgatitjes së një prove të ngjashme të besueshmërisë edhe për makinën virtuale Phantom, që do të mundësojë verifikimin e gjithë ambientit të sistemit operativ.
Si një fushë kryesore aplikimi, porta mbi bazën e Genode është e dedikuar për zhvillimin e aplikacioneve për pajisje të ndryshme industriale dhe të integruara. Aktualisht, është përgatitur një set ndryshimesh për makinë virtuale dhe janë shtuar lidhje funksionale sipër Genode për të siguruar që komponentët e bërthamës dhe interfeset e ulta të jenë të qëndrueshme. Është e theksuar se makina virtuale Phantom tani mund të funksionojë në një mjedis 64-bit të Genode, por ende duhet të realizohet funksionimi i VM në modin e qëndrueshmërisë, të ri-inxizhohet nën-sistemi i drejtuesve dhe të adaptohen për Genode komponentët me grumbullin e rrjetit dhe nën-sistemin grafik.



Burimi: opennet.ru
