Neptune OS: dostosowanie WinNT mikrojądra seL4

Publikacja pierwszej eksperymentalnej wersji projektu Neptune OS, która różni się od projektu dystrybucja Linuksa oparta na Debianie o tej samej nazwie.

Ten system, o którym dzisiaj porozmawiamy charakteryzuje się opracowaniem wtyczki dla mikrojądra seL4 z implementacją komponentów jądra Windows NT, w celu zapewnienia: wsparcie dla uruchamiania aplikacji Windows. 

O Neptune OS

projekt jarealizuje „Kierownik NT”, jedna z warstw jądra Windows NT (NTOSKRNL.EXE), odpowiedzialna za dostarczanie API wywołań systemowych NT Native oraz interfejs do pracy sterowników.

W systemie operacyjnym Neptune komponent NT Executive i wszystkie sterowniki nie działają na poziomie jądra, ale jako procesy użytkownika w środowisku opartym o mikrojądro seL4. Interakcja komponentu NT Executive ze sterownikami realizowana jest poprzez standard seL4 IPC. Dostarczone wywołania systemowe umożliwiają współpracę biblioteki NTDLL.DLL z implementacją interfejsu Win32 API używanego w aplikacjach.

 NT Executive jest również odpowiedzialny za interfejs sterownika jądra Windows (znany jako model sterownika Windows), który zawiera takie funkcje, jak IoConnectInterruptIoCallDriver

W systemie Windows są one ładowane w trybie jądra i połączone zNTOSKRNL.EXEobraz. W systemie operacyjnym Neptune uruchamiamy wszystkie sterowniki jądra systemu Windows w trybie użytkownika i komunikują się one z procesem NT Executive za pomocą standardowych prymitywów seL4 IPC.

Cel końcowy z projektu Neptune OS jest zaimplementowanie wystarczającej semantyki NT aby środowisko użytkownika ReactOS mogło być przeniesione pod system operacyjny Neptune, a także większość sterowników jądra ReactOS.

W teorii twórcy wspomina, że ​​powinny być w stanie osiągnąć zgodność binarną z natywnymi plikami wykonywalnymi Windows, o ile oferowana implementacja natywnego API NT jest wystarczająco wierna.

Powinniśmy również być w stanie osiągnąć wysoki stopień zgodności kodu źródłowego ze sterownikami jądra systemu Windows. Główną przeszkodą w osiągnięciu binarnej kompatybilności sterowników jądra jest to, że wiele sterowników jądra systemu Windows nie przestrzega standardowego protokołu komunikacyjnego sterownika systemu Windows (tj. przekazują IRP, gdy muszą wywołać inny sterownik), a zamiast tego po prostu przekazują wskaźniki i bezpośrednio wywołują inne kontrolery . W systemie operacyjnym Neptune, o ile nie jest to para sterownik-ministerownik, zawsze uruchamiamy „jądro”.

Informacje o systemie operacyjnym Neptuna 0.1.0001

Stan projektu w tej chwili jest wersją wstępną, ponieważ do tej pory byliśmy w stanie zaimplementować wystarczającą liczbę prymitywów NT, aby załadować podstawowy stos sterowników klawiatury, który zawiera sterownik klasy klawiatury kbdclass.sys i sterownik portu. 2 i8042prt.sys, a także podstawowy wiersz poleceń ntcmd.exe, zaczerpnięty z projektu ReactOS.

Prawie żadne z poleceń powłoki nie działa, ale stos klawiatury jest stabilny. Kompilacje debugowania mogą być nieco powolne, ponieważ generowanych jest zbyt wiele dzienników debugowania.

Wspomniano jednak, że można je wyłączyć w kodzie (należy wskazać private/ntos/inc). Wspomniano również, że dołączono sterownik „beep.sys” (co nie ma sensu, ale tylko programista będzie wiedział dlaczego), który wydaje denerwujący dźwięk w głośniku komputera i że aby go usłyszeć, należy wyłączyć wyciszenie (zwłaszcza jeśli używasz pulseaudio).

Wszystkie kontrolery działają w przestrzeni użytkownika! Cały system mieści się na jednej dyskietce i można go pobrać od wersji v0.1.0001. Możesz go również zbudować samodzielnie, procedura jest opisana w następnej sekcji.

Wreszcie, dla tych, którzy chcą dowiedzieć się czegoś więcej o projekcie, możesz zapoznać się ze szczegółami W poniższym linku.

Rozmiar obrazu rozruchowego wynosi 1,4 MB, a kod jest wydany na licencji GPLv3.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.