Das Betriebssystem ermöglicht dem Benutzer, mit der Computerhardware zu interagieren. Das System besteht aus Hunderttausenden von Codezeilen. Normalerweise wird das Betriebssystem mit den Programmiersprachen C#, C, C++ und Assembler erstellt. Das Betriebssystem ermöglicht es Ihnen, Ihren Computer zu durchsuchen, während Sie Befehle speichern und ausführen. Glauben Sie nicht, dass es einfach ist, ein Betriebssystem zu erstellen. Es braucht viel Wissen, um es zu machen.
Schritt
Schritt 1. Lernen Sie zunächst die Programmierung kennen
Assemblersprache ist sehr wichtig; Es wird dringend empfohlen, dass Sie eine weitere komplementäre Hochsprache wie die Sprache C lernen.
Schritt 2. Entscheiden Sie, welches Medium Sie zum Laden des Betriebssystems verwenden möchten
Dieses Medium kann ein CD-Laufwerk, ein DVD-Laufwerk, ein Flash-Laufwerk, eine Festplatte, eine Diskette oder ein anderer PC sein.
Schritt 3. Definieren Sie die Kernidee einer SO
Unter Windows ist die Kernidee beispielsweise eine einfach zu bedienende GUI und viel Sicherheit.
Schritt 4. Bestimmen Sie, welche Prozessorplattform Ihr Betriebssystem unterstützt
IA-32, ARM und x86_64 sind die gängigsten Plattformen für PCs. Also, alle von ihnen sind Ihre beste Wahl.
Schritt 5. Entscheiden Sie, ob Sie es vorziehen, alles von Grund auf selbst zu machen oder ob es bereits einen Kernel gibt, auf dem Sie aufbauen möchten
Linux from scratch ist beispielsweise ein Projekt für Leute, die ihre eigene Linux-Distribution aufbauen möchten.
Schritt 6. Entscheiden Sie, ob Sie Ihren eigenen Bootloader oder einen vorgefertigten wie den Grand Unified Bootloader (GRUB) verwenden
Um den Bootloader selbst zu codieren, sind umfangreiche Kenntnisse über Hardware und BIOS erforderlich. Als Ergebnis kann dieser Schritt den eigentlichen Kernel-Programmierplan behindern.
Schritt 7. Entscheiden Sie, welche Programmiersprache Sie verwenden möchten
Es ist in Ordnung, ein Betriebssystem in einer Sprache wie Pascal oder BASIC zu haben, aber Sie sollten C oder Assembly verwenden. Die Montage ist sehr notwendig, da einige wichtige Teile eines Betriebssystems dies erfordern. Auf der anderen Seite enthält die Sprache C++ Schlüsselwörter, die andere vollständige SO erfordern, um ausgeführt zu werden.
Um ein Betriebssystem aus C- oder C++-Code zu kompilieren, verwenden Sie natürlich den einen oder anderen Compiler. Daher ist es eine gute Idee, das Benutzerhandbuch/Handbuch/Dokumentation für den C/C++-Compiler Ihrer Wahl zu konsultieren, unabhängig davon, ob er in der Software enthalten ist oder auf der Website des Händlers verfügbar ist. Sie müssen viele komplizierte Dinge über den Compiler wissen, und für die C++-Entwicklung müssen Sie das Mangling-Schema des Compilers und seine ABI kennen. Es wird erwartet, dass Sie die verschiedenen ausführbaren Formate (ELF, PE, COFF, Basic Binary usw.) kennen und wissen, dass das exklusive Windows-Format PE (.exe) urheberrechtlich geschützt ist
Schritt 8. Definieren Sie Ihre Anwendungsprogrammierschnittstelle (API)
Eine gute API zur Auswahl ist POSIX, da sie gut dokumentiert ist. Alle Unix-Systeme unterstützen zumindest teilweise POSIX. Es sollte also einfach sein, Unix-Programme mit Ihrem Betriebssystem zu verbinden.
Schritt 9. Entscheiden Sie sich für Ihr Design
Es gibt so etwas wie einen monolithischen Kernel und einen Mikrokernel. Monolithische Kernel implementieren alle Dienste im Kernel, während Mikrokernel kleine Kernel haben, die mit Bereitstellungsdiensten für Benutzer-Daemons gebündelt sind. Im Allgemeinen sind monolithische Kernel schneller, Mikrokernel haben jedoch eine bessere Fehlerisolierung und Zuverlässigkeit.
Schritt 10. Erwägen Sie die Entwicklung und die Arbeit in einem Team
Auf diese Weise dauert es weniger Zeit, mehr Probleme zu lösen, was wahrscheinlich den Aufbau eines besseren Betriebssystems beschleunigt.
Schritt 11. Löschen Sie Ihre Festplatte nicht vollständig
Denken Sie daran, dass durch das Löschen eines Laufwerks alle darauf befindlichen Daten unwiderruflich gelöscht werden! Verwenden Sie GRUB oder einen anderen Bootmanager, um Ihr System mit einem anderen Betriebssystem doppelt zu booten, bis Ihr Betriebssystem voll funktionsfähig ist.
Schritt 12. Fangen Sie klein an
Beginnen Sie mit kleinen Dingen wie dem Anzeigen von Text und pausieren Sie, bevor Sie mit Dingen wie Speicherverwaltung und zusammengesetzter Arbeit fortfahren. Stellen Sie außerdem sicher, dass Sie die 32-Bit- und 64-Bit-Versionen erstellen.
Schritt 13. Bewahren Sie eine Sicherungskopie des letzten funktionierenden Quellcodes auf
Dieser Schritt ist als Schutz für den Fall nützlich, dass mit der aktuellen Version von SO oder der Entwicklung etwas schief geht. Wenn Ihr Computer abstürzt und nicht startet, ist es eine gute Idee, eine zweite Kopie zu haben, mit der Sie arbeiten können, damit Sie das Problem beheben können.
Schritt 14. Ziehen Sie in Betracht, Ihr neues Betriebssystem mit einer virtuellen Maschine zu testen
Anstatt Ihren Computer jedes Mal neu zu starten, wenn Sie Änderungen vornehmen oder Dateien von Ihrem Entwicklungscomputer an Ihren Testcomputer senden, können Sie Ihr Betriebssystem mithilfe einer virtuellen Maschinenanwendung ausführen, während Ihr aktuelles Betriebssystem ausgeführt wird. Zu den aktuellen VM-Anwendungen gehören: VMWare (für die auch ein Serverprodukt kostenlos erhältlich ist), Open-Source-Alternativen, Bochs, Microsoft Virtual PC (nicht mit Linux kompatibel) und Oracle VirtualBox.
Schritt 15. Starten Sie den "Release Candidate" oder die Beta-Version
Dieser Schritt ermöglicht es dem Benutzer, Sie über potenzielle Probleme mit Ihrem Betriebssystem zu informieren.
Schritt 16. Das Betriebssystem sollte auch benutzerfreundlich sein
Stellen Sie sicher, dass Sie benutzerfreundliche Funktionen hinzufügen, und machen Sie diese zu einem integralen Bestandteil Ihres Designs.
Tipps
- Suchen Sie nach möglichen Deadlocks und anderen Fehlern. Fehler, Deadlocks und andere Probleme wirken sich auf Ihr Betriebssystem-Build-Projekt aus.
- Stellen Sie sicher, dass Sie Sicherheitsfunktionen als oberste Priorität implementieren, wenn Sie möchten, dass das System ordnungsgemäß ausgeführt wird.
- Verwenden Sie Websites wie OSDev und OSDever, um Ihr eigenes Betriebssystem zu entwickeln. Bitte beachten Sie, dass die OSDev.org-Community für die meisten Zwecke mehr als glücklich ist, wenn Sie ihr Wiki verwenden und nicht dem Forum beitreten. Wenn Sie sich entscheiden, einem Forum beizutreten, müssen Sie sich mit C oder C++ und der x86-Assemblersprache wirklich auskennen. Sie sollten auch allgemeine und komplexe Programmierkonzepte wie verknüpfte Listen, Warteschlangen usw. verstehen. Die OSDev-Gemeinschaft erklärt in ihren Vorschriften ausdrücklich, dass ihre Gemeinschaft nicht geschaffen wurde, um neue Programmierer zu fördern.
- Nicht mitmachen mit dem OSDev.org-Forum und stellen Sie dann die offensichtliche Frage. Sie werden lediglich aufgefordert, die Anleitung zu lesen. Lesen Sie Wikipedia und die Anweisungen für die Ausrüstung, die Sie verwenden möchten.
- Wenn Sie versuchen, ein Betriebssystem zu entwickeln, gelten Sie definitiv als der "Gott" der Programmierung.
- Sie sollten auch das Prozessorhandbuch für die von Ihnen gewählte Prozessorarchitektur gelesen haben; ob x86 (Intel), ARM, MIPS, PPC usw. Handbücher für Prozessorarchitekturen sind über eine Google-Suche leicht zu finden ("Intel-Handbuch", "ARM-Handbuch" etc.).
- Entscheiden Sie nach Abschluss aller Entwicklungsarbeiten, ob Sie den Code als offenen Code oder urheberrechtlich geschützt veröffentlichen möchten.
- Nicht anfangen ein Betriebssystemprojekt, um mit dem Erlernen der Programmierung zu beginnen. Wenn Sie C, C++, Pascal oder eine andere geeignete Sprache, einschließlich Zeigermanipulation, Low-Level-Bitmanipulation, Bitverschiebung, Inline-Assemblersprachen usw Entwicklung.
- Das Erstellen einer völlig neuen Partition zum "Erweitern" von SO könnte eine gute Option sein.
- Wenn Sie einen einfachen Weg suchen, ziehen Sie Linux-Distributionen wie Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD oder SUSE Studio und SUSE KIWI in Betracht. Das von Ihnen erstellte Betriebssystem gehört jedoch dem Unternehmen, das den Dienst zuerst gestartet hat (obwohl Sie das Recht haben, es frei zu verteilen, zu ändern und nach Belieben unter der GPL auszuführen).
Warnung
- Sie erhalten innerhalb von zwei Wochen kein vollständiges Betriebssystem. Beginnen Sie mit einem bootfähigen SO und fahren Sie dann mit cooleren Dingen fort.
- Unachtsames Schreiben Ihres Betriebssystems auf eine Festplatte kann diese vollständig beschädigen. Vorsichtig sein.
- Wenn Sie etwas tun, das nicht empfohlen wird, wie zum Beispiel zufällige Bytes auf zufällige E/A-Ports schreiben, stürzen Sie Ihr Betriebssystem ab und können (theoretisch) Ihre Hardware versengen.
- Erwarten Sie nicht, dass das Betriebssystem einfach zu erstellen ist. Es gibt viele komplizierte Abhängigkeiten. Um beispielsweise ein Betriebssystem zu erstellen, das mehrere Prozessoren verarbeiten kann, muss Ihr Memory Manager über einen "Sperr"-Mechanismus verfügen, um zu verhindern, dass mehrere Prozessoren gleichzeitig auf dieselbe Ressource zugreifen. Die dafür verwendete "Sperre" würde einen Scheduler erfordern, der sicherstellt, dass zu jedem Zeitpunkt nur ein Prozessor auf kritische Ressourcen zugreift und alle anderen warten müssen. Tatsächlich hängt der Scheduler vom Vorhandensein des Memory Managers ab. Dies ist ein Beispiel für eine Sackgassenabhängigkeit. Es gibt keine Standardmethode, um diese Art von Problem zu lösen; Von jedem Betriebssystem-Programmierer wird erwartet, dass er geschickt genug ist, um seinen eigenen Umgang damit zu kennen.
Zusätzliche Ressourcen
- Richtlinien: Linux von Grund auf neu
- Bootloader: GRUB
- Anwendungen für virtuelle Maschinen: Bochs, VM Ware, XM Virtual Box.
- Prozessorhandbuch: Intel Handbuch
- SO-Entwicklungsstandorte: OSDev, OSDever