Το έργο Neptune OS αναπτύσσει ένα επίπεδο συμβατότητας των Windows που βασίζεται στον μικροπυρήνα seL4

Δημοσιεύτηκε η πρώτη πειραματική έκδοση του έργου Neptune OS, αναπτύσσοντας ένα πρόσθετο στον μικροπυρήνα seL4 με την υλοποίηση στοιχείων πυρήνα των Windows NT, με στόχο την παροχή υποστήριξης για την εκτέλεση εφαρμογών των Windows. Ο κώδικας διανέμεται με την άδεια GPLv3.

Το έργο υλοποιείται από το "NT Executive", ένα από τα επίπεδα πυρήνα των Windows NT (NTOSKRNL.EXE), υπεύθυνη για την παροχή του API κλήσης εγγενούς συστήματος NT και της διεπαφής για τη λειτουργία του προγράμματος οδήγησης. Στο Neptune OS, το στοιχείο NT Executive και όλα τα προγράμματα οδήγησης δεν εκτελούνται σε επίπεδο πυρήνα, αλλά με τη μορφή διεργασιών χρήστη σε ένα περιβάλλον που βασίζεται στον μικροπυρήνα seL4. Η αλληλεπίδραση του NT Executive με τα προγράμματα οδήγησης πραγματοποιείται μέσω του τυπικού seL4 IPC. Οι κλήσεις συστήματος που παρέχονται καθιστούν δυνατή τη διασφάλιση ότι η βιβλιοθήκη NTDLL.DLL λειτουργεί με την υλοποίηση της διεπαφής προγραμματισμού Win32 που χρησιμοποιείται σε εφαρμογές.

Η πρώτη έκδοση του Neptune OS περιλαμβάνει ένα πρόγραμμα οδήγησης πληκτρολογίου (kbdclass.sys), ένα πρόγραμμα οδήγησης θύρας PS/2 (i8042prt.sys), ένα πρόγραμμα οδήγησης μπιπ (beep.sys) και έναν διερμηνέα γραμμής εντολών (ntcmd.exe), που έχει μεταφερθεί από το ReactOS και επιτρέποντας να επιδείξουν τις βασικές αρχές της οργάνωσης της εργασίας. Το μέγεθος της εικόνας εκκίνησης είναι 1.4 MB.

Ο απώτερος στόχος είναι να φέρει το επίπεδο σε κατάσταση επαρκή για τη μεταφορά του περιβάλλοντος χρήστη και των προγραμμάτων οδήγησης ReactOS. Οι προγραμματιστές εξετάζουν επίσης τη δυνατότητα επίτευξης δυαδικής συμβατότητας με εκτελέσιμα αρχεία των Windows και αποδεκτής συμβατότητας σε επίπεδο πηγής με προγράμματα οδήγησης πυρήνα των Windows.

Το κύριο εμπόδιο στην παροχή υποστήριξης για προγράμματα οδήγησης Windows είναι η χρήση στα περισσότερα προγράμματα οδήγησης πυρήνα των Windows όχι ενός τυπικού πρωτοκόλλου επικοινωνίας κατά την πρόσβαση σε άλλα προγράμματα οδήγησης, αλλά της άμεσης μεταφοράς δείκτη, η οποία δεν μπορεί να υλοποιηθεί στο Neptune OS λόγω των προγραμμάτων οδήγησης που εκτελούνται σε διαφορετικές διεργασίες.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο