PrettyOS — Änderungen 9967 → 9977

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.  
+
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 hervorragend gelungen.
  
 
== Ziel ==
 
== Ziel ==
−
PrettyOS soll Einsteiger in die Betriebssystementwicklung dabei unterstützen, den gesamten Prozess des Bootens, Startens eines C-Kernels und einer Shell (C oder C++) an einem einfachen praktischen Beispiel zu verstehen. Als Entwicklungsumgebung soll sowohl Linux als auch MS Windows einsetzbar sein.
+
PrettyOS soll Einsteiger in die Betriebssystementwicklung dabei unterstützen, den gesamten Prozess des Bootens, Startens eines C-Kernels und einer Shell (C oder C++) an einem einfachen praktischen Beispiel zu verstehen. Als Entwicklungsumgebung ist sowohl Linux, MacOS als auch MS Windows einsetzbar.  
  
 
== Genereller Aufbau ==
 
== Genereller Aufbau ==
Zeile 25: Zeile 25:
  
 
=== Kernel ===
 
=== Kernel ===
−
Der monolithische Kernel ist in der Programmiersprache C mit wenigen Teilen Assembler (NASM und GCCs Inline-Assembler) gehalten. Er verfügt über grundlegende Fähigkeiten wie Interrupt-Handling, Paging, Kernel- und User-Heap, Multitasking, Multithreading, syscalls, VM86 und enthält unter anderem Treiber für PCspeaker, Serielle Schnittstelle, Diskettenlaufwerke, EHCI, VESA BIOS Extensions und die Netzwerkkarten [[RTL8139]] und [[AMD PCnet]]. Als Dateisysteme werden gegenwärtig FAT12, FAT16 und FAT32 unterstützt. Betriebsbereite Netzwerkprotokolle sind: ethernet, ip, arp, icmp, udp, dhcp, tcp.  
+
Der monolithische Kernel ist in der Programmiersprache C mit wenigen Teilen Assembler (NASM und GCCs Inline-Assembler) gehalten. Er verfügt über grundlegende Fähigkeiten wie Interrupt-Handling, Paging, Kernel- und User-Heap, Multitasking, Multithreading, syscalls, VM86 und enthält unter anderem Treiber für PCspeaker, Serielle Schnittstelle, Diskettenlaufwerke, EHCI, VESA BIOS Extensions und die Netzwerkkarten [[RTL8139]] und [[AMD PCnet]. Die Netzwerkprotokolle ethernet, ip, arp, icmp, dhcp, udp und tcp werden voll unterstützt. Als Dateisysteme werden gegenwärtig FAT12, FAT16 und FAT32 unterstützt.  
  
 
=== Userprogramme ===
 
=== Userprogramme ===
−
Der User-Space dient bisher nur 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.
+
Der User-Space dient bisher nur 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 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.
−
Als Hilfe stehen die Dummy-makefiles, eine C-Userlib (Syscalls sowie einige wenige Funktionen der 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: