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

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

Ο Evan Green είναι ο Διευθύνων Σύμβουλος της Minoca Corp, ο οργανισμός που διατηρεί σήμερα το OS Minoca, καθώς και συνιδρυτής και μηχανικός του OS Minoca. Ο Evan ήταν αρκετά ευγενικός για να απαντήσει σε κάποιες ερωτήσεις σχετικά με το OS της Minoca για εμάς.

Τι ενέπνευσε το όνομα για τη Minoca OS;

Ήταν στην πραγματικότητα το όνομα του δρόμου που μεγάλωσα επάνω. Απλά μας άρεσε ο ήχος. Μου θυμίζει βελανιδιές.

Τι χωρίζει τη Minoca OS από άλλα λειτουργικά συστήματα;

Ο συνδυασμός των POSIX υποστήριξης (αλλά δεν απαιτείται) ως διασύνδεσης εφαρμογής, καθώς και του μοντέλου πυρήνα / προγράμματος οδήγησης που υποστηρίζει το backend, είναι μοναδικά.

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

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

Υπήρξαν δυσκολίες, ιδίως κατά την ανάπτυξη Minoca OS;

Το να γράφετε προγράμματα οδήγησης συσκευών και να αναβαθμίζετε ένα νέο System-on-Chip είναι πάντα δύσκολο, ακόμη και στις περιπτώσεις όπου εργάζεστε με καλή τεκμηρίωση (η οποία δυστυχώς δεν είναι πάντοτε). Θυμάμαι ότι χτύπησα το κεφάλι μου σε έναν τοίχο για πάνω από μία εβδομάδα προσπαθώντας να φέρω βίντεο σε μια συγκεκριμένη συσκευή. Η οθόνη θα έρθει επάνω, και θα μπορούσα να αντλήσει από το εντάξει, αλλά υπήρχαν κάθετες μαύρες γραμμές στην οθόνη. Όλα έμοιαζαν με τη φυλακή. Μερικές φορές θα μπορούσα να τσιμπώ τον κώδικα για να αλλάξω πού ξεκίνησαν οι ράβδοι ή το πλάτος μεταξύ τους, αλλά δεν μπορούσα να τους ξεφορτωθώ. Τελικά, νομίζω ότι γύρισα τυχαία το δεξί κουμπί, το οποίο με έδειξε στο πρόβλημα. Μια συχνότητα ρολογιού PLL ρυθμίστηκε πολύ αργά, γεγονός που προκάλεσε την τακτική υποκίνηση του κινητήρα DMA. Η αλλαγή ήταν απλή αλλά κανένας κοντά σε οποιονδήποτε κωδικό που σχετίζεται με βίντεο.

Σε ποιο βαθμό υποστηρίζεται το Minoca OS UNIX και πόσο καλά υποστηρίζεται το πρότυπο POSIX;

Στις εφαρμογές, το OS της Minoca μοιάζει πολύ με άλλα * nix OSes. Θα εκτιμούσα την υποστήριξη POSIX ως "αρκετά καλή". Ο στόχος μας δεν είναι απαραίτητα να είναι 100% συμβατός με το POSIX, αλλά να είναι αρκετά συμβατός με το POSIX ώστε η μεγάλη πλειονότητα των εφαρμογών και των βιβλιοθηκών ανοιχτού κώδικα να "λειτουργούν απλώς". Θα σχεδιάσουμε επίσης λίγο έξω από τις γραμμές, προσθέτοντας επεκτάσεις που δεν βρίσκονται στο POSIX, αλλά οι περισσότερες εφαρμογές αναμένουν να είναι εκεί, όπως οι παραλλαγές getopt_long.

Κάτω από τη βιβλιοθήκη POSIX C είναι το εγγενές API, το οποίο είναι η πραγματική διεπαφή στον πυρήνα. Υποστηρίζει τη λειτουργικότητα που απαιτείται για την παρουσίαση μιας βιβλιοθήκης POSIX C, αλλά η ίδια η διεπαφή δεν είναι POSIX. Τα εγγενή API ενδέχεται να εκθέτουν περισσότερες λειτουργίες ή διαφορετικές παραμέτρους από τις παραδοσιακές λειτουργίες POSIX ή άλλες φορές να εκθέτουν περισσότερο από μια γυμνή διεπαφή στον πυρήνα.

Στο κάτω επίπεδο, ο ίδιος ο πυρήνας δεν είναι Unix. Στην πραγματικότητα, για να φτάσουμε σε μια δομή καταλόγου Unix που μοιάζει με bin, lib, κλπ, το αρχικό περιβάλλον πρέπει να είναι "chroot" ed. Θέλαμε να είμαστε σε θέση να υποστηρίξουμε τις εφαρμογές που μοιάζουν με POSIX, αλλά όχι απαραίτητα να συνδέονται με το παράδειγμα Unix καθώς κοιτάμε προς το μέλλον.

Υπάρχει σχέδιο για υποστήριξη X / Wayland;

Είναι σίγουρα κάτι που κυλούν στο μυαλό μας. Έχουμε επίσης κάποιες κοινοτικές αιτήσεις για αυτό. Η πρόκληση είναι ότι οι επιταχυνόμενοι οδηγοί γραφικών έχουν πραγματικά πολύ μυστική σάλτσα σε αυτά. για να το κάνουμε σωστά μπορεί να καταλήξουμε να χρειαζόμαστε υποστήριξη από έναν από τους μεγαλύτερους προμηθευτές.

Είναι προφανώς ένα πολύ μεγάλο καθήκον για την ανάπτυξη οδηγών και είναι μεγάλη προσδοκία από τους πωλητές να αναπτύξουν προγράμματα οδήγησης για ένα άλλο λειτουργικό σύστημα. Πώς Μίνωκα OS σχεδιάζει να πλησιάσει τους οδηγούς; Θα υπάρξει κάποιος τύπος συμβατότητας με το πρόγραμμα οδήγησης Linux ή θα απομείνει ο αποκλεισμός από τους προμηθευτές;

Είναι μάλλον λίγο πολύ σύντομα για να απαντήσουμε σε αυτή την ερώτηση με κάποια πραγματική εμπιστοσύνη. Θεωρούμε ότι το API του οδηγού αποτελεί σημαντική περιοχή σχεδιασμού για το OS Minoca. Υποψιάζομαι ότι ενώ γράφοντας ένα μεταφραστικό στρώμα Linux ή Windows μπορεί να προσφέρει κάποιες γρήγορες λύσεις τώρα, μπορεί να βλάψει τις δυνατότητες του OS μακροπρόθεσμα. Επιπλέον, είμαστε ακόμα πολύ νέοι, έτσι ώστε μερικές από τις διεπαφές του οδηγού, ειδικά μερικές από τις πιο συγκεκριμένες κατηγορίες, εξακολουθούν να είναι αρκετά λειωμένες.

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

Ποιος είναι ο γενικός χάρτης πορείας για τη Minoca OS; Υπάρχει κοινό-στόχος για το οποίο επιθυμείτε να φροντίσετε τη Minoca OS για, ή θα καθοδηγείται από τις ανάγκες εκείνων που συμβάλλουν, όπως και ο εξελικτικός χαρακτήρας του Linux;

Μέχρι στιγμής, ο χάρτης πορείας έχει σχεδιαστεί γύρω από την καλή λειτουργία σε συσκευές που θέλουν πλήρη λειτουργικότητα του λειτουργικού συστήματος, αλλά μπορεί να περιορίζεται από πλευράς ισχύος, μνήμης ή αποτυπώματος αποθήκευσης. Οι ηλεκτρονικοί υπολογιστές ενός μόνο πίνακα, όπως το Raspberry Pi ή το BeagleBone Black, είναι καλά παραδείγματα μηχανών που τρέχουμε πολύ άνετα. Πιστεύουμε ότι ο μικρός κώδικας βάσης και ο σχεδιασμός που βασίζεται σε γεγονότα είναι κατάλληλοι για προηγμένες ενσωματωμένες συσκευές.

Νομίζω ότι το Linux έχει δείξει ότι οι ανάγκες των μεμονωμένων hackers και hobbyists δεν έρχονται απαραίτητα σε αντίθεση με τις ανάγκες των μεγαλύτερων εταιρειών και κατασκευαστών συσκευών. Θα θέλαμε το OS της Minoca να εξελιχθεί ως συνδυασμός κοινοτικών και εμπορικών συμφερόντων και πιστεύουμε ότι θα ωφελήσει όλους. Είμαστε αφοσιωμένοι στο να κάνουμε εργασίες ανοιχτού κώδικα ως επιχείρηση και είμαστε αποφασισμένοι να διατηρήσουμε τα πράγματα ανοικτά για την κοινότητά μας.

Η Μινόκα Η ιστοσελίδα του Corp δείχνει ότι υπάρχουν τόσο ιδιοκτησιακές όσο και ανοικτές πηγές, θα μπορούσατε να επεξεργαστείτε τις διαφορές μεταξύ τους και τι απαιτεί τη διάκριση;

Εμπορικά προσφέρουμε την ίδια πηγή με αυτά που είναι διαθέσιμα δημοσίως υπό εναλλακτικές ρυθμίσεις χορήγησης αδειών σε εταιρείες για τις οποίες μια άδεια χρήσης copyleft style δεν είναι κατάλληλη. Προσφέρουμε επίσης υπηρεσίες υποστήριξης και μηχανικής για εταιρείες που επιθυμούν πιο άμεση εμπλοκή και ταχύτερη ανάκαμψη.

Ποιες ήταν οι ελπίδες, οι εμπνεύσεις και τα κίνητρα για την ανάπτυξη ενός νέου λειτουργικού συστήματος;

Το αρχικό κίνητρο για το OS της Minoca ήταν πραγματικά απλή περιέργεια. Είχα περάσει τον περασμένο χρόνο διαχειρίζοντας μια ομάδα iOS και προγραμματιστές Ιστού στη Silicon Valley και άρχισε να χάνει τη μυρωδιά του C και να είναι κοντά στο υλικό. Υπήρχε και αυτή η ερώτηση που κυλούσε στο μυαλό μου: είναι δυνατόν κάποιος να χτίσει ένα νέο λειτουργικό σύστημα πια, δεδομένου του ιστορικού πλαισίου, της μυστικής σάλτσας και των λαθών που μπαίνουν στο σύγχρονο υλικό; Κάθισα σε έναν κενό συντάκτη και έσκαψα το Master Boot Record σε ένα απόγευμα. Την επόμενη μέρα άρχισα να δουλεύω στο debugger, στη συνέχεια στον διαχειριστή μνήμης και ουσιαστικά δεν σταμάτησε ποτέ.

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

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


Η επίδραση ενός νέου λειτουργικού συστήματος στο οικοσύστημα λογισμικού μπορεί συχνά να περάσει απαρατήρητη, διότι είναι κυρίως έμμεση, αλλά οι νέες προσεγγίσεις που προσφέρονται για τον σχεδιασμό του λειτουργικού συστήματος μπορούν να αποβάλουν τους άλλους και να εμπνεύσουν νέες προσεγγίσεις στην ανάπτυξη συστημάτων κάθε είδους. Και για αυτό, νομίζω ότι πρέπει να ευχαριστήσουμε τον Evan και την ομάδα του για τις προσπάθειές τους και φροντίστε να ελέγξετε το OS της Minoca για τον εαυτό σας με το πακέτο εξομοιωτών QEMU στην ιστοσελίδα του Minoca Corp. Ενημερώστε μας ότι σκέφτεστε στα παρακάτω σχόλια.

Εργαστεί Για Σας: Robert Gaines & George Fleming | Θέλετε Να Επικοινωνήσετε Μαζί Μας;

Σχόλια Για Την Ιστοσελίδα:

Χρήσιμες Πληροφορίες Apr 04 2020