Skip to content

Felix 0.4.0

Latest
Compare
Choose a tag to compare
@mrgian mrgian released this 14 Jun 15:41
· 40 commits to main since this release
188d627

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