x86 Kernel
Projektzusammenfassung | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Dieses Projekt ist eigentlich abgeschlossen, da es primär nur zeigen soll, wie ein Kernel mit FreeBasic geschrieben werden kann, und zwar so, dass auch Anwendungen in FreeBasic und der Kernel selbst in FB umgesetzt werden können.
Hierfür ist z.B. nötig, dass man die RTLib umsetzt, wenn man die grundlegenden Befehle wie "Print","Color" oder Statements, oder ähnliche Erweiterungen wie String's nutzen möchte. Was beim Schreiben nicht unerheblich ist und das Ganze sehr vereinfacht.
Der Kernel umfasst zur Zeit die Integration von
- BDA
- GDT
- IDT
- IRQ
- I/O
- MultiBoot
- PIT
- MemMan (Page) [Aufgebaut, jedoch noch nicht aktiv]
Die RTLib beherscht den Umgang mit
- Print (ausser Double und Single)
- In
- Cls
- Locate
- Color
- Allocate (malloc)
- Chr
- Umgang mit <var> = <value> | <String>
- Umgang mit If
- KBC
Für den Anfang und zum Zeigen, was man wie macht, sollte das Projekt ausreichen. Als Basis zum Kernelaufbau ist dies sicher hilfreich. Dokumentatorisch ist es nicht besonders gut behaftet, aber vielleicht setze ich mich nochmal hin und dokumentiere das Ganze durch (wenn ich die Lust dazu finde).
Zum Ausführen des Codes sind einige Dinge erforderlich, z.B. GRUB (und eventuell qemu, wenn es emuliert werden soll).
Was genau man alles braucht, kann man entweder im IRC: Host: MLN.ath.cx Chan: #mln erfahren, über das QB-Forum oder aber hier: http://lowlevel.brainsware.org/wiki/index.php/Hauptseite
Viel Spass
MfG
TPM
QUELLCODE
Basis-Kernel
Das ist quasi das Grundgerüst für die primitivsten Aufgaben.
porticula:679
FBCore-Kernel
core.bas porticula:685
core_bda.biporticula:686
core_const.biporticula:687
core_gdt.biporticula:688
core_guru.biporticula:689
core_idt.biporticula:690
core_include_rtlib.biporticula:691
core_init.biporticula:692
core_io.biporticula:693
core_irq.biporticula:694
core_kernelinit.biporticula:695
core_memman.biporticula:696
core_multiboot.biporticula:697
core_pit.biporticula:698
core_run.biporticula:699
core_term.biporticula:700
RTLib
rtlib.basporticula:702
rtlib_input.biporticula:703
rtlib_io.biporticula:704
rtlib_memman.biporticula:705
rtlib_video.biporticula:706
Compiler-Skript
made.shporticula:701
Dateimanager |
---|
Es wurden bisher keine Sources abgelegt. |