| Zeile 1: |
Zeile 1: |
| | {{Infobox OS | | {{Infobox OS |
| − | | Name = StefanOS | + | | Name = NightOS |
| − | | Version = 0.1 | + | | Version = Stable: - Aktuell: 0.0.1 Alpha |
| | | Entwickler = [[Benutzer:sfan|sfan]] | | | Entwickler = [[Benutzer:sfan|sfan]] |
| | | Lizenz = [http://creativecommons.org/licenses/by-nc-sa/2.0/de/ by-nc-sa 2.0] | | | Lizenz = [http://creativecommons.org/licenses/by-nc-sa/2.0/de/ by-nc-sa 2.0] |
| | | Kernel = Monolithischer [[Kernel]] | | | Kernel = Monolithischer [[Kernel]] |
| − | | API = - | + | | API = Nativ |
| − | | Binaerformat = .bin und [[ELF]] | + | | Binaerformat = [[ELF]] |
| | | Sprache = [[C]] [[Assembler]] | | | Sprache = [[C]] [[Assembler]] |
| | | IPC = - | | | IPC = - |
| | | Plattform = [[x86]] | | | Plattform = [[x86]] |
| − | | Homepage = [http://sfan.funpic.de/StefanOS.html Website]<br />[http://sfan.funpic.de/StefanOS_source Quellcode]<br />[http://sfan.funpic.de/StefanOS_source/StefanOS.img Image] | + | | Homepage = }} |
| − | }} | + | NightOS hat die Aufgabe einen PC schnell und einfach zu benutzen. |
| − | StefanOS hat die Aufgabe einen PC schnell und einfach zu benutzen.
| + | Die Shell wird als .elf Datei von GRUB geladen. |
| − | Das OS wird dafür (voraussichtlich) einen Dateisystemtreiber für [[FAT]] im Kernel haben.
| |
| − | Die Shell wird als .elf oder .bin Datei von GRUB geladen. | |
| | <br /> | | <br /> |
| − | <b>aktuelle Version: 0.1.1 Beta</b>
| |
| − | == Programme ==
| |
| − | === LibStefanOS ===
| |
| − | Für Programme kann man [http://sfan.funpic.de/StefanOS_source/libstefanos.h LibStefanOS] benutzen.
| |
| − | <c>
| |
| − | #include "libstefanos.h"
| |
| − |
| |
| − | int main() {
| |
| − | putc('H');
| |
| − | print("ello World!");
| |
| − | kill_process(get_pid());
| |
| − | }
| |
| − | </c>
| |
| − | Das <i>kill_process(get_pid());</i> ist dabei zwingend notwendig um die Anwendung zu beenden.
| |
| − | === Funktionen ===
| |
| − | Die [http://sfan.funpic.de/StefanOS_source/libstefanos.h LibStefanOS] besitzt 4 Funktionen, die im obigen Beispiel alle benutzt werden.
| |
| − | Trotzdem ist hier nochmal eine Liste der Funktionen von [http://sfan.funpic.de/StefanOS_source/libstefanos.h LibStefanOS].
| |
| − | <br />
| |
| − | <br />
| |
| − | void putc(char <i>c</i>) : Gibt das Zeichen <i>c</i> auf dem Bildschirm aus<br />
| |
| − | void print(char *<i>str</i>) : Gibt die Zeichenkette <i>str</i> auf dem Bildschirm aus<br />
| |
| − | void kill_process(int <i>pid</i>) : Beendet den Prozess <i>pid</i><br />
| |
| − | int get_pid() : Gibt die Prozessnummer des laufenden Prozesses zurück<br />
| |
| | == Features == | | == Features == |
| − | === 0.1 === | + | === 0.0.1 === |
| − | * [[GDT]]/[[IDT]] wird geladen | + | * Interrupts funktionieren |
| | + | * Tastaturtreiber |
| | + | * ganz kleine Shell |
| | | | |
| − | === 0.1.1 (voraussichtlich) === | + | === 0.0.2 (voraussichtlich) === |
| − | * [[GDT]]/[[IDT]] wird geladen | + | * Interrupts funktionieren |
| | + | * Tastaturtreiber |
| | * Multitasking | | * Multitasking |
| | + | * ELF-Loader |
| | + | * <strike>ganz</strike> kleine Shell |
| | + | |
| | + | === 0.0.3 (voraussichtlich) === |
| | + | * Interrupts funktionieren |
| | * Tastaturtreiber | | * Tastaturtreiber |
| − | * Loader für Binaries
| |
| − | ** flache Binärdateien (.bin)
| |
| − |
| |
| − | === 0.1.2 (voraussichtlich) ===
| |
| − | * [[GDT]]/[[IDT]] wird geladen
| |
| | * Multitasking | | * Multitasking |
| − | * Tastaturtreiber | + | * ELF-Loader |
| − | * kleine Shell | + | * <strike>ganz kleine</strike> Shell |
| − | * Loader für Binaries | + | * Floppy-Treiber |
| − | ** [[ELF]]
| + | * FAT12-Treiber |
| − | ** flache Binärdateien (.bin) | |