3 ms·
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
by Jun8 15y ago
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?
- zerd 15y agoMy 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.html 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.
- jgnahz 15y agoNobody wants to take a look at pintos? http://www.scs.stanford.edu/10wi-cs140/pintos/pintos.html http://www.scs.stanford.edu/10wi-cs140/pintos/pintos.html
- stephen_g 15y agoPerhaps 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).
- njs12345 15y agoI'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/396444/%E5%A4%8D%E4%BB%B6%20%E5%88%9B%E9%80%A0%E4%BD%A0%E8%87%AA%E5%B7%B1%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/example/%E7%AC%AC11%E7%AB%A0%20%E7%B3%BB%E7%BB%9F%E8%B0%83%E7%94%A8%E5%AE%9E%E7%8E%B0/doprintf.c__.htm http://read.pudn.com/downloads97/sourcecode/unix_linux/39644...