Releases: mrgian/felix
Releases · mrgian/felix
Felix 0.4.0
Bootloader
- boots (you don't say!)
- BIOS compatible (also works on UEFI with CSM enabled)
- Global Descriptor Table loading
- Unreal Mode switching (to use 32bit addresses in 16bit Real Mode)
- kernel copying from disk to protected memory
- 32bit Protected Mode switching
- kernel jumping
Kernel
- Interrupt Descriptor Table loading
- CPU exceptions handler
- Programmable Interrupt Controller driver
- keyboard driver
- ATA disk driver
- FAT16 filesystem file read
- timer interrupt driven CPU scheduler
- prints system call that writes to VGA text buffer
- task manager
- round robin CPU scheduler
Shell
Available commands:
- help shows available commands
- ls lists root directory entries
- cat displays content of a file
- test tests CPU scheduler with dummy tasks
- run loads file as task and adds it to the task list
- ps lists running tasks
- rt removes specified task
libfelix (standard library)
- print! macro able to print formatted text to screen
How to run
Run it in QEMU using qemu-system-i386 -drive file=disk.img,index=0,media=disk,format=raw,if=ide
Felix 0.3.1
Bootloader
- boots (you don't say!)
- BIOS compatible (also works on UEFI with CSM enabled)
- Global Descriptor Table loading
- Unreal Mode switching (to use 32bit addresses in 16bit Real Mode)
- kernel copying from disk to protected memory
- 32bit Protected Mode switching
- kernel jumping
Kernel
- print! macro able to write formatted text to VGA text buffer
- Interrupt Descriptor Table loading
- CPU exceptions handler
- Programmable Interrupt Controller driver
- keyboard driver
- shell
- ATA disk driver
- FAT16 filesystem file read
Run it in QEMU using qemu-system-i386 -drive file=build/disk.img,index=0,media=disk,format=raw,if=ide
Felix 0.2.0
Bootloader
- boots (you don't say!)
- BIOS compatible (also works on UEFI with CSM enabled)
- loads a basic Global Descriptor Table
- switches to Unreal Mode (to use 32bit addresses in 16bit Real Mode)
- copies kernel from disk to protected memory
- switches to 32bit Protected Mode
- jumps to kernel
Kernel
- prints formatted text to screen by writing to VGA text buffer
- loads a basic Interrupt Descriptor Table
- has a basic handler for CPU exceptions
Run it in QEMU using qemu-system-i386 -drive id=disk,file=build/disk.img,if=none,format=raw -device ahci,id=ahci -device ide-hd,drive=disk,bus=ahci.0
Felix 0.1.0
Bootloader:
- BIOS compatible (also works on UEFI with emulated BIOS)
- can boot
- can load kernel to memory
- can execute kernel
Kernel:
- has a println macro able to format any type of data
It doesn't do much but if you want to try it download the release and run it with QEMU:
qemu-system-i386 -drive file=disk.img,index=0,if=floppy,format=raw