OS Neptune: penyesuaian WinNT bagi mikrokernel seL4

Penerbitan versi percubaan pertama projek OS Neptune, yang berbeza daripada projek pengedaran Linux berasaskan Debian dengan nama yang sama.

Sistem ini yang akan kita bicarakan hari ini dicirikan dengan membangunkan pemalam untuk mikrokernel seL4 dengan pelaksanaan komponen kernel Windows NT, dengan matlamat untuk menyediakan sokongan untuk menjalankan aplikasi Windows. 

Mengenai Neptune OS

projek imelaksanakan "NT Executive", salah satu lapisan kernel Windows NT (NTOSKRNL.EXE), bertanggungjawab untuk menyediakan API panggilan sistem Asli NT dan antara muka untuk pemacu berfungsi.

Pada OS Neptune, komponen NT Executive dan semua pemacu tidak berjalan pada tahap kernel, tetapi sebagai proses pengguna dalam persekitaran berdasarkan mikrokernel seL4. Interaksi komponen NT Executive dengan pemandu dijalankan melalui piawaian seL4 IPC. Panggilan sistem yang disediakan membolehkan perpustakaan NTDLL.DLL berfungsi dengan pelaksanaan API Win32 yang digunakan dalam aplikasi.

 NT Executive juga bertanggungjawab untuk antara muka pemacu kernel Windows (dikenali sebagai model pemacu Windows), yang termasuk ciri-ciri seperti IoConnectInterruptIoCallDriver

Pada Windows, ini dimuatkan dalam mod kernel dan dikaitkan denganNTOSKRNL.EXEimej. Dalam OS Neptune, kami menjalankan semua pemacu kernel Windows dalam mod pengguna dan mereka berkomunikasi dengan proses NT Executive melalui primitif seL4 IPC standard.

Matlamat akhir daripada projek OS Neptune adalah untuk melaksanakan semantik NT yang mencukupi supaya persekitaran pengguna ReactOS boleh dialihkan di bawah Neptune OS, serta kebanyakan pemacu kernel ReactOS.

Secara teorinya, pemaju menyebut bahawa mereka sepatutnya dapat mencapai keserasian binari dengan boleh laku Windows asli selagi pelaksanaan yang ditawarkan bagi API NT asli cukup setia.

Kita juga seharusnya dapat mencapai tahap keserasian kod sumber yang tinggi dengan pemacu kernel Windows. Halangan utama untuk mencapai keserasian binari pemacu kernel ialah banyak pemacu kernel Windows tidak mengikut protokol komunikasi pemacu Windows standard (iaitu mereka melepasi IRP apabila mereka perlu memanggil pemandu lain) dan sebaliknya, mereka hanya menghantar penunjuk dan memanggil pengawal lain secara terus . Pada OS Neptune, melainkan pasangan pemacu pemacu mini, kami sentiasa menjalankan "kernel".

Mengenai Neptune OS 0.1.0001

Keadaan projek pada masa ini ialah versi awal, kerana setakat ini kami telah dapat melaksanakan primitif NT yang mencukupi untuk memuatkan tindanan asas pemacu papan kekunci, yang termasuk pemacu kelas papan kekunci kbdclass.sys dan pemacu port. PS/ 2 i8042prt.sys, serta gesaan arahan asas ntcmd.exe, diambil daripada projek ReactOS.

Hampir tidak ada arahan shell yang benar-benar berfungsi, tetapi susunan papan kekunci stabil. Binaan nyahpepijat boleh menjadi agak perlahan kerana terlalu banyak log nyahpepijat sedang dijana.

Tetapi disebutkan bahawa ini boleh dilumpuhkan dalam kod (anda harus menunjuk ke private/ntos/inc). Ia juga disebut bahawa pemacu "beep.sys" telah disertakan (yang tidak masuk akal, tetapi hanya pembangun akan tahu sebabnya) yang mengeluarkan bunyi yang menjengkelkan dalam pembesar suara PC dan untuk mendengarnya, anda mesti menyahredam (terutama jika anda menggunakan pulseaudio).

Semua pengawal berjalan dalam ruang pengguna! Keseluruhan sistem muat pada satu cakera liut dan boleh dimuat turun daripada versi v0.1.0001. Anda juga boleh membinanya sendiri, prosedur yang diterangkan dalam bahagian seterusnya.

Akhir sekali, bagi mereka yang berminat untuk mengetahui lebih lanjut mengenai projek tersebut, anda boleh merujuk butirannya Dalam pautan berikut.

Saiz imej but ialah 1,4 MB dan kod dikeluarkan di bawah lesen GPLv3.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.