Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

FROST

Projektzusammenfassung
Projekt-Maintainer:Mitglieddarkinsanity Projektseite angelegt:30.06.2011
Lizenzierung:GPLv3 Letzte Bearbeitung:30.06.2011
Projektkategorie:Betriebssysteme, Kernel      [Zurück zur Übersicht]

Immer wieder stößt man im Internet auf Menschen, die in Sprachen wie QuickBASIC eigene Betriebssysteme schreiben wollen, und Menschen, die diesen erklären, dass dies mit BASIC nicht funktioniere. Dies traf lange Zeit zu, doch spätestens seit FreeBASIC ist es möglich - und ich bin stolz, hier den Beweis präsentieren zu können: FROST, das (soweit ich gesehen habe) am weitesten fortgeschrittene OS-Projekt mit FreeBASIC.

Bestandteile

Eine startbare FROST-ISO besteht im Grunde aus folgendem:

Der Kernel

Der Kernel, FROST V2, verfolgt das Ziel, simpel, verständlich und klar strukturiert zu sein. Dazu wurde auch der Sourcecode entsprechend in "Module" unterteilt. Jedes Modul hat seinen eigenen Namespace und seine eigene Aufgabe - z.B. existiert für den Interrupt-Controller ein eigenes Modul.
Der Kernel ist ein Microkernel, d.h. er wird so klein wie möglich gehalten und die Treiber kommen nicht in den Kernel, sondern landen im Userspace.
Da Stichpunkte für das Auge erfreulicher sind, gibt es jetzt hier die wichtigsten Features von FROST V2:

Wer Appetit bekommen hat, darf sich den Kernel gerne mal ansehen, es gibt noch einiges mehr zu sehen.
Momentan gibt es aber noch viele Lücken, vor allem im Bereich Paging. Wann immer ich Zeit und Lust habe, daran zu arbeiten, werden die natürlich noch gefüllt ;)

Geschrieben ist der Kernel übrigens größtenteils in FreeBASIC, allerdings wird ein paar mal der Inline-Assembler benutzt, und die stubs für die Interrupts sind in einer externen Datei, die von nasm verarbeitet wird.

Der Init-Prozess ist übrigens noch sehr simpel - er ist eigentlich nur ein Testprogramm, der den Syscall testet. Aber er wird seine Aufgabe später auch noch erhalten ;)

Das Repository

Momentan enthält das Repository folgendes:

Ein kleiner Hinweis sei an dieser Stelle angebracht: Das ganze wurde unter Linux geschrieben und getestet. Man kann es sicherlich auch unter Windows zum laufen bekommen, jedoch stellen sich da einige Hürden in den Weg, die da wären: Die Benutztung von GNU make, die Benutzung von ELF 32 als Dateiformat, die Benutztung von GRUB 2...

Und wie schon gesagt, es ist alles Work-In-Progress, wer daran interessiert ist sollte ab und zu einen Blick in das Repository werfen.

Hier jetzt aber schlussendlich der Link zum Projekt auf Sourceforge: Externer Link!Klick
Dort findet ihr auch das git-Repository zum klonen oder online ansehen.

Dateimanager
Es wurden bisher keine Sources abgelegt.