Neptune OS: seL4-mikroytimen WinNT-räätälöinti

Neptune OS -projektin ensimmäisen kokeellisen version julkaisu, joka eroaa projektista Debian-pohjainen Linux-jakelu samalla nimellä.

Tämä järjestelmä, josta puhumme tänään on ominaista seL4-mikroytimelle lisäosan kehittäminen Windows NT -ytimen komponenttien toteuttamisen kanssa tavoitteena tarjota tuki Windows-sovellusten käyttämiselle. 

Tietoja Neptune OS: stä

projekti itoteuttaa "NT Executive", yksi Windows NT -ytimen (NTOSKRNL.EXE) kerroksista, joka vastaa NT Native -järjestelmäkutsusovellusliittymän ja käyttöliittymän tarjoamisesta ohjaimien toimintaan.

Neptune OS:ssä komponentti NT Executive ja kaikki ajurit eivät toimi ydintasolla, mutta käyttäjäprosesseina seL4-mikroytimeen perustuvassa ympäristössä. NT Executive -komponentin vuorovaikutus ohjaimien kanssa tapahtuu seL4 IPC -standardin kautta. Mukana toimitetut järjestelmäkutsut mahdollistavat sen, että NTDLL.DLL-kirjasto voi toimia sovelluksissa käytetyn Win32 API:n toteutuksen kanssa.

 NT Executive vastaa myös Windows-ytimen ohjainliittymästä (tunnetaan nimellä Windows-ohjainmalli), joka sisältää ominaisuuksia, kuten IoConnectInterruptIoCallDriver

Windowsissa nämä ladataan ydintilassa ja linkitetäänNTOSKRNL.EXEkuva. Neptune-käyttöjärjestelmässä käytämme kaikkia Windows-ytimen ajureita käyttäjätilassa ja ne kommunikoivat NT Executive -prosessin kanssa tavallisten seL4 IPC -primitiivien kautta.

Lopullinen tavoite Neptune OS -projektista on toteuttaa tarpeeksi NT-semantiikkaa jotta ReactOS-käyttäjäympäristö voidaan siirtää Neptune OS:n alle, samoin kuin useimmat ReactOS-ytimen ajurit.

Teoriassa kehittäjät mainitsee, että niiden pitäisi pystyä saavuttamaan binääriyhteensopivuus natiivi Windows-suoritustiedostojen kanssa, kunhan tarjottu alkuperäisen NT API:n toteutus on riittävän luotettava.

Meidän pitäisi myös pystyä saavuttamaan korkea lähdekoodiyhteensopivuus Windows-ytimen ohjaimien kanssa. Suurin este ytimen ohjaimien binaariyhteensopivuuden saavuttamiselle on se, että monet Windows-ytimen ohjaimet eivät noudata tavallista Windows-ohjainviestintäprotokollaa (eli ne läpäisevät IRP:t, kun heidän on kutsuttava toista ajuria) ja sen sijaan ne vain välittävät osoittimia ja kutsuvat muita ohjaimia suoraan . Neptune-käyttöjärjestelmässä, ellei se ole ajuri-miniajuri-pari, käytämme aina "ydintä".

Tietoja Neptune OS:stä 0.1.0001

Projektin tämänhetkinen tila on alustava versio, koska olemme toistaiseksi pystyneet toteuttamaan tarpeeksi NT-primitiiviä ladataksemme peruspinon näppäimistön ajureita, jotka sisältävät kbdclass.sys-näppäimistöluokan ajurin ja porttiohjaimen. PS/ 2 i8042prt.sys sekä peruskomentokehote ntcmd.exe, joka on otettu ReactOS-projektista.

Tuskin mikään komentotulkkikomentoista toimii, mutta näppäimistöpino on vakaa. Debug-koontiversiot voivat olla hieman hitaita, koska luodaan liian monta virheenkorjauslokia.

Mutta mainitaan, että nämä voidaan poistaa käytöstä koodissa (sinun tulee osoittaa private/ntos/inc). Mainitaan myös, että mukana oli "beep.sys"-ohjain (missä ei ole järkeä, mutta vain kehittäjä tietää miksi), joka antaa ärsyttävän äänen PC-kaiuttimesta ja että sen kuulemiseksi sinun on poistettava mykistys (varsinkin jos käytät pulseaudiota).

Kaikki ohjaimet toimivat käyttäjätilassa! Koko järjestelmä mahtuu yhdelle levykkeelle ja se voidaan ladata versiosta v0.1.0001. Voit myös rakentaa sen itse, jonka menettely kuvataan seuraavassa osassa.

Lopuksi, niille, jotka ovat kiinnostuneita tietämään hieman enemmän projektista, voit tutustua yksityiskohtiin Seuraavassa linkissä.

Käynnistyskuvan koko on 1,4 Mt ja koodi on julkaistu GPLv3-lisenssillä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.