Neptune OS: isang WinNT customization ng seL4 microkernel

Ang paglalathala ng unang pang-eksperimentong bersyon ng proyekto ng Neptune OS, na naiiba sa proyekto ng ang Debian-based na pamamahagi ng Linux na may parehong pangalan.

Ang sistemang ito na pag-uusapan natin ngayon ay nailalarawan sa pamamagitan ng pagbuo ng isang plugin para sa seL4 microkernel sa pagpapatupad ng mga bahagi ng kernel ng Windows NT, na may layuning magbigay suporta para sa pagpapatakbo ng mga Windows application. 

Tungkol sa Neptune OS

ang proyekto inagpapatupad 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 gumana ang mga driver.

Sa Neptune OS, ang bahagi Ang NT Executive at lahat ng mga driver ay hindi tumatakbo sa antas ng kernel, pero bilang 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 seL4 IPC standard. Ang ibinigay na mga tawag sa system ay ginagawang posible para sa NTDLL.DLL library na gumana sa isang pagpapatupad ng Win32 API na ginagamit sa mga application.

 Responsable din ang NT Executive para sa interface ng driver ng Windows kernel (kilala bilang modelo ng driver ng Windows), na kinabibilangan ng mga feature tulad ng IoConnectInterruptIoCallDriver

Sa Windows, nilo-load ang mga ito sa kernel mode at naka-link saNTOSKRNL.EXElarawan. Sa Neptune OS, pinapatakbo namin ang lahat ng Windows kernel driver sa user mode at nakikipag-ugnayan sila sa proseso ng NT Executive sa pamamagitan ng karaniwang seL4 IPC primitives.

Ang layunin ng pagtatapos mula sa proyekto ng Neptune OS ay upang ipatupad ang sapat na NT semantics upang ang kapaligiran ng gumagamit ng ReactOS ay ma-port sa ilalim ng Neptune OS, gayundin ang karamihan sa mga driver ng kernel ng ReactOS.

Sa teorya, ang mga developer binabanggit na dapat nilang makamit ang binary compatibility na may mga native na Windows executable hangga't ang inaalok na pagpapatupad ng native NT API ay sapat na tapat.

Dapat din nating makamit ang mataas na antas ng pagiging tugma ng source code sa mga driver ng Windows kernel. Ang pangunahing balakid sa pagkamit ng binary compatibility ng mga kernel driver ay ang maraming mga Windows kernel driver ay hindi sumusunod sa standard na Windows driver communication protocol (ibig sabihin, pumasa sila sa mga IRP kapag kailangan nilang tumawag sa isa pang driver) at sa halip, sila ay nagpapasa lang ng mga pointer at direktang tumawag sa iba pang mga controller. . Sa Neptune OS, maliban kung ito ay isang driver-minidriver na pares, palagi kaming nagpapatakbo ng "kernel".

Tungkol sa Neptune OS 0.1.0001

Ang estado ng proyekto sa oras na ito ay isang paunang bersyon, dahil sa ngayon ay nakapagpapatupad na kami ng sapat na mga primitive ng NT upang mag-load ng isang pangunahing stack ng mga keyboard driver, na kinabibilangan ng kbdclass.sys keyboard class driver at ang port driver. PS/ 2 i8042prt.sys, pati na rin ang pangunahing command prompt na ntcmd.exe, na kinuha mula sa proyekto ng ReactOS.

Halos hindi gumagana ang alinman sa mga shell command, ngunit ang keyboard stack ay stable. Maaaring medyo mabagal ang mga build ng debug dahil napakaraming mga debug log ang nabubuo.

Ngunit nabanggit na ang mga ito ay maaaring hindi paganahin sa code (dapat kang ituro sa pribado/ntos/inc). Nabanggit din na may kasamang driver na "beep.sys" (na walang saysay, ngunit ang developer lang ang makakaalam kung bakit) na gumagawa ng nakakainis na tunog sa PC speaker at para marinig ito, dapat mong i-unmute (lalo na kung gumagamit ka ng pulseaudio).

Ang lahat ng mga controller ay tumatakbo sa espasyo ng gumagamit! Ang buong system ay umaangkop sa isang floppy disk at maaaring i-download mula sa bersyon v0.1.0001. Maaari mo ring itayo ito sa iyong sarili, ang pamamaraan kung saan inilarawan sa susunod na seksyon.

Sa wakas, para sa mga interesadong malaman ang kaunti pa tungkol sa proyekto, maaari mong konsultahin ang mga detalye Sa sumusunod na link.

Ang laki ng boot image ay 1,4 MB at ang code ay inilabas sa ilalim ng lisensya ng GPLv3.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.