Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I just wasted ~2 hours reading various pages of this wiki, it's a great resource.

My question is: Other than the obvious educational value, is there something concrete a beginner can do with a minimal kernel? What beginner projects would you recommend?



My plan for a summer project is going to be to first make a really basic OS. Then I'm going to bootstrap my own language from nothing like this guy: http://homepage.ntlworld.com/edmund.grimley-evans/bcompiler.... Then I'm going to make graphics with something like mode 13h. Maybe not beginner projects, but extremely interesting and challenging.


Nobody wants to take a look at pintos? http://www.scs.stanford.edu/10wi-cs140/pintos/pintos.html


Perhaps for something that was embedded (like an OS for ARM microcontrollers or something), but a desktop or server OS is unrealistic.

The problem is drivers - unless you manage to port Linux drivers or something to your OS, it's never going to be able to use more than an extremely narrow cross-section of hardware.

It very good for the educational value though! Making a kernel that boots a simple shell, and eventually runs statically linked executables is possible in a few months if you spend a lot of time on it (and a lot of that time is research, not coding).


I'd say handling interrupts, paging/the memory subsystem, filesystems and scheduling were all pretty worthwhile.

It's important mostly not to worry about the finer details/getting things perfect - you almost certainly won't be able to make anything which is practically useful but it's an awesome learning experience :)

One thing that is very helpful to stop you from tearing your hair out is getting hold of a function to do sprintf() early on - it's no fun to write, just messy, and it lets you do primitive debugging. This seems like a good shot, despite the sketchy looking URL: http://read.pudn.com/downloads97/sourcecode/unix_linux/39644...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: