Ang prototype ng domestic OS Phantom batay sa Genode ay magiging handa bago matapos ang taon

Nagsalita si Dmitry Zavalishin tungkol sa isang proyekto sa pag-port ng isang virtual machine ng Phantom operating system upang gumana sa kapaligiran ng Genode microkernel OS. Ang panayam ay nagsasaad na ang pangunahing bersyon ng Phantom ay handa na para sa mga pilot project, at ang Genode-based na bersyon ay magiging handa para magamit sa katapusan ng taon. Kasabay nito, isang maisasagawa lamang na prototype na konseptwal ang inihayag sa website ng proyekto, ang katatagan at pag-andar nito ay hindi pa dinala sa isang antas na angkop para sa pang-industriyang paggamit, at kabilang sa mga agarang plano ang pagbuo ng isang alpha na bersyon na angkop para sa mga eksperimento. ng mga third-party na developer ay binanggit.

Ang code ng proyekto ay ipinamamahagi sa ilalim ng lisensya ng LGPL, ngunit ang huling pagbabago sa pangunahing repositoryo ay napetsahan noong Nobyembre 2019. Ang pampublikong aktibidad na nauugnay sa proyekto ay puro sa isang repositoryo na may tinidor para sa Genode, na pinananatili mula noong Disyembre 2020 ni Anton Antonov, isang estudyante mula sa Innopolis University.

Mula noong unang bahagi ng 2000s, ang Phantom operating system ay umuunlad bilang isang personal na proyekto ni Dmitry Zavalishin, at mula noong 2010 ay inilipat ito sa ilalim ng pakpak ng kumpanya ng Digital Zone na nilikha ni Dmitry. Ang sistema ay kapansin-pansin para sa pagtutok nito sa mataas na pagiging maaasahan at ang paggamit ng konsepto ng "lahat ay isang bagay" sa halip na "lahat ay isang file", na nagpapahintulot sa iyo na gawin nang walang paggamit ng mga file dahil sa pangangalaga ng estado ng memorya at tuloy-tuloy na ikot ng trabaho. Ang mga aplikasyon sa Phantom ay hindi winakasan, ngunit sinuspinde lamang at ipinagpatuloy mula sa naantala na punto. Ang lahat ng mga variable at istruktura ng data ay maaaring maimbak hangga't kailangan ng application, at ang programmer ay hindi kailangang mag-alala tungkol sa pag-save ng data.

Ang mga application sa Phantom ay pinagsama-sama sa bytecode, na tumatakbo sa isang stack-based virtual machine, katulad ng Java virtual machine. Tinitiyak ng virtual machine ang pagtitiyaga ng memorya ng application - pana-panahong nire-reset ng system ang mga snapshot ng estado ng virtual machine sa permanenteng media. Pagkatapos ng shutdown o pag-crash, maaaring magpatuloy ang trabaho simula sa huling naka-save na memory snapshot. Ang mga snapshot ay nilikha sa asynchronous mode at walang paghinto sa pagpapatakbo ng virtual machine, ngunit ang isang beses na slice ay naitala sa snapshot, na parang ang virtual machine ay tumigil, nai-save sa disk at nagsimulang muli.

Ang lahat ng mga application ay tumatakbo sa isang karaniwang global address space, na nag-aalis ng pangangailangan para sa mga paglipat ng konteksto sa pagitan ng kernel at mga application, at makabuluhang pinapasimple at pinapabilis din ang pakikipag-ugnayan sa pagitan ng mga application na tumatakbo sa virtual machine, na maaaring makipagpalitan ng mga bagay sa pamamagitan ng reference passing. Ang paghihiwalay ng pag-access ay isinasagawa sa antas ng mga bagay, ang mga sanggunian na maaari lamang makuha sa pamamagitan ng pagtawag sa naaangkop na mga pamamaraan (walang pointer arithmetic). Ang anumang data, kabilang ang mga numerong halaga, ay pinoproseso bilang hiwalay na mga bagay.

Para sa application, mukhang tuloy-tuloy ang trabaho at hindi nakadepende sa mga pag-reboot ng OS, pag-crash, at pagsara ng computer. Ang modelo ng programming para sa Phantom ay inihambing sa pagpapatakbo ng walang tigil na application server para sa isang object programming language. Ang pag-port ng mga programa ng Java sa Phantom ay itinuturing na isa sa mga pangunahing paraan ng pagbuo ng application, na pinadali ng pagkakatulad ng Phantom virtual machine sa JVM. Bilang karagdagan sa bytecode compiler para sa wikang Java, ang proyekto ay nagpaplano na lumikha ng mga compiler para sa Python at C#, pati na rin magpatupad ng isang tagasalin mula sa WebAssembly intermediate code.

Upang magsagawa ng mga pagpapatakbo na nangangailangan ng mataas na pagganap, tulad ng pagpoproseso ng video at audio, posibleng magpatakbo ng mga binary na bagay na may katutubong code sa magkahiwalay na mga thread (Ginagamit ang LLVM upang mag-assemble ng mga binary na bagay). Upang ma-access ang mababang antas ng mga serbisyo ng kernel, ang ilang mga klase ng VM ("panloob" na mga klase) ay ipinatupad sa antas ng OS kernel. Upang patakbuhin ang mga aplikasyon ng Linux, isang layer ng POSIX ang ibinibigay na tumutulad sa mga tawag na kinakailangan para sa pagpapatakbo ng mga proseso ng Unix (hindi pa ibinibigay ang pagtitiyaga para sa mga aplikasyon sa layer ng POSIX).

Ang prototype ng domestic OS Phantom batay sa Genode ay magiging handa bago matapos ang taon

Ang tradisyunal na Phantom OS, bilang karagdagan sa virtual machine, ay kinabibilangan ng sarili nitong kernel na may pagpapatupad ng mga thread, memory manager, garbage collector, mga mekanismo ng pag-synchronize, input/output system at mga driver para sa pagtatrabaho sa hardware, na makabuluhang nagpapahirap sa pagdadala ng proyekto. sa pagiging handa para sa malawakang paggamit. Hiwalay, ang mga bahagi na may network stack, isang graphics subsystem at isang user interface ay binuo. Kapansin-pansin na ang graphics subsystem at window manager ay gumagana sa antas ng kernel.

Upang pataasin ang katatagan, portability at seguridad ng proyekto, sinubukang i-port ang Phantom virtual machine upang gumana gamit ang mga bahagi ng open microkernel operating system na Genode, ang pagbuo nito ay pinangangasiwaan ng kumpanyang German na Genode Labs. Para sa mga gustong mag-eksperimento sa Phantom batay sa Genode, isang espesyal na kapaligiran ng build na nakabatay sa Docker ang inihanda.

Ang paggamit ng Genode ay magiging posible na gumamit ng mga napatunayang microkernel at driver, pati na rin ang paglipat ng mga driver sa espasyo ng gumagamit (sa kanilang kasalukuyang anyo, ang mga driver ay nakasulat sa C at isinasagawa sa antas ng Phantom kernel). Sa partikular, posibleng gamitin ang seL4 microkernel, na sumailalim sa mathematical reliability verification, na nagpapatunay na ang pagpapatupad ay ganap na sumusunod sa mga detalyeng tinukoy sa pormal na wika. Ang posibilidad ng paghahanda ng isang katulad na patunay ng pagiging maaasahan para sa Phantom virtual machine ay isinasaalang-alang, na magpapahintulot sa pag-verify ng buong kapaligiran ng OS.

Ang pangunahing lugar ng aplikasyon para sa port na nakabase sa Genode ay ang pagbuo ng mga aplikasyon para sa iba't ibang pang-industriya at naka-embed na mga aparato. Sa kasalukuyan, inihanda na ang isang hanay ng mga pagbabago para sa virtual machine at naidagdag ang mga binding na gumagana sa ibabaw ng Genode para matiyak ang pagpapatuloy ng mga bahagi ng kernel at ang pangunahing mababang antas ng mga interface. Napansin na ang Phantom virtual machine ay maaari nang gumana sa 64-bit na Genode na kapaligiran, ngunit kinakailangan pa ring ipatupad ang VM sa persistence mode, i-rework ang driver subsystem at iakma ang mga bahagi na may network stack at isang graphics subsystem para sa Genode.

Ang prototype ng domestic OS Phantom batay sa Genode ay magiging handa bago matapos ang taon
Ang prototype ng domestic OS Phantom batay sa Genode ay magiging handa bago matapos ang taon
Ang prototype ng domestic OS Phantom batay sa Genode ay magiging handa bago matapos ang taon


Pinagmulan: opennet.ru

Magdagdag ng komento