Software Archive
Read-only legacy content
17061 Discussions

Primary steps towards an Operating System

Akshaynath
Beginner
305 Views

Operating System Development The first Step;

Operating Systems are very complex softwares .They are the mind of computers. They act as assistants for the user to simplify the complex tasks and provide easy experience.

Developing an operating system for your own is actually a very difficult task .Possible only for great experts and professionals. But still it is possible for Amateur programmers .For that you have to rise up to that much level in your skills and knowledge. Creating an operating system requires a lot of knowledge about several complex and difficult stages of computer science. There should be a great understanding about the functions of hardwares, their workings, the ability to read and write complex assembly languages and also good knowledge in high level languages like C, C++, Pascal etc. You have to be thorough in Programing concepts and Theories. And above all that you have to think yourself whether you should enter or not in this world of obstacles and problems and you are going to struggle a lot.

Are you feeling discouraged by these words? Dont be frightened. These difficulties are actually the fun of programming systems. The feeling of accomplishment you feel when your OS starts to work, after long hours of coding and struggling makes you the happiest person in the world. By that time you will be automatically transformed into an expert in programming.

ARE YOU READY?

Operating system development requires utmost patience, careful codings and great fore thinking. But it returns very little to no Instant Gratification you get from the development like games and webpages. You have to be aware of the hard way ahead .Prepare your mind for occasional bouts of confusion, discouragement, temporary insanity and anger. If your dedicate yourself into your ultimate dream , in time you will be in the list of the elite few who have contributed greatly to a working operating system .So get ready for the insane journey.

PERFECT CODE

Many people think that writing software inefficiently is not a problem since the computers are so fast. But this thinking is utterly wrong. Sloppy codes can be O.K for simple applications. But for great operating systems where each function is called million times the result can be disastrous. The Professionals who develop OS today keep the records of everything they can with them. This is great practice to reduce the time spent for debugging the applications and searching for bugs. Poorly written programs cost precious execution time and involve task switching that is expensive in both memory and frequency. So you have to leave out the practice of writing poorly written programs.

WHAT YOU NEED?

OS development is not for beginners. It is the most difficult programming task and can only be done by great minds with great skills and knowledge. Failure to comply will make you disqualified. The Basic things you should know are listed below.

1. Computer Science-You have to know the basics of computer science. At least the knowledge about the Binary, Boolean Logics, Hexadecimal Operators etc. You should also know about Data Structure, Data Types, Algorithms, Programming Concepts and Theories, Creation of Data structures, Constructors etc.

2. Knowledge in high-level languages You are going to write most of your codes for the operating system in a high-level programming language like C/C++, Pascal, and FreeBSD .You can choose any language as you like. You should have good knowledge in the language you are using.

3. Knowledge in Assembly-Assembly is a low level language. You have to know it in an intermediate level because you will find its use in your OS. To know the working of certain functions, hardware etc assembly should be learned.

4. Experience-Experience on creating program is essential in creating the most difficult program .OS development cannot be considered as a method to learn programming.You can extend your skills through OS development further.

5. Linux/Unix programming-Linux is a free open source system. Most of the programming tools were first made for Linux and later made available for windows. You can get bootloader (GRUB) and kernel (LINUXKERNEL) for free download.

6. Tools-Compilers, Linkers, Assemblers etc. are essential for OS Development. You should also have good knowledge in all the tools like GCC, NASM, and GRUB etc. These things will be discussed in another article.

HARDWARES

Processors of the computers have to be dealed very carefully when programing OS.You should study the manuals and the techspecs of the processor you are going to use in your OS development. They contain the information necessary to design the Kernel of you OS. If you avoid this there can be dangerous results. Operating Systems frequently give instructions from processors and other hardwares. A bug or an error can fry your hardwares.

DESIDING YOUR DEVELOPMENT AREA

Choosing the right development platform for your OS is crucial. You have to select wisely by your needs. The most popular platforms are the Linux and Windows. Using GNU/LINUX as your platform gives you more tool to work with. In windows this problem can be solved by using softwares like CYGWIN.

SOME TOOLS FOR LINUX:-

1. Binutils-Tool for Manipulating objects.

2. Make-Automates the building process .This tool is really useful when you have many files.

3. Grep, Sed-Does powerful searches and replace functions.

4. Text Editor-For writing the codes for C/C++ etc.

5. Diffutils-Finds the difference of files.

YOU SHOULD AT LEAST KONOW THE BASICS OF USING THE ABOVE PROGRAMS.

WINDOWS PLATFORM

Windows programing is little difficult since all tools are not available. But still you can tools like CYGWIN, MINGSW or DJGPP to compile with GNU tools. CYGWIN is most recommended. It is a good idea to create a cross compiler due to default Executable formats. Other tools that can be used are WATCOM, BORLAND TOOLS and VISUAL STUDIO. But creating in these tools need specific linker requirements. You also require a Text Editor like Notepad. But using notepad is not recommended since it is not much powerful. Uses something like Notepad++ .It have Features like line number down etc. You can also use Visual studio or eclipse but needs special configuration files.

GNU/LINUX

GNU/LINUX platforms provide a lot of tools for development. You can also use distributions package management tools (apt-get, rpm, emerge) etc. Creating a cross compiler is essential. Some editors that can be used are VIM, KDEVELOP, EMACE, TEXTEDIT etc.

TESTING

Frequent testing is essential to find out and solve bugs in your OS.There are many techniques and tools for complete testing. All these will be discussed later.

CODE PROTECTION

Creating an operating system is a lengthy process .Youll spend hundreds of hours in front of your computer .Your program is going to have hundreds or thousands of codes. A disk crash or an error in formatting can throw your complete work into thrash. So you need some backup to save your code from death. What you need is a VERSION CONTROL SYSTEM.CVS is one of these that has been used for a no of years. Now systems like SUBVERSION, BAZAAR, and GIT etc. are showing great competition in this field. You can also setup a server. If you cannot then you can use your own computer. If your program is open source then you can create project in SOURCEFORGE or GOOGLE or at Chinese server HIT.

I am only introducing the basic start up knowledge and basic tools here. In future I will be giving out more explained articles and posts on each topics in OS development mainly working out with hardwares. Thanks for viewing.

0 Kudos
1 Reply
Aguero__Gerardo
Beginner
305 Views

Excellent article !!, just what I was looking for.
Exciting and very complex task to develop an operating system, but not impossible.

regards

0 Kudos
Reply