Howdy Doodie :). After finishing Charles Petzold's book Code, getting some experience writing assembly code, and in preparation for my XGameStation incursions, I found myself to be a little curious to how certain low-level elements of an operating system works (like the whole bootstrap process, the BIOS, etc.). Knowing just how low my chances were to find any source code for MS-DOS, I decided to look for some source code for the OS that inspired the creation of MS-DOS's predecessor, CP/M.
To my pleasant surprise, there is actually quite a bit of Digital Research's source code available for download. Also to my pleasant surprise, the source code for version 2.2 in assembly is just a little over 3700 lines. Not too bad! So, in what little free time I have before the arrival of my XGameStation in 6-8 weeks from now, I plan on perusing through the CP/M v2.2 source code. Why would I submit myself to this? Easy - I'm *really* curious now about the internal workings of an early operating system. My eventual goal is to perhaps create my own, *very* stripped down OS on either the next release of the XGameStation (the Mega edition, which will feature an ARM7 processor), an 8080 emulator, or an x86 emulator. I would love to start messing around with building an OS on the XGameStation Micro Edition but I'm simply if the hardware would even be capable of it.
Now before you try telling me how immensely complicated a true OS is, rest assured that I *do* know and I have very low expectations for what I want to do. Also, I don't plan on doing this overnight. With how many priorities I already have in the works, this is definitely going to have to cook on the back burner. Who knows, by the time I can get around to it, perhaps I won't want to do it anymore. So anyone out there worried about me putting off my current priorities to run with “this new thing”, don't worry.
Also, before you start complaining about me wasting my time, I know that there aren't any true applications for me to apply this knowledge to my current job. However, I *do* feel that by gaining a deeper knowledge into how a computer actually works, I will ultimately become a better programmer. I guess in a way I am making up for not continuing my education after community college. I have friends that have been in Computer Science courses where they've been required to do this stuff for class credit, and I am extremely jealous of them. I figure what better way to learn than on something I am passionate about (games). I think it would be quite fun to write my own ESOS (Extremely Simple Operating System) for the next release of the XGameStation. Before I can do that though, I need to do some research. So, when I have some free time, onward toward the CP/M source code. Yay!
P.S. - I truly don't know how I would survive without the Internet :D.
P.S.S. - While I'm at it, do any of you have any recommendations for learning about the inner details of Operating Systems?