Ang proyekto ng Neptune OS ay bumubuo ng isang Windows compatibility layer batay sa seL4 microkernel

Ang unang pang-eksperimentong paglabas ng proyekto ng Neptune OS ay nai-publish, na bumubuo ng isang add-on sa seL4 microkernel na may pagpapatupad ng mga bahagi ng Windows NT kernel, na naglalayong magbigay ng suporta para sa pagpapatakbo ng mga aplikasyon ng Windows. Ang code ay ipinamahagi sa ilalim ng lisensya ng GPLv3.

Ang proyekto ay ipinatupad ng "NT Executive", isa sa mga layer ng Windows NT kernel (NTOSKRNL.EXE), na responsable sa pagbibigay ng NT Native system call API at interface para sa pagpapatakbo ng driver. Sa Neptune OS, ang bahagi ng NT Executive at lahat ng mga driver ay hindi tumatakbo sa antas ng kernel, ngunit sa anyo ng mga proseso ng user sa isang kapaligiran batay sa seL4 microkernel. Ang pakikipag-ugnayan ng NT Executive component sa mga driver ay isinasagawa sa pamamagitan ng karaniwang seL4 IPC. Ginagawang posible ng mga system call na ibinigay upang matiyak na gumagana ang library ng NTDLL.DLL sa pagpapatupad ng interface ng programming ng Win32 na ginagamit sa mga application.

Kasama sa unang bersyon ng Neptune OS ang isang keyboard driver (kbdclass.sys), isang PS/2 port driver (i8042prt.sys), isang beep driver (beep.sys) at isang command line interpreter (ntcmd.exe), na na-port mula sa ReactOS at pagpapahintulot na ipakita ang mga pangunahing prinsipyo ng organisasyon ng trabaho. Ang laki ng boot image ay 1.4 MB.

Ang pangwakas na layunin ay dalhin ang layer sa isang estado na sapat upang mai-port ang kapaligiran ng user at mga driver ng ReactOS. Isinasaalang-alang din ng mga developer ang posibilidad na makamit ang binary compatibility sa Windows executable file at katanggap-tanggap na source-level compatibility sa mga driver ng Windows kernel.

Ang pangunahing balakid sa pagbibigay ng suporta para sa mga driver ng Windows ay ang paggamit sa karamihan ng mga driver ng Windows kernel hindi ng isang karaniwang protocol ng komunikasyon kapag ina-access ang iba pang mga driver, ngunit ng direktang paglipat ng pointer, na hindi maipapatupad sa Neptune OS dahil sa mga driver na tumatakbo sa iba't ibang mga proseso.

Pinagmulan: opennet.ru

Magdagdag ng komento