{{Infobox OS
| Name = StefanOS
| Version = 0.1
| Entwickler = [[Benutzer:sfan|sfan]]
| Lizenz = [http://creativecommons.org/licenses/by-nc-sa/2.0/de/ by-nc-sa 2.0]
| Kernel = Monolithischer [[Kernel]]
| API = -
| Binaerformat = .bin und [[ELF]]
| Sprache = [[C]] [[Assembler]]
| IPC = -
| Plattform = [[x86]]
| Homepage = [http://sfan.funpic.de/StefanOS.html Website]
[http://sfan.funpic.de/StefanOS_source Quellcode]
[http://sfan.funpic.de/StefanOS_source/StefanOS.img Image]
}}
StefanOS hat die Aufgabe einen PC schnell und einfach zu benutzen.
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.
== Programme ==
=== LibStefanOS ===
Für Programme kann man [http://sfan.funpic.de/StefanOS_source/libstefanos.h LibStefanOS] benutzen.
#include "libstefanos.h"
int main() {
putc('H');
print("ello World!");
kill_process(get_pid());
}
Das kill_process(get_pid()); 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 nochaml eine Liste der Funktionen von [http://sfan.funpic.de/StefanOS_source/libstefanos.h LibStefanOS].
void putc(char c) : Gibt das Zeichen c auf dem Bildschirm aus
void print(char *str) : Gibt die Zeichenkette str auf dem Bildschirm aus
void kill_process(int pid) : Beendet den Prozess pid
int get_pid() : Gibt die Prozessnummer des laufenden Prozesses zurück
== Features ==
=== 0.1 ===
* [[GDT]]/[[IDT]] wird geladen
=== 0.1.1 (voraussichtlich) ===
* [[GDT]]/[[IDT]] wird geladen
* Multitasking
* Tastaturtreiber
* Loader für Binaries
** flache Binärdateien (.bin)
=== 0.1.2 (voraussichtlich) ===
* [[GDT]]/[[IDT]] wird geladen
* Multitasking
* Tastaturtreiber
* kleine Shell
* Loader für Binaries
** [[ELF]]
** flache Binärdateien (.bin)