JOS v0.1
Since I really understood for the first time what an operating system kernel was, I had this utopian desire to write a simple (but functional) kernel.
Although I did not write JOS from scratch and had some help from others, I feel that I have finally archived my goal, because I have written most of JOS’ important parts.
But let me explain what JOS is about.
Last year, MIT’s computer science department has made their Operating System Engineering course available through MIT OpenCourseWare (OCW).
The course is just amazing. The goal is to write a small operating system called JOS based on exokernel design, and all the laboratory material is available online.
Besides that, they provide test-cases for your code. The tests make it easy to know if you have done something wrong. Also, at the end of each class you are asked to run a script which will tell you whether you have passed to the next class.
This is the operating system course I have dreamed about since I started studying kernels, and I am very glad because I finished the course last December.
The final version of the system features the following:
- i386 support
- Virtual memory
- Preemptive multitasking
- Simple IPC mechanism
- Kernel debuger and monitor
- Simple FS (supports file creation, writting and removal)
- Basic shell
- Minimalist bootloader
There are two more important features I have implemented but they are not fully functional: 4M pages and SYSENTER/SYSEXIT support.
If I remember correctly I did all the exercises and most of the “mandatory” challenges.
The source code is available online in a GIT repository, you can clone it as follows:
$ git clone git://repo.or.cz/mit-so-course.git
You can also browse the source tree by clicking here.
Now, if you are an MIT student, I have two things to tell you. First, before looking at my code be honest and check with your TA whether it is ok to study solutions from others.
The second thing is that your computer science course is just fantastic, I would not miss a single class if I were you!
By the way, I am about to finish an article about JOS’ virtual memory implementation and will post it soon.
PS: I have another post about JOS in Portuguese, which I have written while I was still working on JOS, you can read it here.
April 2nd, 2008 at 12:47
Parabéns! Que bom que você completou sua formação com o material do MIT, que dispensa comentários. Quando puder eu dou uma espiada no seu código.
April 2nd, 2008 at 13:25
Cara, não vou dizer que o curso é perfeito (tudo tem seus problemas), mas que é excelente é. :)
April 2nd, 2008 at 14:12
Congratz. Isso é que é um trabalho de faculdade de verdade ;)
April 2nd, 2008 at 18:19
OpenCourseWare FTW! :-)
April 8th, 2008 at 9:02
Capitulino
Great work, dude! I didn’t known about this specific MIT course, it seems interesting.
Adenilson
April 8th, 2008 at 10:17
Yeah, they also have a course on compilers that seems very interesting.
April 15th, 2008 at 18:37
[...] Luiz on Nothing « JOS v0.1 [...]