















Auf mögliche Deadlocks und andere Fehler prüfen. Fehler, Deadlocks und andere Probleme werden in Ihrem OS-Projekt angezeigt. Wenn Sie jemals möchten, dass Ihr System funktionsfähig ist, achten Sie darauf, Sicherheitsfunktionen als Ihre oberste Priorität zu implementieren. Mit Websites wie OSDev und OSDever können Sie Ihr eigenes Betriebssystem entwickeln. Hinweis: Für die meisten Zwecke ist das OSDev.org-Community würde es vorziehen, dass Sie bei Fragen deren Wiki konsultieren und nicht am Forum teilnehmen. Wenn Sie sich entscheiden, dem Forum beizutreten, gelten folgende Voraussetzungen: Sie müssen über gründliche Kenntnisse in C oder C++ und x86-Assembler verfügen. Sie sollten auch gängige und komplexe Programmierkonzepte wie verknüpfte Listen, Warteschlangen usw. verstehen. Die OSDev-Community stellt in ihren Regeln ausdrücklich fest, dass die Community nicht dazu gedacht ist, neue Programmierer zu babysitten. `Nicht mitmachen das OSDev.org-Foren, um direkt danach offensichtliche Fragen zu stellen. Dies führt einfach zu Antworten wie""Lesen Sie das Handbuch / Lesen Sie das Handbuch". Lesen Sie Wikipedia und die Handbücher für die verschiedenen Tools, die Sie verwenden möchten. Wenn Sie versuchen, ein Betriebssystem zu entwickeln, wird von Ihnen selbstverständlich erwartet, dass Sie ein Programmiergott sind. Sie müssen auch die Prozessorhandbücher für die von Ihnen gewählte Prozessorarchitektur gelesen haben; sei es x86 (Intel), ARM, MIPS, PPC usw. ist. Tutorials zur Prozessorarchitektur können leicht mit einer Google-Suche gefunden werden ("Intel-Handbücher", "ARM-Handbücher" etc.). Nachdem die Entwicklung abgeschlossen ist, können Sie entscheiden, ob Sie den Code als Open Source oder proprietär veröffentlichen möchten. Nicht anfangen mit einem Betriebssystemprojekt zum Programmieren lernen. Wenn Sie noch keine gründlichen Kenntnisse in C, C++, Pascal oder einer anderen geeigneten Sprache haben, einschließlich Zeigermanipulation, Low-Level-Bitmanipulation, Bitverschiebung, Inline-Assemblersprache usw., dann sind Sie wirklich noch nicht bereit für die Entwicklung eines eigenen Betriebssystems. Es kann sinnvoll sein, eine komplett neue Partition für die `Entwicklung` des Betriebssystems zu erstellen.
Erstellen sie ein betriebssystem
Betriebssysteme ermöglichen es Benutzern, mit der Hardware eines Computers zu interagieren; sie bestehen aus Hunderttausenden von Codezeilen. Normalerweise werden sie mit den Programmiersprachen C#, C, C++ und Assembler erstellt. Mit Betriebssystemen können Sie auf einem Computer navigieren, die Datenspeicherung aktivieren und Befehle ausführen. Glauben Sie nicht, dass es einfach ist, ein Betriebssystem zu erstellen. Es erfordert viel Wissen.
Schritte

1. Lernen Sie zu programmieren, bevor Sie beginnen. Assemblierung ist unerlässlich und eine weitere zusätzliche höhere Programmiersprache wie C wird dringend empfohlen.

2. Entscheiden Sie, auf welches Medium Ihr Betriebssystem geladen werden soll. Dies kann ein CD-Laufwerk, DVD-Laufwerk, Flash-Laufwerk, Festplatte, Diskette oder ein anderer PC sein.

3. Entscheiden Sie, was die Kernidee des Betriebssystems ist. In Windows zum Beispiel ist eine einfach zu bedienende GUI und starke Sicherheit die Kernidee.

4. Bestimmen Sie, welche Prozessorplattform Ihr Betriebssystem unterstützt. IA-32, ARM und x86_64 sind die gängigsten Architekturen für PCs, also sind diese die beste Wahl.

5. Entscheiden Sie, ob Sie alles von Grund auf selbst erstellen möchten oder ob es einen vorhandenen Kernel gibt, auf dem Sie aufbauen möchten. Linux From Scratch ist ein Beispielprojekt für diejenigen, die ihre eigene Linux-Distribution aufbauen möchten.

6. Entscheiden Sie, ob Sie Ihren eigenen oder einen vorhandenen Bootloader verwenden möchten, z. B. Grand Unified Bootloader (GRUB). Da das Codieren Ihres eigenen Bootloaders umfangreiche Kenntnisse der Hardware und des BIOS erfordert, kann dies die Planung für die Programmierung des eigentlichen Kernels verlangsamen.

7. Entscheiden Sie, welche Programmiersprache Sie verwenden möchten. Während es möglich ist, ein Betriebssystem in einer Sprache wie Pascal oder BASIC zu erstellen, sind Sie mit C oder Assembly besser dran. Die Montage ist unbedingt erforderlich, da einige wichtige Teile eines Betriebssystems dies erfordern. C++ hingegen enthält Sprachelemente, für die ein anderes vollständiges Betriebssystem erforderlich ist.
Um ein Betriebssystem aus C- oder C++-Code kompilieren zu können, braucht man natürlich eine Art Compiler. Lesen Sie daher das Benutzerhandbuch/die Handbücher/die Dokumentation für den von Ihnen gewählten C/C++-Compiler, egal ob im Lieferumfang der Software enthalten oder auf der Website des Händlers verfügbar. Sie müssen viele komplizierte Dinge über Ihren Compiler wissen, und für die Entwicklung in C++ benötigen Sie Kenntnisse über das Mangling-Schema des Compilers und die ABI. Sie sehen die verschiedenen ausführbaren Formate (ELF, PE, COFF, reguläre Binärdatei usw.).) sowie die Tatsache, dass das native Windows-Format PE (.exe), ist urheberrechtlich geschützt.

8. Entscheiden Sie, welche Anwendungsprogrammierschnittstelle (API) verwendet werden soll. Eine gute API zur Auswahl ist POSIX, da sie gut dokumentiert ist. Alle Unix-Systeme unterstützen zumindest teilweise POSIX, daher wäre es trivial, Unix-Programme auf Ihr Betriebssystem zu portieren.

9. Entscheidung für das Design. Es gibt monolithische Kernel und Mikrokerne. Monolithische Kernel führen alle Dienste im Kernel aus, während Mikrokerne einen kleinen Kernel mit kombinierten Benutzer-Daemons kombinieren, die Dienste implementieren. Im Allgemeinen sind monolithische Kernel schneller, aber Mikrokernel haben eine bessere Fehlerisolierung und Zuverlässigkeit.

10. Erwägen Sie die Entwicklung und die Arbeit in einem Team. Auf diese Weise wird weniger Zeit benötigt, um mehr Probleme zu lösen, wodurch schneller ein besseres Betriebssystem erstellt werden kann.

11. Löschen Sie Ihre Festplatte nicht vollständig. Denken Sie daran, dass durch das Löschen Ihres Laufwerks alle Daten unwiderruflich gelöscht werden! Verwenden Sie GRUB oder einen anderen Bootmanager, um einen Dual-Boot mit einem anderen Betriebssystem einzurichten, bis Ihr eigenes System voll funktionsfähig ist.

12. Klein anfangen. Beginnen Sie mit kleinen Dingen wie der Anzeige von Text und Unterbrechungen, bevor Sie zu den größeren Problemen wie Speicherverwaltung und Multitasking übergehen. Stellen Sie außerdem sicher, dass Sie eine 32-Bit- und eine 64-Bit-Version erstellen.

13. Bewahren Sie ein Backup Ihres zuletzt funktionierenden Quellcodes auf. Dies bietet einen gewissen Schutz für den Fall, dass mit der aktuellen Version Ihres Betriebssystems oder seiner Entwicklung etwas schief geht. Wenn Ihr Computer abstürzt und nicht mehr booten kann, ist es eine gute Idee, eine zweite Kopie zu haben, mit der Sie arbeiten können, damit Sie Fehler beheben können.

14. Ziehen Sie in Erwägung, 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 auf Ihre Testmaschine übertragen, können Sie eine virtuelle Maschine verwenden, um Ihr Betriebssystem unter Ihrem aktuellen Betriebssystem auszuführen. Zu den VM-Programmen gehören VMWare (verfügt auch über frei verfügbare Serversoftware), die Open-Source-Alternative Bochs, Microsoft Virtual PC (nicht Linux-kompatibel) und Oracle VirtualBox.

fünfzehn. Veröffentlichung eines `Release-Kandidaten`.Dadurch können Benutzer Sie auf potenzielle Probleme mit Ihrem Betriebssystem aufmerksam machen.

16. Ein Betriebssystem kann auch benutzerfreundlich sein. Stellen Sie also sicher, dass Sie benutzerfreundliche Funktionen hinzufügen, die es zu einem integralen Bestandteil Ihres Designs machen.
Tipps
Das von Ihnen erstellte Betriebssystem gehört dann dem Unternehmen, das den Dienst zuerst gestartet hat (obwohl Sie das Recht haben, es kostenlos zu verteilen und nach Belieben zu ändern und unter der GPL zu betreiben).
Warnungen
- Sie werden in zwei Wochen kein vollständiges Betriebssystem erstellt haben. Beginnen Sie mit einem Betriebssystem, das booten kann, und fahren Sie dann mit den lustigen Dingen fort.
- Wenn Sie etwas so Unüberlegtes tun, wie zufällige Bytes auf zufällige E/A-Ports zu schreiben, stürzt Ihr Betriebssystem ab und Sie können (theoretisch) Ihre Hardware beschädigen.
- Erwarten Sie nicht, dass es einfach ist, ein gut funktionierendes Betriebssystem zu erstellen. Es gibt alle möglichen komplizierten Wechselwirkungen. Damit ein Betriebssystem beispielsweise mehrere Prozessoren verarbeiten kann, müssen Sie „Sperrmechanismen“ für die Speicherverwaltung verwenden, um zu verhindern, dass mehrere Prozessoren dieselbe Ressource/Ressource gleichzeitig verwenden. Der "Schlösser" die dafür verwendet werden, erfordern das Vorhandensein eines Schedulers/Schedulers, um sicherzustellen, dass zu jedem Zeitpunkt nur ein Prozessor auf eine kritische Ressource zugreifen kann, während alle anderen warten. Aber auch hier ist der Scheduler auf das Vorhandensein eines Memory Managers angewiesen. Dies ist ein Fall einer Deadlock-Abhängigkeit. Es gibt keine Standardmethode, um solche Probleme zu lösen; Von jedem Betriebssystem-Programmierer wird erwartet, dass er geschickt genug ist, um seinen eigenen Weg zu finden, damit umzugehen.
- Unachtsames Schreiben Ihres Betriebssystems auf die Festplatte kann diese vollständig beschädigen. Vorsichtig sein.
Notwendigkeiten
- Ein Computer
- Eine CPU für die zu entwickelnde Architektur
- Ausreichend Arbeitsspeicher (RAM) für eine virtuelle Maschine
- Ein `Host`-Betriebssystem (wird verwendet, um den Assembler-Quellcode (und andere) zu entwickeln sowie ihn zu bauen und zu paketieren, während er sich noch in der Anfangsphase befindet, schließlich kann Ihr Betriebssystem sich selbst hosten)
- Ein farbcodierter Programmiereditor (verwenden Sie diesen, wenn Sie keine IDE haben - integrierte Entwicklungsumgebung)
- Ein Compiler
- Ein CD/DVD-Laufwerk
Оцените, пожалуйста статью