1 – Writing an Operating System – Episode 0 (Introduction)

I have always been fascinated by an operating system, the amount of work that operating system can do and what it can do is very impressive for me.

At a young age of 14 (1999) I dreamed of developing my own operating system. I started learning and after a year, I did build boot loader as well as a tiny kernel to handle input via keyboard, perform calculation and show output on the VGA screen. I could not spend enough time to take it further.

However, Later work life started and in 2004 I got a project to write an embedded operating system for a device. I agreed and developed a tiny operating system which had it’s own file system as well. It did not have any GUI.

So far I ended up developing two embedded operating system and one operation system just for hobby.

In the world of modern application development, I felt disconnected with computers. I wanted to connect with computer again and writing an operating system is the best way to get closer to computer again.

I am going to write a series of blog post about writing an operating system from scratch along with detailed explanation. Operating system will include following basic features:

  • Boot loader
  • Kernel
  • It’s own File System
  • Multi-Threading / Multi-Tasking
  • Ability to read and write FAT and FAT 32 File System
  • GUI (Support for Keyboard and Mouse)
  • Painting application
  • Audio System and ability to play WAV, MP3, 3gp files.
  • Network stack
  • TCP/IP
  • Sockets
  • Browser
  • Development Environment
  • Communication with GPU
  • Printer support
  • WiFi and Bluetooth support
  • APIs (External Application development support)
  • Pen Drive Auto Mount Support
  • Couple of Games
  • Development Tool (IDE)
  • DHCP Client, DHCP Server, DNS Client, DNS Server, Web Server
  • many more…

If you have any wish list, feel free to comment below.

Stay tuned for the next blog post.

About the Author

1 thought on “1 – Writing an Operating System – Episode 0 (Introduction)

Leave a Reply

Your email address will not be published. Required fields are marked *