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

Πίνακας περιεχομένων:

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

Βίντεο: Πώς να φτιάξετε ένα λειτουργικό σύστημα υπολογιστή: 13 βήματα (με εικόνες)

Βίντεο: Πώς να φτιάξετε ένα λειτουργικό σύστημα υπολογιστή: 13 βήματα (με εικόνες)
Βίντεο: Εγκατάσταση του Ubuntu μαζί με τα Windows σε PC ή laptop 2024, Απρίλιος
Anonim

Αυτό το wikiHow σας διδάσκει πώς να σχεδιάσετε και να αναπτύξετε ένα λειτουργικό σύστημα εάν δεν γνωρίζετε πώς να κωδικοποιήσετε σε C ή C ++. Τα λειτουργικά συστήματα διαχειρίζονται το υλικό του υπολογιστή και παρέχουν τους πόρους που χρειάζονται οι εφαρμογές για την εκτέλεση. Η συγγραφή ενός λειτουργικού συστήματος από την αρχή απαιτεί ισχυρή γνώση της επιστήμης των υπολογιστών, μιας γλώσσας προγραμματισμού όπως C ή C ++, συναρμολόγηση και πρακτικές διαχείρισης κώδικα.

Βήματα

Μέρος 1 από 2: Εκμάθηση των βασικών

Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 1
Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 1

Βήμα 1. Πάρτε μερικά βασικά μαθήματα Πληροφορικής

Σε αντίθεση με την ανάπτυξη για τον Ιστό, η δημιουργία ενός λειτουργικού συστήματος απαιτεί ισχυρή κατανόηση αλγορίθμων, δομών δεδομένων, υλικού υπολογιστή και διαχείρισης πόρων. Οι άνθρωποι παίρνουν πτυχία σε αυτά τα πράγματα, οπότε μην περιμένετε να γράψετε ένα ολόκληρο λειτουργικό σύστημα αφού διαβάσετε ένα σεμινάριο στο διαδίκτυο! Το μάθημα του Harvard Intro to Computer Science είναι διαθέσιμο online μέσω EDX χωρίς κόστος.

Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 2
Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 2

Βήμα 2. Μάθετε μια γλώσσα προγραμματισμού υψηλού επιπέδου όπως η Python

Μόλις αποκτήσετε μια σταθερή θεμελιώδη κατανόηση της επιστήμης των υπολογιστών, το επόμενο βήμα είναι να κατακτήσετε το C ή/και το C ++. Όπως και η εκμάθηση της επιστήμης των υπολογιστών, η κατοχή μιας γλώσσας δεν είναι προαιρετική-δεν θα μπορείτε να κωδικοποιήσετε ένα λειτουργικό σύστημα εάν δεν μπορείτε να γράψετε σταθερές εφαρμογές.

Αν είστε νέοι στο C, δείτε το μάθημα του Dartmouth's C Programming: Getting Started, το οποίο είναι δωρεάν μέσω EDX. Μόλις ολοκληρώσετε αυτό το μάθημα, μπορείτε να παρακολουθήσετε το επόμενο μάθημα στη σειρά: C Προγραμματισμός: Θεμέλια γλώσσας. Στη συνέχεια, προχωρήστε σε επόμενα μαθήματα όπως Modular Programming and Memory Management και Pointers and Memory Management

Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 4
Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 4

Βήμα 3. Μάθετε μια γλώσσα συναρμολόγησης

Οι γλώσσες συναρμολόγησης είναι γλώσσες χαμηλού επιπέδου που έχουν σχεδιαστεί για να επικοινωνούν με διαφορετικούς επεξεργαστές. Δεδομένου ότι η συναρμολόγηση είναι διαφορετική για διαφορετικούς τύπους επεξεργαστών (π.χ. γλώσσα συναρμολόγησης x86 για Intel, AMD, VIA και άλλους επεξεργαστές), θα πρέπει να μάθετε την έκδοση για τον τύπο του επεξεργαστή για τον οποίο κωδικοποιείτε.

  • Αυτό το βιβλίο ανοιχτού κώδικα, αν διαβαστεί ολόκληρο, μπορεί να σας δώσει μια αρκετά σταθερή κατανόηση για τη δημιουργία ενός λειτουργικού συστήματος.
  • Η Τέχνη της Γλώσσας Συνέλευσης είναι ένα βιβλίο που συνιστάται ιδιαίτερα για τη συναρμολόγηση και διατίθεται και εκτός σύνδεσης.
  • Θα πρέπει επίσης να κάνετε πολλές έρευνες σχετικά με τον τύπο των επεξεργαστών στους οποίους πρέπει να λειτουργεί το λειτουργικό σας σύστημα. Τα εγχειρίδια για την αρχιτεκτονική επεξεργαστή μπορούν εύκολα να βρεθούν χρησιμοποιώντας μια αναζήτηση Google ("Εγχειρίδια Intel", "Εγχειρίδια ARM" κ.λπ.).
Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 5
Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 5

Βήμα 4. Ολοκληρώστε ένα σεμινάριο λειτουργικού συστήματος

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

  • Το Bare Bones είναι ένα σεμινάριο που σας βοηθά να γράψετε τον πρώτο σας απλό πυρήνα 32-bit. Αφού ολοκληρώσετε το σεμινάριο, το επόμενο βήμα είναι να χρησιμοποιήσετε το Meaty Skeleton για να δημιουργήσετε το δικό σας λειτουργικό σύστημα.
  • Το Linux from Scratch είναι ένα διαδικτυακό βιβλίο που σας οδηγεί στη δημιουργία του δικού σας λειτουργικού συστήματος Linux.
  • Τα λειτουργικά συστήματα από το 0 έως το 1 είναι ένα δωρεάν βιβλίο για τη δημιουργία διαφόρων λειτουργικών συστημάτων από την αρχή μέχρι το τέλος.
Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 3
Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 3

Βήμα 5. Κατανοήστε τους στόχους του λειτουργικού σας συστήματος

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

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

Μέρος 2 από 2: Δημιουργία του λειτουργικού σας συστήματος

Διασκεδάστε με τον υπολογιστή Βήμα 16
Διασκεδάστε με τον υπολογιστή Βήμα 16

Βήμα 1. Επιλέξτε ένα περιβάλλον ανάπτυξης

Αυτή είναι η πλατφόρμα που θα χρησιμοποιήσετε για να κωδικοποιήσετε το νέο λειτουργικό σας σύστημα. Είναι θέμα προσωπικής προτίμησης, αλλά οι περισσότεροι είτε χρησιμοποιούν Windows είτε γεύση UNIX. Εάν χρησιμοποιείτε Windows, είναι καλή ιδέα να εγκαταστήσετε ένα περιβάλλον UNIX όπως το Cygwin ή το MinGW. Γενικά θα θέλετε να βεβαιωθείτε ότι οποιοδήποτε περιβάλλον χρησιμοποιείτε περιλαμβάνει τα ακόλουθα:

  • GCC (ο μεταγλωττιστής Gnu). Εάν χρησιμοποιείτε Windows, μπορείτε να το εγκαταστήσετε στο Cygwin ή στο MinGW.
  • Το Binutils είναι μια συλλογή εργαλείων που χρησιμοποιούνται για τον χειρισμό αρχείων αντικειμένων. Και πάλι, εάν χρησιμοποιείτε Windows, μπορείτε να το εγκαταστήσετε στο Cygwin.
  • Καλός επεξεργαστής κειμένου. Το Vim και το emacs χρησιμοποιούνται συνήθως σε περιβάλλοντα UNIX. Οι χρήστες των Windows μπορούν να χρησιμοποιήσουν το Σημειωματάριο ή να ελέγξουν το Σημειωματάριο ++ για αναβάθμιση πολλών καρτελών.
  • Perl ή/και Python. Ένα ή και τα δύο συνιστώνται για χειρισμό συμβολοσειρών.
Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 13
Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 13

Βήμα 2. Ρυθμίστε το σύστημα ελέγχου έκδοσης

Η σύνταξη ενός λειτουργικού συστήματος σημαίνει ότι πιθανότατα θα δημιουργήσετε εκατοντάδες (ή χιλιάδες!) Γραμμές κώδικα. Όταν εργάζεστε σε αναθεωρήσεις, αυτό μπορεί να μπερδευτεί. Ορισμένες επιλογές για να δείτε είναι CVS, Mercurial και Subversion.

Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 6
Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 6

Βήμα 3. Αποφασίστε για ένα πρόγραμμα εκκίνησης

Εάν δεν θέλετε να δημιουργήσετε το δικό σας, μπορείτε να χρησιμοποιήσετε ένα υπάρχον όπως το Grand Unified Bootloader (GRUB). Εάν αισθάνεστε αρκετά τολμηροί για να κωδικοποιήσετε ένα πρόγραμμα εκκίνησης, δείτε το Rolling Your Own Bootloader στο OSDev.org.

Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 9
Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 9

Βήμα 4. Επιλέξτε ένα σχέδιο πυρήνα

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

Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 12
Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 12

Βήμα 5. Ξεκινήστε από μικρό

Ξεκινήστε με μικρά πράγματα όπως εμφάνιση κειμένου και διακοπές πριν προχωρήσετε σε πράγματα όπως η διαχείριση μνήμης και η εκτέλεση πολλαπλών εργασιών. Μπορείτε επίσης να δοκιμάσετε να κάνετε ένα απλό λειτουργικό σύστημα 16-bit, αντί να κάνετε ένα μεγάλο άλμα.

Δεν θα έχετε πλήρες σύστημα σε δύο εβδομάδες. Ξεκινήστε με ένα λειτουργικό σύστημα που ξεκινά και, στη συνέχεια, προχωρήστε στα δροσερά πράγματα

Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 14
Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 14

Βήμα 6. Δοκιμάστε το νέο λειτουργικό σας σύστημα με μια εικονική μηχανή

Αντί να κάνετε επανεκκίνηση του υπολογιστή σας κάθε φορά που κάνετε αλλαγές ή να μεταφέρετε τα αρχεία από τον υπολογιστή ανάπτυξης στον δοκιμαστικό σας υπολογιστή, χρησιμοποιήστε μια εφαρμογή εικονικής μηχανής. Το VMWare είναι μια κοινή επιλογή που λειτουργεί τόσο με Windows όσο και με Linux, και το ίδιο συμβαίνει και με το Bochs. Ελέγξτε για πιθανά αδιέξοδα και άλλα σφάλματα και επιδιορθώστε τα όπως απαιτείται.

Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 15
Δημιουργήστε ένα λειτουργικό σύστημα υπολογιστή Βήμα 15

Βήμα 7. Απελευθερώστε έναν υποψήφιο απελευθέρωσης

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

Διασκεδάστε με τον υπολογιστή Βήμα 28
Διασκεδάστε με τον υπολογιστή Βήμα 28

Βήμα 8. Δίκτυο με άλλους προγραμματιστές λειτουργικού συστήματος

Υπάρχει μια ολόκληρη κοινότητα προγραμματιστών λειτουργικού συστήματος που συγκεντρώνεται σε διάφορα φόρουμ, συμπεριλαμβανομένου του /r /osdev στο Reddit και του Software Engineering Stack Exchange. Έχετε κατανοήσει την ανάπτυξη ενός βασικού λειτουργικού συστήματος, διαβάστε τις υπάρχουσες αναρτήσεις για να δείτε τι είδους πράγματα προκύπτουν κατά τη διαδικασία ανάπτυξης.

Βίντεο - Χρησιμοποιώντας αυτήν την υπηρεσία, ορισμένες πληροφορίες ενδέχεται να κοινοποιηθούν στο YouTube

Συμβουλές

  • Βεβαιωθείτε ότι εφαρμόζετε τις λειτουργίες ασφαλείας ως κορυφαία προτεραιότητά σας εάν θέλετε ποτέ το σύστημά σας να είναι βιώσιμο.
  • Αφού ολοκληρωθεί η ανάπτυξη, αποφασίστε εάν θέλετε να απελευθερώσετε τον κώδικα ως ανοιχτού κώδικα ή αποκλειστικού.
  • Για να καταστήσετε ένα λειτουργικό σύστημα ικανό να χειρίζεται πολλούς επεξεργαστές, το Memory Manager πρέπει να διαθέτει μηχανισμούς "κλειδώματος" για να αποτρέψει την πρόσβαση πολλών επεξεργαστών στον ίδιο πόρο ταυτόχρονα. Οι "κλειδαριές" που χρησιμοποιούνται για αυτό θα απαιτήσουν την παρουσία ενός χρονοπρογραμματιστή για να βεβαιωθείτε ότι μόνο ένας επεξεργαστής έχει πρόσβαση σε έναν κρίσιμο πόρο ανά πάσα στιγμή και ότι όλοι οι άλλοι πρέπει να περιμένουν. Ωστόσο, ο προγραμματιστής εξαρτάται από την παρουσία ενός Memory Manager. Πρόκειται για μια περίπτωση αδιεξόδου εξάρτησης. Δεν υπάρχει τυπικός τρόπος επίλυσης προβλημάτων όπως αυτό. ως προγραμματιστής, αναμένεται να είστε αρκετά έμπειροι για να καταλάβετε τον δικό του τρόπο αντιμετώπισης.
  • Ένα λειτουργικό σύστημα μπορεί επίσης να είναι φιλικό προς το χρήστη. Βεβαιωθείτε ότι έχετε προσθέσει φιλικές προς το χρήστη λειτουργίες, καθιστώντας τις αυτές αναπόσπαστο μέρος του σχεδιασμού σας.
  • Μην συμμετέχετε τα φόρουμ του OSDev.org και ξεκινήστε να κάνετε προφανείς ερωτήσεις. Απλώς θα έχει ως αποτέλεσμα "Διαβάστε το εγχειρίδιο" απαντήσεις. Θα πρέπει να δοκιμάσετε να διαβάσετε τη Βικιπαίδεια και τα εγχειρίδια για τα διάφορα εργαλεία που θέλετε να χρησιμοποιήσετε.
  • Μην αρχίσεις ένα έργο λειτουργικού συστήματος για την έναρξη εκμάθησης προγραμματισμού. Εάν δεν γνωρίζετε ήδη C, C ++, Pascal ή κάποια άλλη κατάλληλη γλώσσα από μέσα προς τα έξω, όπως χειρισμό δείκτη, χειρισμό bit χαμηλού επιπέδου, μετατόπιση bit, ενσωματωμένη γλώσσα συναρμολόγησης κ.λπ., δεν είστε έτοιμοι για ανάπτυξη λειτουργικού συστήματος Το
  • Εάν κάνετε κάτι κακόβουλο, όπως γράφετε τυχαία byte σε τυχαίες θύρες εισόδου/εξόδου, θα καταστρέψετε το λειτουργικό σας σύστημα και θα μπορείτε (θεωρητικά) να τηγανίσετε το υλικό σας.

Συνιστάται: