Πώς να προγραμματίσετε τα δικά σας λειτουργικά συστήματα (OS)

Αποκάλυψη: Η υποστήριξή σας βοηθά στη διατήρηση της λειτουργίας του ιστότοπου! Κερδίζουμε ένα τέλος παραπομπής για ορισμένες από τις υπηρεσίες που προτείνουμε σε αυτήν τη σελίδα.


Δεν υπάρχουν πραγματικά πιο δύσκολα πεδία ανάπτυξης από την ανάπτυξη λειτουργικού συστήματος (OS). Είναι η «μεγάλη κορυφή του προγραμματισμού».

Λίγοι προγραμματιστές προσπαθούν ποτέ να δημιουργήσουν ένα λειτουργικό σύστημα και πολλοί από αυτούς που κάνουν την προσπάθεια δεν παράγουν ποτέ λειτουργικό σύστημα.

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

Τι είναι ένα λειτουργικό σύστημα?

Οι πρώτοι υπολογιστές δεν είχαν λειτουργικά συστήματα.

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

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

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

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

Αντ ‘αυτού, οι εφαρμογές υπολογιστών θα μπορούσαν να γραφτούν για εκτέλεση από το λειτουργικό σύστημα, ενώ το λειτουργικό σύστημα ανησυχούσε για πόρους υπολογιστών και συνδεδεμένο περιφερειακό εξοπλισμό όπως εκτυπωτές και αναγνώστες καρτών.

Μια σύντομη ιστορία των λειτουργικών συστημάτων

Το πρώτο λειτουργικό σύστημα δημιουργήθηκε από την General Motors το 1956 για να τρέξει έναν μοναδικό υπολογιστή IBM mainframe. Άλλοι κάτοχοι mainframe της IBM ακολούθησαν και δημιούργησαν τα δικά τους λειτουργικά συστήματα.

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

Στη δεκαετία του 1960, η IBM ήταν ο πρώτος κατασκευαστής υπολογιστών που ανέλαβε το έργο της ανάπτυξης λειτουργικού συστήματος και άρχισε να διανέμει λειτουργικά συστήματα με τους υπολογιστές τους.

Ωστόσο, η IBM δεν ήταν ο μόνος προμηθευτής που δημιούργησε λειτουργικά συστήματα κατά τη διάρκεια αυτής της περιόδου. Η Control Data Corporation, η Computer Sciences Corporation, η Burroughs Corporation, η GE, η Digital Equipment Corporation και η Xerox κυκλοφόρησαν όλα τα λειτουργικά συστήματα mainframe στη δεκαετία του 1960 επίσης..

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

Πολλά σύγχρονα λειτουργικά συστήματα, όπως το Apple OS X και όλες οι λειτουργίες Linux, εντοπίζουν τις ρίζες τους πίσω στο Unix.

Τα Microsoft Windows αναπτύχθηκαν ως απάντηση σε αίτημα της IBM για ένα λειτουργικό σύστημα για τη λειτουργία της σειράς προσωπικών υπολογιστών του.

Το πρώτο λειτουργικό σύστημα που κατασκευάστηκε από τη Microsoft δεν ονομάστηκε Windows, ονομάστηκε MS-DOS και κατασκευάστηκε το 1981 αγοράζοντας το λειτουργικό σύστημα 86-DOS από τη Seattle Computer Products και τροποποιώντας το ώστε να πληροί τις απαιτήσεις της IBM.

Το όνομα Windows χρησιμοποιήθηκε για πρώτη φορά το 1985 όταν δημιουργήθηκε ένα γραφικό περιβάλλον εργασίας χρήστη και συνδυάστηκε με το MS-DOS.

Το Apple OS X, τα Microsoft Windows και οι διάφορες μορφές Linux (συμπεριλαμβανομένου του Android) διοικούν τώρα τη συντριπτική πλειοψηφία της σύγχρονης αγοράς λειτουργικού συστήματος.

Τα μέρη ενός λειτουργικού συστήματος

Τα λειτουργικά συστήματα είναι κατασκευασμένα από δύο κύρια μέρη:

  • Ο πυρήνας;
  • Προγράμματα συστήματος.

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

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

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

Τι πρέπει να γνωρίζετε

Ο κατάλογος των πραγμάτων που πρέπει να γνωρίζετε προτού επιχειρήσετε να αναλάβετε την ανάπτυξη του λειτουργικού συστήματος είναι πολύ μεγάλος. Τα τρία πιο σημαντικά πράγματα που πρέπει να μάθετε πριν ξεκινήσετε την ανάπτυξη λειτουργικού συστήματος είναι:

  • Βασικές γνώσεις πληροφορικής;
  • Θεωρία προγραμματισμού υπολογιστών και βέλτιστες πρακτικές.
  • Γλώσσες προγραμματισμού χαμηλού επιπέδου και υψηλού επιπέδου.

Μάθετε την Επιστήμη των Υπολογιστών

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

Ακολουθούν ορισμένοι πόροι για να ξεκινήσετε:

Coursera: Επιστήμη Υπολογιστών 101 είναι το μάθημα που πρέπει να ακολουθήσετε εάν είστε ολοκαίνουργιοι στον τομέα του προγραμματισμού υπολογιστών και της επιστήμης των υπολογιστών.

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

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

edX: Εισαγωγή στην Επιστήμη των Υπολογιστών είναι το πιο πλήρες και σε βάθος μάθημα επιστήμης υπολογιστών σε αυτήν τη λίστα. Αυτό το δωρεάν, αυτόνομο μάθημα σχεδιάστηκε από το Πανεπιστήμιο του Χάρβαρντ και αντικατοπτρίζει το περιεχόμενο που παρουσιάζεται στο μάθημα με το ίδιο όνομα που προσφέρεται στην πανεπιστημιούπολη του Πανεπιστημίου του Χάρβαρντ..

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

Μάθετε τον προγραμματισμό υπολογιστών

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

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

Μάθετε γλώσσες προγραμματισμού

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

  • Γλώσσα συναρμολόγησης χαμηλού επιπέδου
  • Γλώσσα προγραμματισμού υψηλού επιπέδου.

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

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

x86 Γλώσσα συναρμολόγησης

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

Προγραμματισμός από το Ground Up από τον Jonathan Bartlett είναι ένα από τα καθοριστικά βιβλία του τοπίου της γλώσσας συναρμολόγησης. Αυτό το βιβλίο χρησιμοποιεί τη γλώσσα συναρμολόγησης ως βάση για την εκμάθηση της επιστήμης των υπολογιστών και του προγραμματισμού. Αυτός ο πόρος είναι επίσης διαθέσιμος από το Αρχείο Διαδικτύου.

Η Τέχνη της Γλώσσας της Συνέλευσης από τον Randy Hyde είναι ένα άλλο εμβληματικό κείμενο στον κόσμο της εκπαίδευσης γλωσσών συναρμολόγησης. Αρχικά γραμμένο ειδικά για τα μαθήματα προγραμματισμού της Hyde στο Cal Poly και το UC Riverside, το κείμενο κυκλοφόρησε ως HTML ebook στα μέσα της δεκαετίας του 1990 και αναγνωρίστηκε ως καθοριστικό έργο στο πεδίο. Το κείμενο φιλοξενείται επίσης ως μια σειρά αρχείων PDF από την ομάδα Yale FLINT.

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

  • Assembly Language Βήμα προς βήμα: Προγραμματισμός με Linux από τον Jeff Duntemann;
  • Σύγχρονος προγραμματισμός γλωσσών συναρμολόγησης X86 από τον Daniel Kusswurm.

ντο

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

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

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

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

  • Η γλώσσα προγραμματισμού C από τους Kernighan και Ritchie.
  • C Programming Absolute Beginner’s Guide από τους Perry και Miller.

Εκπαιδευτικά προγράμματα εκμάθησης

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

Linux από το μηδέν θα σας καθοδηγήσει στη διαδικασία δημιουργίας ενός πλήρους λειτουργικού συστήματος Linux. Εντελώς, αυτό το σεμινάριο δεν θα παράγει ένα πλήρες λειτουργικό σύστημα, αλλά θα σας δώσει μια σταθερή βάση κώδικα στην οποία θα δημιουργήσετε ένα πλήρες λειτουργικό σύστημα. Αντιμετωπίστε προηγμένα μαθήματα όπως Beyond Linux από Scratch, Automated Linux from Scratch, Cross Linux from Scratch ή Hardened Linux from Scratch για να δημιουργήσετε το βασικό σας λειτουργικό σύστημα σε ένα χρήσιμο λογισμικό.

Το μικρό βιβλίο για την ανάπτυξη λειτουργικών συστημάτων από τους Erik Helin και Adam Renberg αναπτύχθηκε ως μέρος ενός προχωρημένου μαθήματος πληροφορικής που ολοκλήρωσαν οι συγγραφείς, ενώ οι μαθητές ως Βασιλικό Ινστιτούτο Τεχνολογίας στη Στοκχόλμη. Αυτό το μάθημα ακολουθεί την πλήρη διαδικασία ανάπτυξης ενός λειτουργικού συστήματος x86 ξεκινώντας με τη δημιουργία ενός περιβάλλοντος προγραμματισμού, με αποκορύφωμα τον προγραμματισμό για πολλαπλές εργασίες και την επίτευξη θεμάτων όπως η διαχείριση της μνήμης του συστήματος και η ανάπτυξη συστημάτων αρχείων στην πορεία..

Σειρά ανάπτυξης λειτουργικού συστήματος από το Broken Thorn Entertainment είναι μια σειρά από 25 σεμινάρια που σας καθοδηγούν στη διαδικασία δημιουργίας ενός λειτουργικού συστήματος από την αρχή. Οι αρχάριοι προσέξτε: αυτή η σειρά υποθέτει ότι γνωρίζετε ήδη το δρόμο σας γύρω από ένα IDE και είστε αρμόδιος προγραμματιστής γ και γλώσσας συναρμολόγησης.

Υπάρχουν πολλά κείμενα που θα μπορούσατε να χρησιμοποιήσετε για να μάθετε για την πειθαρχία της ανάπτυξης λειτουργικών συστημάτων. Τρία από τα πιο συχνά συνιστώμενα είναι:

  • Σύγχρονα λειτουργικά συστήματα της Tanenbaum και της Bos;
  • Ο σχεδιασμός του λειτουργικού συστήματος UNIX από τον Maurice Bach.
  • Έννοιες λειτουργικού συστήματος από τους Silberschatz, Galvin και Gagne.

Κοινότητες ανάπτυξης λειτουργικών συστημάτων

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

  • Το OSDev.org είναι ένα wiki με πολλές πληροφορίες σχετικά με την ανάπτυξη λειτουργικών συστημάτων, καθώς και ένα φόρουμ όπου μπορείτε να συναντήσετε και να λάβετε σχόλια από άλλους προγραμματιστές που έχουν την ίδια γνώμη.
  • Το OS Development Channel στο reddit είναι μια εξαιρετική κοινότητα όπου μπορείτε να μάθετε για την ανάπτυξη λειτουργικών συστημάτων και να απολαύσετε μια στιγμή ευχαρίστησης όταν το έργο της ανάπτυξης του λειτουργικού συστήματος γίνεται λίγο επίπονο.
  • Επιστήμη Υπολογιστών, Προγραμματιστές και StackOverflow από το StackExchange είναι μέρη όπου μπορείτε να θέσετε τεχνικές ερωτήσεις σε άλλους προγραμματιστές όταν αντιμετωπίζετε ένα πρόβλημα που δεν φαίνεται να καταλαβαίνετε μόνοι σας.

Περίληψη

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

Επόμενα βήματα – Ψάχνετε για έναν οικοδεσπότη Ιστού; Δείτε τον οδηγό μας για φιλοξενία ιστοσελίδων & οι προτεινόμενοι οικοδεσπότες μας.

Δείτε επίσης τους άλλους οδηγούς μας για τις γλώσσες προγραμματισμού.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map