Neptune OS: μια προσαρμογή WinNT του μικροπυρήνα seL4

Η δημοσίευση της πρώτης πειραματικής έκδοσης του έργου Neptune OS, που διαφέρει από το έργο του τη διανομή Linux που βασίζεται στο Debian με το ίδιο όνομα.

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

Σχετικά με το Neptune OS

το έργο iυλοποιεί το "NT Executive", ένα από τα επίπεδα του πυρήνα των Windows NT (NTOSKRNL.EXE), που είναι υπεύθυνη για την παροχή του API κλήσεων εγγενούς συστήματος NT και της διεπαφής για τη λειτουργία των προγραμμάτων οδήγησης.

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

 Το NT Executive είναι επίσης υπεύθυνο για τη διεπαφή προγράμματος οδήγησης πυρήνα των Windows (γνωστή ως μοντέλο προγράμματος οδήγησης των Windows), η οποία περιλαμβάνει λειτουργίες όπως IoConnectInterruptIoCallDriver

Στα Windows, αυτά φορτώνονται σε λειτουργία πυρήνα και συνδέονται με τοNTOSKRNL.EXEεικόνα. Στο Neptune OS, εκτελούμε όλα τα προγράμματα οδήγησης πυρήνα των Windows σε λειτουργία χρήστη και επικοινωνούν με τη διαδικασία NT Executive μέσω των τυπικών αρχικών αρχών IPC seL4.

Ο τελικός στόχος από το έργο Neptune OS είναι να εφαρμόσει αρκετή σημασιολογία NT έτσι ώστε το περιβάλλον χρήστη ReactOS να μπορεί να μεταφερθεί στο Neptune OS, καθώς και στα περισσότερα προγράμματα οδήγησης πυρήνα του ReactOS.

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

Θα πρέπει επίσης να είμαστε σε θέση να επιτύχουμε υψηλό βαθμό συμβατότητας πηγαίου κώδικα με προγράμματα οδήγησης πυρήνα των Windows. Το κύριο εμπόδιο για την επίτευξη δυαδικής συμβατότητας των προγραμμάτων οδήγησης πυρήνα είναι ότι πολλά προγράμματα οδήγησης πυρήνα των Windows δεν ακολουθούν το τυπικό πρωτόκολλο επικοινωνίας προγραμμάτων οδήγησης των Windows (δηλαδή περνούν IRP όταν χρειάζεται να καλέσουν άλλο πρόγραμμα οδήγησης) και αντ' αυτού, απλώς περνούν δείκτες και καλούν άλλους ελεγκτές απευθείας . Στο Neptune OS, εκτός και αν είναι ζεύγος προγράμματος οδήγησης-minidriver, εκτελούμε πάντα το "kernel".

Σχετικά με το Neptune OS 0.1.0001

Η κατάσταση του έργου αυτή τη στιγμή είναι μια προκαταρκτική έκδοση, καθώς μέχρι στιγμής μπορέσαμε να εφαρμόσουμε αρκετά NT primitives για να φορτώσουμε μια βασική στοίβα προγραμμάτων οδήγησης πληκτρολογίου, που περιλαμβάνει το πρόγραμμα οδήγησης κλάσης πληκτρολογίου kbdclass.sys και το πρόγραμμα οδήγησης θύρας. PS/ 2 i8042prt.sys, καθώς και μια βασική γραμμή εντολών ntcmd.exe, που ελήφθη από το έργο ReactOS.

Σχεδόν καμία από τις εντολές φλοιού δεν λειτουργεί πραγματικά, αλλά η στοίβα του πληκτρολογίου είναι σταθερή. Οι εκδόσεις εντοπισμού σφαλμάτων μπορεί να είναι λίγο αργές καθώς δημιουργούνται πάρα πολλά αρχεία καταγραφής εντοπισμού σφαλμάτων.

Αλλά αναφέρεται ότι αυτά μπορούν να απενεργοποιηθούν στον κωδικό (θα πρέπει να δείξετε το private/ntos/inc). Αναφέρεται επίσης ότι συμπεριλήφθηκε ένα πρόγραμμα οδήγησης "beep.sys" (που δεν έχει νόημα, αλλά μόνο ο προγραμματιστής θα ξέρει γιατί) που κάνει έναν ενοχλητικό ήχο στο ηχείο του υπολογιστή και ότι για να τον ακούσετε πρέπει να απενεργοποιήσετε τη σίγαση (ειδικά αν χρησιμοποιείτε pulseaudio).

Όλα τα χειριστήρια λειτουργούν στο χώρο χρήστη! Ολόκληρο το σύστημα χωράει σε μία δισκέτα και μπορεί να ληφθεί από την έκδοση 0.1.0001. Μπορείτε επίσης να το κατασκευάσετε μόνοι σας, η διαδικασία της οποίας περιγράφεται στην επόμενη ενότητα.

Τέλος, για όσους ενδιαφέρονται να μάθουν λίγα περισσότερα για το έργο, μπορείτε να συμβουλευτείτε τις λεπτομέρειες Στον ακόλουθο σύνδεσμο.

Το μέγεθος της εικόνας εκκίνησης είναι 1,4 MB και ο κώδικας κυκλοφορεί με την άδεια GPLv3.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.