Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
48 lines (31 sloc) 1.21 KB

What

A toy project at bootstrapping OS kernel.

Most of the lowest level code (which is almost everything now) is copied from Dux/metodo ( http://duckinator.net/dux/metodo ). Their code is at http://github.com/duckinator/dux .

Dux/metodo code should serve as a basement for future development.

Task switching code is copied from little kernel ( http://git.tkgeisel.com/?p=lk.git;a=summary ) by Travis Geiselbrecht.

Instructions

You can build i386 version on 64bit Linux. And currently you need to do so, because k411 currently has no 64bit support.

  • git clone git://github.com/temoto/k411.git
  • cd k411
  • ./scripts/build/boot-i386
  • qemu -cdrom boot-i386.iso

Should see some debugging information and interleaving AAA...BBB... If you don't like that, remove two calls 'kspawn_fun' in kernel/main.c.

TODO

Priorities given in parens.

    1. Implement process sleep.
    1. Find a way to load ELF binary from GRUB modules and spawn it as separate process.
    1. Learn to switch to user mode (ring3). Run ELF binary in user mode.
    1. Write tests.
    1. Write init service. 'Upstart' could be a good design guide.
    1. New arch: amd64.

Known bugs

  • Fixed. Kernel panic on qemu -kernel with #GP.
Something went wrong with that request. Please try again.