How to build an Operating System

           How to make a Computer Operating System


Have you ever think to create an amazing computer operating system like Microsoft Windows or Linux. Nearly every true programmer has, at some point, wanted to write an operating system. Operating systems allow people to interact with computer hardware; they’re made out of hundreds of thousands of lines of code, so I would suggest you to have strong programming skills in both assembly language and any other languages like C or C++ before you start. Also be clear about what you want your OS to do, and whether you want to code it from scratch or build it upon an existing kernel.
Operating systems allow you to navigate through a computer while creating storage and executing commands. Don’t think it is easy to make one. It requires a lot of knowledge.
Further you need to decide upon the media you want to store your OS in, design, the API, programming language and the boot loader you want to use.
Once decided, you are set to design your own Operating System.

The steps which you have to follow before creating computer operating systems:

1.     Learn Assembly language                                                                                                 An assembly language is a low-level programming language for a computer. It is used primarily for direct hardware manipulation, access to specialized processor instructions, or to address critical performance issues.



2.     Learn - C
OS development is tough. It includes a lot of concepts that you really need to master C. You have to do here is to deal with basic C issues such as pointers and memory management and the topic memory management in the OS is much more difficult than C memory management.



3.      Understanding the difference between Kernel and OS                                                                You need to understand the difference between a kernel and an OS. The kernel is the central component of most computer operating systems. It is also known as the main part of the operating system which is responsible for translating the command into something that can be understood by the computer. On most systems, it is one of the first programs loaded on start-up and the OS is a set of applications bundled together. 



4.     Don't think that creating an OS is very easy
It’s impossible to start doing kernel development in a matter of days or weeks. I suggest you start with the following:
·        Learn about memory allocation, and implement malloc and free in C. Learn about multi-threading and multi-processing in C. 
·        Familiarise yourself with machine-level tools and programs.
·        Familiarise yourself basic OS attacks. I suggest looking at the buffer overflow.
·        Familiarise yourself with GCC compilations steps. You may also write a simple assembler in C.
·        Learn about system calls, threads and processes in C. From there, develop your own shell in C.




There are also some good books for OS development which will surely help you in understanding the Operating system in deeper.
Books:
1.     Operating Systems Concepts by Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin
2.     Modern Operating Systems by Andrew S. Tanenbaum
3.     Operating Systems: Design and Implementation by Andrew S. Tanenbaum



1 comment:

Powered by Blogger.