NerdyKernel

Aus Lowlevel
Version vom 19. Februar 2009, 16:37 Uhr von Rizor (Diskussion | Beiträge) (→‎Entwicklungsstatus)
Wechseln zu:Navigation,
rizor-OS
Entwickler: rizor
Akt. Version: 0.1-Alpha Build 0002
Lizenz: Closed-Source
OS-Eigenschaften
Plattform: i386
Kernelart: Microkernel
Sprache: C & Assembler
API: Noch nicht näher geplant
Binärformat: ELF
IPC-Methode: Noch nicht näher geplant
Homepage
In Planung


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 Referenzen 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.

Entwickler

Userinterface

Zur Interaktion mit dem User sind einfache Terminals geplant. Später soll es dann auch ein Kernel-Terminal geben, dass genau angibt, was geschieht und wie die momentante Situation im Kernelspace aussieht. 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.

OS-Design

Es soll ein elementarer Microkernel angeboten werden. Dieser soll auch ein elementares Filesystem haben, damit er die Boot-Files lesen und die entsprechenden Module laden kann. Manche Module sollen dabei direkt in den Kernelspace geladen werden (z.B. PIC, erweiterte Speicherverwaltung). Alle anderen Module sollen dann im Userspace arbeiten. Dadurch ist eine größtmögliche Portierbarkeit auf andere Architekturen ermöglicht werden. 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 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 wird automatisch vom Kernel neu gestartet. Falls dieser Task zur Interaktion mit anderen Tasks verwendet wurde, wird jedem Task ein Signal geschickt, dass ihm sagt, dass sie ihre Informationen noch einmal schicken sollen. Es sei denn, die Informationen befinden sich noch in einer Liste (oder ähnliches) die abgearbeitet wird.

Entwicklungsstatus

  • Kernel
    • rizor-0.3.0.0003-Alpha
      • Syscalls
      • Planung zum Multitasking

Features

Folgende Features sind implementiert

  • x86
  • nicht-kommunikationsfähiger Microkernel
    • GDT
    • IDT
    • CPUID
    • ISR
  • teile der libc

Roadmap

  • rizor-OS-0.1 (Release: März/April 2009):
    • Multitasking (einfaches Round-Robin kein Thread-Support)
    • einfachste Shell (Starten/Stoppen von Prozessen)
    • Speicherverwaltung mit einfachem First-Fit
    • libc (fast komplette Implementierung)
    • Treiber für das Display und die Tastatur im Userspace
  • rizor-OS-0.2 (Release: August-Oktober 2009):
    • Speicherverwaltung optimieren
    • Multitasking erweitern
      • Threads implementieren
      • Round-Robin mit Prioritäten
      • Multi-Level-Feedback
    • Shell-Integration
    • Dateisystem
    • vollständige libc
    • Portierung des GCC
    • Einbau eines kleinen Texteditors
  • rizor-OS-0.3 (Release: 2010):
    • Netzwerktreiber
    • kleiner konsolenbasierter Browser
    • kleinen Dateimanager
    • Multitasking erweitern
      • shortest-job-next
      • longest-job-next
      • Wechsel des Scheduling-Verfahrens zur Laufzeit
  • Entfernte Planung:
    • Teile der Treiber sollen in den Kernel verlagert werden um ein optimales Leistungs-Stabilitätsverhältnis zu gewährleisten
    • Portierung auf x86-64
    • guter Treibersupport (unter Umständen ein Einbau der CDI)