Developing an Operating System in Computer Adventures | World Anvil

Developing an Operating System

WARNING!

This project is not easy, and that is still a massive understatement. Operating Systems as a subject is enormous, incredibly complex, and highly technical. It is very likely that no actual Operating System will come from this project, but it will teach many things.

And to our writer: Don't give up! Every lesson learned through this journey will serve you one way or another, even if you don't end up writing a functional OS. <3

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.  

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.  
TitleAuthor(s)Link(s)
Operating Systems: Three Easy PiecesRemzi H. Arpaci-Dusseau
Andrea C. Arpaci-Dusseau
OSTEP Website
Operating Systems: Internals and Design Principles (Global Edition)William StallingsPearson
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 SystemsAndrew S. TanenbaumPearson
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.  
  • OS Dev Wiki and Forum
  • StackOverFlow
  • Google
  • Project Code Name

    MUTS

    My
    Ultimate
    Training
    System

    Major Inspiration

    Really, I just want to learn all the things.

    Processor

    WDC 65C02

    Major Tasks
  • Lots of Reading
  • Lots of Trial and Error
  • Learning Assembly
  • Making a small, bare minimum kernel
  • Expand by adding components
  • ...

  • Related Projects

    Building a Breadboard Computer

    Related Articles

    Operating System


    Below, 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!
     

    Progress

    I still have to start! Articles will appear here!

    Powered by World Anvil