Einfacher, in sich geschlossener, sauberer Code, gut dokumentiertes, hobbyistisches 64-Bit-Betriebssystem für Intel- und AMD-Prozessoren. Es ist in der Assembly (Intel Syntax) und C (GNU99 -Standard) geschrieben, in denen ich so viel wie möglich Kommentare zum Quellcode hinzufügen möchte, damit es als Referenz für zukünftige OS -Entwickler verwendet werden kann.
Es enthält die folgenden Komponenten, die von Grund auf neu geschrieben wurden:
| Komponente | Beschreibung | Quellcode |
|---|---|---|
| Mbr | Bootloader der ersten Stufe | Code |
| Lader | Bootloader der zweiten Stufe | Code |
| Komponente | Beschreibung | Quellcode |
|---|---|---|
| PML4 | Paging -Struktur | Code |
| Kumpel | Speicher Allocator -System | Code |
| Printk | Printf-ähnliches String-Format Parsing-Dienstprogramm | Code |
| Serienfahrer | Senden Sie Printk -MSGs über RS232, um das Debuggen zu unterstützen | Code |
| Kernmüllkippe | Dump CPU -Register für Debugging -Zwecke | Code |
| SYSCALL/SYSRET | Methode ausgewählt, um zu Ring 3 und zurück zu springen | Code |
| GRUBE | Programmierbares Intervall -Timer | Code |
| Bild | Programmierbarer Interrupt -Controller | Code |
| (x) Verzögerung | Basierend auf dichtleuchten, da ich Pit benutze | Code |
| CMOS RTC | Echtzeituhr | Code |
| Scheduler | Einfacher Round-Robin-Scheduler | Code |
Funktionen werden on-Demands: Code hinzugefügt
Weitere kommen! Star/schau dir dieses Repo an, um dran zu bleiben!
Um diese App zu erstellen, werden Sie erwartet, dass Sie in Ihrem Computer make und docker installiert haben. Alle anderen Gebäudeabhängigkeiten sollten durch das während dieses Schritt erstellte Docker -Image automatisch erledigt werden.
Um es zu bauen, müssen Sie rennen:
make build
Um diese App auszuführen, wird von Ihnen erwartet, dass Sie in Ihrem Computer make und qemu-system-x86_64 installiert haben.
make test
Um sicherzustellen, dass ich den Fokus nicht auf das verliere, was dieses Betriebssystem in der Lage sein soll, habe ich beschlossen, eine Liste von Funktionen zu schreiben, die ich kurz bis mittelfristig implementieren möchte.
Dinge, die fantastisch zu haben wären, aber ich bin mir nicht sicher, ob ich in meinem Leben das Zeug dazu habe.
Dies sind alle Referenzen, die mir bei der Entwicklung von Almeidaos sehr geholfen haben
Foren:
Bücher:
Bestehende Osen:
Kurse: