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.
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.
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:
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
Very helpful....
ReplyDelete