3 ms·
There is an old(er) book called "Developing Your Own 32-Bit Operating System" that does a good job (assuming you're targeting the x86 platform) of laying the fo
by jasongullickson 17y ago
There is an old(er) book called "Developing Your Own 32-Bit Operating System" that does a good job (assuming you're targeting the x86 platform) of laying the foundation and explaining the typical layers of code you'll need to write to build an O/S from scratch (as opposed to just a new Linux distro, etc.).
It's a bit dated, but so is the x86 platform :) I think most of it is relevant, especially someone asking these sorts of questions about OS development.
Here's a link to the book on Amazon:
http://www.amazon.com/Developing-32-Bit-Operating-System-Cd-Rom/dp/0672306557 http://www.amazon.com/Developing-32-Bit-Operating-System-Cd-...
If you get somewhere be sure to update us on your progress!
- CyberFonic 17y agoI have used this book. It's a good introduction but uses a rather non-*nix sysAPI. I have found Minix to be a better way to get started and it too has a great book as well as significant number of sites that have excellent additional material. Haiku is a very cool OS that is very clean and in early stages of development. Plan9, Inferno and L4 (Pistachio) have their strengths. If your goal is to learn about OS design, etc then you might want to look at some CS texts that go into lots of detail. The key thing to remember is that most OS concepts (but not the implementations) have matured. You'd probably learn more by implementing some missing functionality in an existing OSS OS. Regardless of what you decide to do, I do recommend using QEMU as your development environment rather than running development versions on bare hardware. What I like about QEMU is that it supports ARM, etc. So as other respondents have pointed out, you would be targeting a far cleaner platform than your PC based system with three decades of backward compatability crud.
- jasongullickson 17y ago"I have used this book. It's a good introduction but uses a rather non-nix sysAPI"* I think the only reason this would be a down-side would be if you were trying to implement a unix-like operating system (not that there's anything wrong with that). It would do up-and-coming designers good to avoid Unix only because it's becoming sort of a "standard" way of architecting an OS and studying only unix-like systems can have an effect on creativity, innovation, etc. I love BeOS/Haiku but even it is a bit too "unixy" for my taste. I definitely agree with the previous post that going back to CS texts is the way to go, and it would be instructive to look at the operating systems once used by mainframes in the past as this is where allot of the "contemporary" technology we use today came from. Ultimately the goals you have for the system you are designing should drive your architecture but I think a rich diet of various different operating systems is a good way to prepare for the journey.
- aquarius 17y agoThanks for your valuable time but i have not come accross topics like QEMU and ARM. As soons as I study them ?I'll get get back to you !! thanks again !!
- aquarius 17y agoI have downloaded the book as per your suggestion, and I have skimmed through it, As soon as I will start some code writing I'll inform you regarding my progress, Thanks a lot !!