Heim Betriebssystem So programmieren Sie Ihre eigenen Betriebssysteme (OS)

So programmieren Sie Ihre eigenen Betriebssysteme (OS)

2672 06/08/2021

Es gibt keine wirklich schwierigeren Entwicklungsfelder als Operating System (OS) -Entwicklung.Es ist der „große Programm der Programmierung.„Nur wenige Programmierer versuchen jemals, ein Betriebssystem aufzubauen, und viele derjenigen, die den Versuch machen, produzieren niemals ein funktionierendes System.Wenn Sie es jedoch bis zur Ziellinie schaffen und ein funktionales Betriebssystem produzieren, haben Sie sich einer Elite-Gruppe von Top-Flugprogrammierern angeschlossen.

Was ist ein Betriebssystem?

Die frühestenComputer hatten keine Betriebssysteme.Jedes Programm, das auf diesen frühen Systemen lief.Diese Situation bedeutete, dass selbst einfache Programme komplex waren.

Da sich dieComputersysteme diversifizierten und komplexer und leistungsfähiger wurden, wurde es zunehmend unpraktisch, Programme zu schreiben, die sowohl als Betriebssystem als auch als nützliche Anwendung fungierten.

Als Reaktion darauf begannen einzelne Mainframe -Computer -Eigentümer mit der Entwicklung von Systemsoftware, die das Schreiben und Ausführen von Programmen und Betriebssystemen erleichterte, geboren wurde.

Ein Betriebssystem (OS) ist Software, dieComputerhardware- und Systemressourcen verwaltet und die Tools bereitstellt, die Anwendungen bedienen müssen.Die Geburt von Betriebssystemen führte dazu, dass Programme nicht mehr geschrieben werden mussten, um den gesamten Bereich desComputerbetriebs zu steuern.

Stattdessen könntenComputeranwendungen so geschrieben werden, dass sie vom Betriebssystem ausgeführt werden, während sich das Betriebssystem umComputerressourcen und angeschlossene periphere Geräte wie Drucker und Leser für Liegestütze machte.

Eine kurze Geschichte von Betriebssystemen

Wie Sie sich vorstellen können, variierten die frühesten Betriebssysteme stark von einemComputer zum nächsten, und obwohl sie das Schreiben von Programmen erleichterten, erlaubten sie nicht zu, dass Programme ohne einen vollständigen Umschreiben auf mehr als einem Mainframe verwendet werden konnten.

In den 1960er Jahren war IBM der ersteComputerhersteller, der die Aufgabe der Betriebssystementwicklung übernahm, und begann, Betriebssysteme mit ihrenComputern zu verteilen.

IBM war jedoch nicht der einzige Anbieter, der in dieser Zeit Betriebssysteme erstellte.Steuerungsdatengesellschaft,Computer SciencesCorporation, BurroughsCorporation, GE, Digital EquipmentCorporation und Xerox auch in den 1960er Jahren veröffentlicht Mainframe -Betriebssysteme.

In den späten 1960er Jahren wurde die erste Version des UNIX -Betriebssystems entwickelt.InC geschrieben und in den frühesten Jahren frei erhältlich, wurde UNIX leicht auf neue Systeme portiert und erreichte schnell eine breite Akzeptanz.

Viele moderne Betriebssysteme, darunter Apple OS X und alle Linux -Aromen, verfolgen ihre Wurzeln wieder auf Unix.Microsoft Windows wurde als Reaktion auf eine Anfrage von IBM entwickelt, um ein Betriebssystem auszuführen, um seinen Personalbereich auszuführen.Das erste von Microsoft erstellte Betriebssystem wurde nicht als Windows bezeichnet. Es wurde MS-DOS genannt und wurde 1981 durch Kauf des 86-DOS-Betriebssystems von Seattle-Computerprodukten gebaut und es geändert, um die Equirements von IBM zu erfüllen.

Der Name Windows wurde erstmals 1985 verwendet, als eine grafische Benutzeroberfläche erstellt und mit MS-DOS kombiniert wurde.

Apple OS X, Microsoft Windows und die verschiedenen Formen von Linux (einschließlich Android) befehlen jetzt die überwiegende Mehrheit des modernen Betriebssystemmarktes.

Die Teile eines Betriebssystems sind aus zwei Hauptteilen gebaut: der Kernel;Systemprogramme.Der Kernel ist das Herzstück des Betriebssystems.Es ist das erste Programm, das beim Start desComputers geladen wird, dieComputerressourcen verwaltet und Anfragen von Systemprogrammen und Anwendungen behandelt.Systemprogramme, die oben im Kernel ausgeführt werden.Sie werden nicht verwendet, um nützliche Arbeiten auszuführen, sondern sind die Programme, die erforderlich sind, um den Kernel mit Benutzeranwendungen und peripheren Geräten zu verbinden.Gerätetreiber, Dateisysteme, Netzwerkprogramme und Systemversorgungsunternehmen wie Festplattenfragler sind Beispiele für Systemprogramme.

Anwendungsprogramme sind nicht Teil des Betriebssystems und sind die Programme, die zur Ausführung nützlicher Arbeiten verwendet werden.Textverarbeitungsanwendungen, Browser und Media Player sind gemeinsame Arten von Anwendungsprogrammen.Anwendungsprogramme werden vom Kernel verwaltet und aktiviert und verwenden Systemprogramme, um aufComputerperipherie -Geräte und Hardware zuzugreifen.

Was Sie wissen müssen, um die Liste der Dinge zu wissen, die Sie wissen müssen, bevor Sie versuchen, Betriebssystementwicklung zu übernehmen, ist sehr lang.Die drei wichtigsten Dinge, die Sie vor dem Einsteigen in die OS -Entwicklung beherrschen müssen, sind: grundlegende Informatikwissen;Computerprogrammierungstheorie und Best-Practices;Niedrige und hochrangige Programmiersprachen.Informatik lernen

OS -Entwicklung ist nicht wie Webentwicklung.Es ist nicht etwas, in das Sie springen und lernen können, wenn Sie gehen.Sie müssen ein solides Fundament in Informatik entwickeln, bevor Sie zu anderen Themen übergehen.

Hier sind einige Ressourcen, um Ihnen den Einstieg zu erleichtern:

Wenn Sie ein wenig Wissen und Erfahrung haben, überspringen Sie diesen Kurs zugunsten der Udacity von EDX -Optionen.Wenn Sie jedoch brandneu in T sind

he field, this course takes a no-prior-experience approach to introducing computer science and programming topics.

In diesem weitreichenden Kurs erfahren Sie über Algorithmen, Datenstrukturen, Ressourcenmanagement, Software-Engineering und sehen sich Programmiersprachen wieC, PHP und JavaScript an.Lernen Sie dieComputerprogrammierung mit einem soliden Verständnis der Informatik unter Ihrem Gürtel und einige begrenzte Erfahrungen mit Programmiersprachen. Der nächste Schritt besteht darin, zu lernen, wie man ein großes Programmierprojekt angeht.

Lernen Sie Programmiersprachen, um ein Betriebssystem zu entwickeln, um mindestens zwei Programmiersprachen zu beherrschen: Low-Level-Versammlungssprache;Eine Programmiersprache auf hoher Ebene.Montagesprachen werden verwendet, um direkt mit einerCPU zu kommunizieren.Jede Art vonCPU spricht eine Maschinensprache und es gibt nur eine entsprechende Montagesprache für jedenCPU -Typ.Die häufigsteComputerarchitektur ist x86, wurde ursprünglich von Intel entwickelt und wird jetzt von einer Vielzahl vonComputerchip -Herstellern verwendet, darunter AMD, via und viele andere.In diesem Leitfaden verweisen wir Sie in Richtung des Lernens x86 Montagesprache.

Hochrangige Programmiersprachen funktionieren mit mehrerenComputerarchitekturen.C ist die Programmiersprache, die am häufigsten verwendet und für das Schreiben von Betriebssystemen empfohlen wird.Aus diesem Grund werden wir empfehlen, Lernen undC für die OS -Entwicklung zu verwenden undC zu verwenden.Andere Sprachen wieC ++ und Python können jedoch ebenfalls verwendet werden.x86 Assemblersprache Der X86 -Assembly Guide ist ein großartiger Ort, um die Lernsprache zu lernen.Dieses kurze Dokument bietet einen kurzen Überblick über die X86 -Montagesprache und legt die Voraussetzungen für die fortschrittlicheren Ressourcen, mit denen Sie als nächstes übergehen werden.

Wenn Sie ein traditionelles Lehrbuch verwenden möchten, um mehr über die X86 -Montagesprache zu erfahren, sind zwei der am häufigsten verwendeten und sehr empfohlenen Texte:

Schritt-für-Schritt-Assembly-Sprache: Programmierung mit Linux von Jeff Duntemann;Moderne X86 -Assemblerprogrammierung von Daniel Kusswurm.C

Es gibt viele hochrangige Programmiersprachen, die Sie lernen können, und viele verschiedene Ressourcen, mit denen Sie sie lernen können. Our recommendation, and the recommendation most commonly echoed by the OS development community, is to learnC, and we’ve found several excellent resources that will turn you into a competentC programmer.g et a quick overview of theC programming language by completing thisC Tutorial.Diese Ressource verwandelt Sie nicht zu einem Experten, bietet Ihnen jedoch ein gutes grundlegendes Verständnis für die Sprache und bereitet Sie darauf vor, herausfordernde Themen und Ressourcen anzugehen.

LearnC the Hard Way is a free HTML ebook that includes many practice exercises. This text walks you all the way through theC programming language, and if you put in the work, take your time, and complete all of the exercises, you’ll be well on your way to being a competentC programmer by the time you complete this tutorial.

If a traditional textbook is something you’re more likely to work your way through, these two texts are some of the most popular for mastering theC programming language.TheC Programming Language by Kernighan and Ritchie;C Programming Absolute Beginner’s Guide by Perry and Miller. OS Development Tutorials Once you have a strong grasp of the fundamental concepts of computer science and programming, and have mastered assembly language andC, the next step is to complete one or two OS development tutorials that walk through the entire process of developing a simple OS from scratch.Wir haben drei hervorragende Ressourcen gefunden, die genau das tun.Es gibt viele Texte, mit denen Sie die Disziplin der Betriebssystementwicklung kennenlernen könnten.Drei der am häufigsten empfohlenen sind: moderne Betriebssysteme von Tanenbaum und Bos;Das Design des Unix -Betriebssystems von Maurice Bach;

Operating SystemConcepts by Silberschatz, Galvin, and Gagne.OS DevelopmentCommunities As you embark on the journey of becoming an OS developer, there are a few places where you can find other OS developers to learn from and commiserate with: OSDev.Org ist ein Wiki mit vielen Informationen über die OS-Entwicklung sowie ein Forum, in dem Sie andere gleichgesinnte Programmierer treffen und Feedback erhalten können.OS -Entwicklung Annel

Auf Reddit ist eine großartige Community, in der Sie sich über OS -Entwicklung kennenlernen und einen Moment der Leichtigkeit genießen können, wenn die Aufgabe der OS -Entwicklung ein wenig nach mühsam wird.Computer Science, Programmers, and StackOverflow from StackExchange are places you can pose technical questions to other programmers when you come up against a problem you can’t seem to figure out on your own.

Zusammenfassung Lern OS -Entwicklung ist eine der herausforderndsten Programmieraufgaben, die Sie übernehmen können.Wenn Sie jedoch Ihre Bemühungen, ein funktionierendes Betriebssystem aufzubauen.Next steps – Looking for a web host? See our guide to web hosting & our recommended hosts.Sehen Sie auch unsere anderen Leitfäden zu Programmiersprachen

.

Neueste: So öffnen Sie EPUB -Dateien unter Windows 10 (ohne Microsoft Edge)
NÄCHSTE: So identifizieren Sie Ihr Smartphone als Original oder Duplikat
Populäre Artikel/span>
Back to top