Neptune OS: WinNT prilagođavanje mikrokernela seL4

Objavljivanje prve eksperimentalne verzije projekta Neptune OS, koja se razlikuje od projekta distribuciju Linuxa baziranu na Debianu sa istim imenom.

Ovaj sistem o kojem ćemo danas govoriti karakteriše razvoj dodatka za seL4 mikrokernel sa implementacijom komponenti Windows NT kernela, sa ciljem obezbeđivanja podrška za pokretanje Windows aplikacija. 

O Neptune OS-u

projekat iimplementira "NT Executive", jedan od slojeva Windows NT kernela (NTOSKRNL.EXE), odgovoran za obezbeđivanje API-ja NT izvornog sistemskog poziva i interfejsa za rad drajvera.

Na Neptune OS, komponenta NT Executive i svi drajveri ne rade na nivou kernela, Sino kao korisnički procesi u okruženju baziranom na seL4 mikrokernelu. Interakcija NT Executive komponente sa drajverima se vrši preko seL4 IPC standarda. Obezbeđeni sistemski pozivi omogućavaju biblioteci NTDLL.DLL da radi sa implementacijom Win32 API-ja koji se koristi u aplikacijama.

 NT Executive je takođe odgovoran za interfejs drajvera Windows kernela (poznat kao Windows model drajvera), koji uključuje funkcije kao što su IoConnectInterruptIoCallDriver

Na Windows-u, oni se učitavaju u kernel modu i povezuju se saNTOSKRNL.EXEslika. U Neptune OS-u, pokrećemo sve Windows drajvere kernela u korisničkom modu i oni komuniciraju sa NT Executive procesom kroz standardne seL4 IPC primitive.

Krajnji cilj iz projekta Neptun OS je implementirati dovoljno NT semantike tako da se ReactOS korisničko okruženje može prenijeti pod Neptune OS, kao i većina drajvera ReactOS kernela.

U teoriji, programeri spominje da bi trebali biti u stanju postići binarnu kompatibilnost sa izvornim Windows izvršnim datotekama sve dok je ponuđena implementacija izvornog NT API-ja dovoljno vjerna.

Takođe bi trebalo da budemo u mogućnosti da postignemo visok stepen kompatibilnosti izvornog koda sa drajverima jezgra Windows-a. Glavna prepreka postizanju binarne kompatibilnosti drajvera kernela je ta što mnogi Windows drajveri kernela ne prate standardni protokol komunikacije Windows drajvera (tj. prolaze IRP-ove kada treba da pozovu drugi drajver) i umesto toga, oni samo prosleđuju pokazivače i direktno pozivaju druge kontrolere . Na Neptune OS-u, osim ako nije par drajver-minidriver, uvijek pokrećemo "kernel".

O Neptune OS-u 0.1.0001

Stanje projekta u ovom trenutku je preliminarna verzija, pošto smo do sada bili u mogućnosti da implementiramo dovoljno NT primitiva da učitamo osnovni stog drajvera tastature, koji uključuje kbdclass.sys drajver klase tastature i drajver porta. PS/ 2 i8042prt.sys, kao i osnovni komandni redak ntcmd.exe, preuzet iz ReactOS projekta.

Teško da bilo koja od komandi ljuske zapravo radi, ali skup tastature je stabilan. Izgradnje za otklanjanje grešaka mogu biti malo spore jer se generiše previše dnevnika otklanjanja grešaka.

Ali se spominje da se oni mogu onemogućiti u kodu (trebalo bi pokazati na private/ntos/inc). Takođe se spominje da je uključen drajver "beep.sys" (što nema smisla, ali samo programer će znati zašto) koji stvara neugodan zvuk u zvučniku računara i da da biste ga čuli, morate uključiti (posebno ako koristite pulseaudio).

Svi kontroleri rade u korisničkom prostoru! Cijeli sistem stane na jednu disketu i može se preuzeti od verzije v0.1.0001. Možete ga i sami izgraditi, a postupak je opisan u sljedećem odjeljku.

Konačno, za one koji su zainteresirani da saznaju nešto više o projektu, možete pogledati detalje Na sledećem linku.

Veličina slike za pokretanje je 1,4 MB i kod je objavljen pod GPLv3 licencom.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.