| Zeile 13: | Zeile 13: | ||
}} | }} | ||
| − | rizor-OS ist ein kleines Hobby-OS bei dem ich viel über die LowLevel-Programmierung lernen möchte. | + | rizor-OS ist ein kleines Hobby-OS, bei dem ich viel über die LowLevel-Programmierung lernen möchte. |
| − | Das OS soll später als Projektarbeit und | + | Das OS soll später als Projektarbeit und Referenz für und nach dem Studium gelten. |
Unter Umständen wechsele ich das Projekt zu einem OpenSource-Projekt, das dann unter der GPL-Lizenz laufen würde. | Unter Umständen wechsele ich das Projekt zu einem OpenSource-Projekt, das dann unter der GPL-Lizenz laufen würde. | ||
| Zeile 22: | Zeile 22: | ||
== Userinterface == | == Userinterface == | ||
Zur Interaktion mit dem User sind einfache Terminals geplant. | Zur Interaktion mit dem User sind einfache Terminals geplant. | ||
| − | Später soll es dann auch ein Kernel-Terminal geben, | + | Später soll es dann auch ein Kernel-Terminal geben, das genau angibt, was geschieht und wie die momentane Situation |
im Kernelspace aussieht. | im Kernelspace aussieht. | ||
| − | Der User hat dann auch die Möglichkeit den Kernelspace bedingt zu verändern um Probleme zu beheben. | + | Der User hat dann auch die Möglichkeit, den Kernelspace bedingt zu verändern um Probleme zu beheben. |
Es soll aber nur eingeschränkten Zugriff geben, damit der Kernel nicht zerstört wird. | Es soll aber nur eingeschränkten Zugriff geben, damit der Kernel nicht zerstört wird. | ||
| Zeile 32: | Zeile 32: | ||
Manche Module sollen dabei direkt in den Kernelspace geladen werden (z.B. PIC, erweiterte Speicherverwaltung). | Manche Module sollen dabei direkt in den Kernelspace geladen werden (z.B. PIC, erweiterte Speicherverwaltung). | ||
Alle anderen Module sollen dann im Userspace arbeiten. | Alle anderen Module sollen dann im Userspace arbeiten. | ||
| − | Dadurch | + | Dadurch soll eine größtmögliche Portierbarkeit auf andere Architekturen ermöglicht werden. |
| − | Außerdem sind dann leichter | + | Außerdem sind dann leichter Erweiterungen und Updates möglich. |
Jeder Task, der einen Syscall anbietet, muss außerdem einen Broadcast-Handler anbieten, damit der Kernel in | Jeder Task, der einen Syscall anbietet, muss außerdem einen Broadcast-Handler anbieten, damit der Kernel in | ||
regelmäßigen Abständen die Funktion der einzelnen Tasks gewährleisten kann. | regelmäßigen Abständen die Funktion der einzelnen Tasks gewährleisten kann. | ||
| − | Wenn der Task nach einer bestimmten Zeit nicht reagiert, wird dieser beendet und | + | Wenn der Task nach einer bestimmten Zeit nicht reagiert, wird dieser beendet und automatisch vom Kernel neu gestartet. |
| − | Falls dieser Task zur Interaktion mit anderen Tasks verwendet wurde, wird jedem Task ein Signal geschickt, | + | Falls dieser Task zur Interaktion mit anderen Tasks verwendet wurde, wird jedem Task ein Signal geschickt, das ihm sagt, dass |
| − | + | er seine Informationen noch einmal schicken soll. | |
| − | Es sei denn, die Informationen befinden sich noch in einer Liste | + | Es sei denn, die Informationen befinden sich noch in einer Liste o. ä., die abgearbeitet wird. |
== OS-Statistiken == | == OS-Statistiken == | ||