I've done a lot of work this week! Who needs classes when you can write operating systems?!?! This week I have,
- Written code to run flat binaries from a filesystem
- Got a few basic syscalls working (write() and exit() so far). write() only outputs to stdout, which is currently always directly to the screen.
- Made my first live-cds and booted real computers!
- Written a scheduler!!
The scheduler is really the biggest step forward here. I still have some kinks to work out; my first design worked robustly but lacked the flexibility for me to fully implement sleep, waits, etc. To improve it I mostly needed to reorganize code -- but after refactoring, it lost some stability. It seems to work find in the bochs vm and on real hardware but the first sign of trouble was qemu-kvm having problems. After disabling kvm, qemu did okay for a while. Now qemu is having issues. I think I need to go back through my subversion history and figure out when everything went wrong...
Although it's really temping to jump ahead, I want to get this scheduler working cleanly on each of my test platforms before I continue. I'm really excited to implement VFS and many more syscalls to get newlib working -- but it looks like that will have to hold for a while.
No comments:
Post a Comment