Neptune OS: kustomisasi WinNT dari mikrokernel seL4

Publikasi versi percobaan pertama dari proyek Neptunus OS, yang berbeda dari proyek distribusi Linux berbasis Debian dengan nama yang sama.

Sistem ini yang akan kita bicarakan hari ini ditandai dengan mengembangkan plugin untuk mikrokernel seL4 dengan implementasi komponen kernel Windows NT, dengan tujuan menyediakan dukungan untuk menjalankan aplikasi Windows. 

Tentang Neptune OS

proyek sayamengimplementasikan "NT Executive", salah satu lapisan kernel Windows NT (NTOSKRNL.EXE), yang bertanggung jawab untuk menyediakan API dan antarmuka panggilan sistem NT Native agar driver dapat bekerja.

Pada Neptunus OS, komponen NT Executive dan semua driver tidak berjalan pada level kernel, tapi sebagai proses pengguna dalam lingkungan berdasarkan mikrokernel seL4. Interaksi komponen NT Executive dengan driver dilakukan melalui standar IPC seL4. Panggilan sistem yang disediakan memungkinkan pustaka NTDLL.DLL untuk bekerja dengan implementasi API Win32 yang digunakan dalam aplikasi.

 NT Executive juga bertanggung jawab atas antarmuka driver kernel Windows (dikenal sebagai model driver Windows), yang mencakup fitur-fitur seperti: IoConnectInterruptIoCallDriver

Di Windows, ini dimuat dalam mode kernel dan ditautkan denganNTOSKRNL.EXEgambar. Di OS Neptune, kami menjalankan semua driver kernel Windows dalam mode pengguna dan mereka berkomunikasi dengan proses NT Executive melalui primitif seL4 IPC standar.

Tujuan akhirnya dari proyek Neptunus OS adalah menerapkan semantik NT yang cukup sehingga lingkungan pengguna ReactOS dapat di-porting di bawah Neptune OS, serta sebagian besar driver kernel ReactOS.

Secara teori, para pengembang menyebutkan bahwa mereka harus dapat mencapai kompatibilitas biner dengan executable Windows asli selama implementasi yang ditawarkan dari NT API asli cukup setia.

Kita juga harus dapat mencapai tingkat kompatibilitas kode sumber yang tinggi dengan driver kernel Windows. Hambatan utama untuk mencapai kompatibilitas biner driver kernel adalah bahwa banyak driver kernel Windows tidak mengikuti protokol komunikasi driver Windows standar (yaitu mereka melewati IRP ketika mereka perlu memanggil driver lain) dan sebaliknya, mereka hanya meneruskan pointer dan memanggil pengontrol lain secara langsung . Di Neptune OS, kecuali itu adalah pasangan driver-minidriver, kami selalu menjalankan "kernel".

Tentang Neptunus OS 0.1.0001

Status proyek saat ini adalah versi awal, karena sejauh ini kami telah mampu mengimplementasikan cukup primitif NT untuk memuat tumpukan dasar driver keyboard, yang mencakup driver kelas keyboard kbdclass.sys dan driver port. PS/ 2 i8042prt.sys, serta prompt perintah dasar ntcmd.exe, diambil dari proyek ReactOS.

Hampir tidak ada perintah shell yang benar-benar berfungsi, tetapi tumpukan keyboard stabil. Pembuatan debug bisa agak lambat karena terlalu banyak log debug yang dihasilkan.

Tetapi disebutkan bahwa ini dapat dinonaktifkan dalam kode (Anda harus menunjuk ke private/ntos/inc). Disebutkan juga bahwa driver "beep.sys" disertakan (yang tidak masuk akal, tetapi hanya pengembang yang akan tahu mengapa) yang membuat suara mengganggu di speaker PC dan untuk mendengarnya, Anda harus membunyikan (terutama jika Anda menggunakan pulseaudio).

Semua pengontrol berjalan di ruang pengguna! Seluruh sistem muat dalam satu floppy disk dan dapat diunduh dari versi v0.1.0001. Anda juga dapat membuatnya sendiri, prosedurnya akan dijelaskan di bagian selanjutnya.

Akhirnya, bagi mereka yang tertarik untuk mengetahui lebih banyak tentang proyek ini, Anda dapat berkonsultasi dengan detailnya Di tautan berikut.

Ukuran gambar boot adalah 1,4 MB dan kode dirilis di bawah lisensi GPLv3.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.