Developing an Operating System
Developing an Operating System from scratch — it is one of the most ridiculously (and possibly stupid) ambitious projects I've ever gotten in my head, but it is the kind of stupidity that I do love. Diving into the unknown, discovering how things actually work and what makes the machine tick, a whole new world will open. However, I am painfully aware that this project is very advanced.. likely too advanced for me, but I don't want to let that deter me from at least attemping to make something.
OS Dev Wiki and Forum
StackOverFlow
Google
Probably one of the best ways to tackle this project is with one tiny step at a time. Splitting the several functions of the operating system into overarching tasks, with tiny ones underneath those. There is a lot to learn, because the operating system does just about everything to make our ways of interacting with it as simple as possible.
Why an Operating System?
One day, I had to research software architectures for my internship to decide how I wanted to set up and organise my application. During this research, I stumbled upon a specific architecture that just blew my mind: microkernel architecture. On the train ride home, I was gushing to one of my best friends about this architecture and that's when the idea just popped in my head: let's build an Operating system from scratch. Initially, I wanted to create an Operating System using the principles of the microkernel architecture. However, over time, I decided that the specific architecture will come later. As I was looking through the books that could be useful to buy for this project, I realist just how big the project would be and that I won't be able to get it right the first time. That's just not possible with the complexity of operating systems. So that will be something I need to keep in mind: I will be making mistakes, no matter how hard I would try not to.Resources
For massive projects such as these, you're going to need your resources, and so do I. There are a few of them that I already have, in case you want to learn more or are just as bonkers as I am to attempt this yourself.Books
I'm the biggest sucker for books. Honestly, nothing beats flipping through pages and the feel of the paper in your hands. Besides, it's a nice change from staring at a screen all the time. These are a couple of the books that I have at home and intend to use for this project. Mind you, Operating System books are THICC — you can expect these books to be 800-1000 pages.. on average. Just putting it out there. ^^ I have included a few links where you can buy the books; I am in no way affiliated, just spreading the info. If you wish to give me a little something for getting you these books, you can always support me on Ko-Fi but that's by no means necessary.Title | Author(s) | Link(s) |
---|---|---|
Operating Systems: Three Easy Pieces | Remzi H. Arpaci-Dusseau Andrea C. Arpaci-Dusseau | OSTEP Website |
Operating Systems: Internals and Design Principles (Global Edition) | William Stallings | Pearson Amazon.de |
Operating System Concepts (Global Edition) | Abraham Silverschatz Peter Baer Galvin Greg Gagne | Wiley Amazon.de |
Operating Systems: Design and Implementation (aka, the MINIX book) | Andrew S. Tanenbaum Albert S. Woodhull | GitHub Pages |
Modern Operating Systems | Andrew S. Tanenbaum | Pearson Amazon.de |
Websites
Even though books can teach you an awful lot, it would be foolish not to utilise modern day technology. With forums all over the internet, there is so much valuable information to be found, but also help! If I ever get stuck, these would be the places where I would start looking for more info or answers. This is most likely the list that will grow over time as I discover more interesting corners of the internet discussing the development of operating systems.
Project Code Name
Lots of Reading
Lots of Trial and Error
Learning Assembly
Making a small, bare minimum kernel
Expand by adding components
...
Related Projects
Related Articles
MUTS
My
Ultimate
Training
System
Really, I just want to learn all the things.
Processor Major TasksBelow, you will find the articles I've written on this project so far.
Want to get notified of new articles regarding this project? Log in or make an account to follow this project and get notified when the newest Computer Adventure releases!