Tilck Project, ένας απλοποιημένος πυρήνας συμβατός με Linux

τσιμπούρι

Το Tilck είναι ένας εκπαιδευτικός μονολιθικός πυρήνας x86 που έχει σχεδιαστεί για να είναι συμβατός με Linux σε δυαδικό επίπεδο.

Δόθηκε στη δημοσιότητα η είδηση ​​του α νέα ανάπτυξη που έχει το όνομα «Project Tilck», στο οποίο αναπτύσσεται ένας υπάλληλος της VMware ένας μονολιθικός πυρήνας που είναι θεμελιωδώς διαφορετικός από το Linux, αλλά έχει σχεδιαστεί για να είναι συμβατός δυαδικό με Linux και δυνατότητα εκτέλεσης εφαρμογών που έχουν δημιουργηθεί για Linux.

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

Το Tilck είναι θεμελιωδώς διαφορετικό από το Linux στο ότι δεν στοχεύει διακομιστές πολλών χρηστών ή επιτραπέζιους υπολογιστές, καθόλου γιατί αυτό δεν θα είχε νόημα: το Linux δεν είναι μεγάλο και πολύπλοκο λόγω κακής εφαρμογής, αλλά λόγω του απίστευτου αριθμού των χαρακτηριστικών που έχει. προσφορές και την εγγενή πολυπλοκότητα που απαιτούν. Με άλλα λόγια, το Linux είναι υπέροχο δεδομένου του προβλήματος που λύνει. Το Tilck θα προσφέρει λιγότερες δυνατότητες σε αντάλλαγμα:

απλούστερος κώδικας (μακράν)
μικρότερο δυαδικό μέγεθος
εξαιρετικά ντετερμινιστική συμπεριφορά
εξαιρετικά χαμηλή καθυστέρηση
ευκολότερη ανάπτυξη και δοκιμή
πρόσθετη στιβαρότητα

Το έργο δεν προορίζεται για χρήση σε περιβάλλοντα διακομιστή πολλών χρηστών ή επιτραπέζιων συστημάτων. Από τα συστήματα αρχείων, τα FAT16 και FAT32 υποστηρίζονται σε λειτουργία ανάγνωσης, όπως και τα ramfs, devfs και sysfs. Οι συσκευές μπλοκ δεν έχουν ακόμη εφαρμοστεί. όλα είναι στη μνήμη.

Το VFS παρέχεται για την αφαίρεση των λειτουργιών του FS. Το Multithreading στο τρέχον στάδιο ανάπτυξης είναι διαθέσιμο μόνο σε επίπεδο πυρήνα (δεν παρέχεται ακόμη στο χώρο χρήστη).

Ο πυρήνας υποστηρίζει προληπτικές πολλαπλές εργασίες και υλοποιεί περίπου 100 βασικές κλήσεις. στο σύστημα Linux, όπως fork(), waitpid(), read(), write(), select() και poll(), που επαρκούν για την εκτέλεση εφαρμογών κονσόλας όπως BusyBox, Vim, TinyCC, Micropython και Lua, καθώς και γραφικές εφαρμογές που βασίζονται σε framebuffer, όπως το παιχνίδι fbDOOM. Για τη δημιουργία προγραμμάτων για το Tilck, παρέχεται ένα σύνολο εργαλείων που βασίζονται στη βιβλιοθήκη Musl.

Αναφέρεται ότι το προτεινόμενο σετ προγραμμάτων οδήγησης επιτρέπει την εκτέλεση του Tilck τόσο στο περιβάλλον QEMU όπως στα συμβατικά συστήματα που εκκινούν από μονάδα USB. Επιπλέον, σημειώνεται επίσης ότι υπάρχει υποστήριξη για εκτεταμένα σύνολα εντολών SSE, AVX και AVX2. Προσφέρει το δικό του διαδραστικό bootloader που υποστηρίζει συστήματα BIOS και UEFI, αλλά είναι επίσης δυνατή η χρήση φορτωτών εκκίνησης τρίτων όπως το GRUB2. Όταν φορτωθεί στο QEMU, ο πυρήνας μπορεί να τρέξει σε περιβάλλον με 3 MB μνήμης RAM.

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

Ενώ ο Tilck χρησιμοποιεί εσωτερικά την έννοια του νήματος, το multithreading δεν εκτίθεται επί του παρόντος στο χώρο του χρήστη (υπάρχουν, φυσικά, τα νήματα του πυρήνα). Τόσο η fork() όσο και η vfork() υλοποιούνται σωστά και το copy-on-write χρησιμοποιείται για διχαλωμένες διεργασίες. Η κλήση συστήματος waitpid() υλοποιείται πλήρως (που συνεπάγεται ομάδες διεργασιών κ.λπ.).

Ένα ενδιαφέρον χαρακτηριστικό σε αυτόν τον τομέα αξίζει ιδιαίτερης αναφοράς: παρά την έλλειψη πολλαπλών νημάτων χώρου χρηστών, το Tilck έχει πλήρη υποστήριξη για το TLS.

Αναμένεται ότι Τσιμπούρι γεφυρώστε το χάσμα μεταξύ λύσεων που βασίζονται σε πυρήνα Linux και αποκλειστικών λειτουργικών συστημάτων σε πραγματικό χρόνο, όπως το FreeRTOS και το Zephyr. Τα σχέδια περιλαμβάνουν τη μετεγκατάσταση του Tilck σε επεξεργαστές ARM και non-Memory Management Unit (MMU), την προσθήκη ενός υποσυστήματος δικτύου, την υποστήριξη για συσκευές μπλοκ και πρόσθετα συστήματα αρχείων όπως το ext2.

Ο κώδικας είναι γραμμένος σε C και διανέμεται με την άδεια BSD. Στο τρέχον στάδιο ανάπτυξης, ο πυρήνας υποστηρίζει μόνο την αρχιτεκτονική x86, αλλά ο κώδικας έχει σχεδιαστεί με γνώμονα την καθολικότητα και την εφαρμογή για μελλοντική υποστήριξη για άλλες αρχιτεκτονικές.

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


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

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

*

*

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