PrettyOS — Änderungen 11277 → 11278

Zeile 1: Zeile 1:
 
{{Infobox OS
 
{{Infobox OS
 
| Name = PrettyOS
 
| Name = PrettyOS
−
| Version = 0.0.5.0 (Februar 2015)
+
| Version = 0.0.5.105 (Mai 2015)
 
| Entwickler = [[Benutzer:Ehenkes|ehenkes]] et. al.
 
| Entwickler = [[Benutzer:Ehenkes|ehenkes]] et. al.
 
| Lizenz = 2-Klausel-BSD
 
| Lizenz = 2-Klausel-BSD
Zeile 18: Zeile 18:
  
 
== Genereller Aufbau ==
 
== Genereller Aufbau ==
−
PrettyOS besteht momentan aus den Bereichen Bootloader (Stage 1 und 2), Kernel (C/asm) und User-Space (C/C++).
+
PrettyOS besteht momentan aus den Bereichen Bootloader (Stage 1 und 2, Assembler), Kernel (C) 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 ist inzwischen [[Multiboot]]-konform.
 
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 können mit Einschränkungen GRUB oder iPXE verwendet werden.
  
 
=== 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, [[xHCI]] (USB 3), [[EHCI]] (USB 2), [[OHCI]] und [[UHCI]] (USB 1.1 und USB 2.0), [[VESA BIOS Extensions]] und die Netzwerkkarten [[RTL8139]], RTL8168/[[RTL8169]] und [[AMD PCnet]]. Mittels [[CDI]] werden auch andere Treiber eingebunden, z.B. e1000 (Netzwerkkarte Intel PRO/1000). Die Netzwerkprotokolle ethernet, ip, arp, icmp, dhcp, udp und tcp werden unterstützt. Als Dateisysteme werden gegenwärtig FAT12, FAT16 und FAT32 auf Floppydisk und usb-Stick eingesetzt. Videodaten (z.B. von einer webcam über den periodic scheduler von [[EHCI]]) werden via VBE dargestellt.  
+
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, [[xHCI]] (USB 3), [[EHCI]] (USB 2), [[OHCI]] und [[UHCI]] (USB 1.1 und USB 2.0), [[VESA BIOS Extensions]] und die Netzwerkkarten [[RTL8139]], RTL8168/[[RTL8169]] und [[AMD PCnet]]. Mittels [[CDI]] werden auch andere Treiber eingebunden, z.B. [[e1000]]. Die Netzwerkprotokolle ethernet, ip, arp, icmp, dhcp, udp und tcp werden unterstützt. Als Dateisysteme werden gegenwärtig FAT12, FAT16 und FAT32 auf Floppydisk und USB-Stick eingesetzt. Das System enthält ferner Treiber für USB-MSDs, USB-Diskettenlaufwerke (UFI), USB-Webcams und USB-HIDs (Maus und Tastatur).  
  
 
=== Userprogramme ===
 
=== Userprogramme ===
Zeile 33: Zeile 33:
 
Mittels incbin direkt in den Kernel, von wo es dann über die vom Linker generierte Adresse gestartet werden kann (derzeit für die VM86-Programme für VBE und APM genutzt), ggf. mit Einbindung in die Ramdisk, oder auf dem herkömmlichen Weg als Executable im ELF- oder PE-Format auf einem von PrettyOS unterstützten Speichermedium, wodurch das Programm für den Nutzer von der Shell aus aufrufbar wird.
 
Mittels incbin direkt in den Kernel, von wo es dann über die vom Linker generierte Adresse gestartet werden kann (derzeit für die VM86-Programme für VBE und APM genutzt), ggf. mit Einbindung in die Ramdisk, oder auf dem herkömmlichen Weg als Executable im ELF- oder PE-Format auf einem von PrettyOS unterstützten Speichermedium, wodurch das Programm für den Nutzer von der Shell aus aufrufbar wird.
  
−
=== '''Entwicklung''' ===
+
== Entwicklung ==
 
PrettyOS ist als freie Experimentierbasis für Ideen der OS-Projektgruppe bei c-plusplus.de gedacht und wird von einer aktiven Community gepflegt und erweitert.  
 
PrettyOS ist als freie Experimentierbasis für Ideen der OS-Projektgruppe bei c-plusplus.de gedacht und wird von einer aktiven Community gepflegt und erweitert.  
−
IRC Channel: #PrettyOS auf euirc.net und im Forum (siehe Links). Die Stärke des OS liegt aktuell in den Bereichen usb. Der Bereich Video und Audio soll weiter ausgebaut werden, um moderne Multimediavorgänge experimentell begleiten zu können. Der Einstieg in die usb video class und die Realisierung des periodic schedulers in ehci waren hier ein Anfang. Konstruktive Tester, Beobachter und Entwickler sind immer gerne gesehen.
+
IRC Channel: #PrettyOS auf euirc.net und im Forum (siehe Links). Konstruktive Tester, Beobachter und Entwickler sind immer gerne gesehen.
  
 
== Links ==
 
== Links ==