| Zeile 1: | Zeile 1: | ||
{{Infobox OS | {{Infobox OS | ||
| Name = PrettyOS | | Name = PrettyOS | ||
| − | | Version = 0.0.4. | + | | Version = 0.0.4.22 (März 2013) |
| Entwickler = [[Benutzer:Ehenkes|ehenkes]] et. al. | | Entwickler = [[Benutzer:Ehenkes|ehenkes]] et. al. | ||
| Lizenz = 2-Klausel-BSD | | Lizenz = 2-Klausel-BSD | ||
| Zeile 12: | Zeile 12: | ||
| Homepage = [http://www.c-plusplus.de/forum/viewforum-var-f-is-62.html] | | Homepage = [http://www.c-plusplus.de/forum/viewforum-var-f-is-62.html] | ||
}} | }} | ||
| − | PrettyOS ist das Betriebssystem der Projektgruppe OS-Development bei http://www.c-plusplus.de/forum/. Es entstand als Idee im März 2009, führte zu einem vierteiligen Tutorial, das für Einsteiger in die Materie beginnend beim ersten Boot-Vorgang gedacht war, und wird seit Mitte Oktober 2009 von interessierten Entwicklern diskutiert, umgebaut, gepflegt und erweitert. Zielsetzung ist, verständlich zum Lernen und zum Experimentieren verwendbar zu sein. Das ist bisher | + | PrettyOS ist das Betriebssystem der Projektgruppe OS-Development bei http://www.c-plusplus.de/forum/. Es entstand als Idee im März 2009, führte zu einem vierteiligen Tutorial, das für Einsteiger in die Materie beginnend beim ersten Boot-Vorgang gedacht war, und wird seit Mitte Oktober 2009 von interessierten Entwicklern diskutiert, umgebaut, gepflegt und erweitert. Zielsetzung ist, verständlich zum Lernen und zum Experimentieren verwendbar zu sein. Das ist bisher weitgehend gelungen. Mit zunehmender Komplexität stellt sich die Frage der Didaktik immer wieder neu. |
== Ziel == | == Ziel == | ||
| Zeile 18: | Zeile 18: | ||
== Genereller Aufbau == | == Genereller Aufbau == | ||
| − | PrettyOS besteht momentan aus den Bereichen Bootloader (Stage 1 und 2), Kernel und User-Space. | + | PrettyOS besteht momentan aus den Bereichen Bootloader (Stage 1 und 2), Kernel (C/asm) und User-Space (C/C++). |
=== Bootloader === | === Bootloader === | ||
| − | Der Bootloader ist in Assembler (NASM) geschrieben und besteht aus zwei Stufen. BL1 (in Sektor 1) lädt BL2 (Datei boot2.bin). Dieser wiederum startet den Kernel (kernel.bin). Als Dateisystem für das Bootlaufwerk wird FAT12 vorausgesetzt. Der Bootloader | + | Der Bootloader ist in Assembler (NASM) geschrieben und besteht aus zwei Stufen. BL1 (in Sektor 1) lädt BL2 (Datei boot2.bin). Dieser wiederum startet den Kernel (kernel.bin). Als Dateisystem für das Bootlaufwerk wird FAT12 vorausgesetzt. Der Bootloader ist inzwischen [[Multiboot]]-konform. |
Als Alternative zum nativen Bootloader kann mit Einschränkungen GRUB verwendet werden. | Als Alternative zum nativen Bootloader kann mit Einschränkungen GRUB verwendet werden. | ||
| Zeile 28: | Zeile 28: | ||
=== Userprogramme === | === Userprogramme === | ||
| − | Der User-Space dient bisher | + | Der User-Space dient bisher vorwiegend als Demonstration für die API (syscalls). Bisher sind nur eine einfache Shell sowie ein paar simple Programme vorhanden, die u.a. zum Test neuer Features dienen. Programme für den Userspace können in diversen Sprachen geschrieben werden. Als Hilfe stehen die Dummy-makefiles, eine C-Userlib (Syscalls sowie einige wenige Funktionen der C-Standardlib) und eine C++-Userlib, die die C-Userlib als Untermenge hat und zudem ein paar C++-spezifische Funktionen bietet (new, delete) zur Verfügung. |
Userprogramme können auf drei verschiedenen Wegen eingebunden werden: | Userprogramme können auf drei verschiedenen Wegen eingebunden werden: | ||