Jump to content
xisto Community
Sign in to follow this  
outlawguy89

Operating System Creation? Is there a way to make a simple operating systems language?

Recommended Posts

I always wanted to creat my operating system (not a great one that could compete with Mac or Windows of course), but a simple little language that could host programs (written by me). Is there any one way to start on creating the system, and is there a commonly used programming language I would need to learn to start writting it?

Share this post


Link to post
Share on other sites

If you are really serious then I would recommend starting out with a book like the following:

⢠Modern Operating Systems (3rd Edition) - https://www.amazon.com/Modern-Operating-Sysm/dp/0136006639
⢠Operating System Concepts - https://www.amazon.com/Operating-System-Conz/dp/0470128720
⢠Operating Systems: A Systematic View (6th Edition) - https://www.amazon.com/Operating-Systems-Syh/dp/0321267516

I remember taking my operating systems class in college and I had no idea an operating system was so complicated. First you will have to have an intimate relationship with the hardware so most of your programming should be in assembly. Next you will have to create routines to handle the handoff between the BIOS (assuming an Intel architecture) and the OS. Next you need to create drivers for at least the keyboard and monitor. After that you will need some APIs to make the OS useable to other programs. Thatâs about as much advice I can give you because I have never had the need ro ambition to create my own OS.

Share this post


Link to post
Share on other sites

If you want to create your own operating system then SIGOPS tutorial series is for you. Also i found this tutorial interesting. And while you're learning about operating system. Make sure you pay attention to small things like interrupt, device drivers, display, sound and interface etc. Some more details about this are covered in this tutorial. You can also learn from other operating system. For example, how linux is created from tutorial like "Linux from scratch". For UNIX like Clone, check this. If you're C# user then there is one project going on called as "SharpOS".

 

Also there are few educational projects which tells you how operating system works. Check Mikeos and Pintos project. TomOS is fork of MikeOS. Nanoos is written in C++, if you're C++ user then do check it out.

 

Some good books are already mentioned by "@tansqrx" so do check them out.

Share this post


Link to post
Share on other sites

it's good to be interested in this sort of stuff....but i think its more complex than i even think,and i think its very hard to do this kind of project with not much of experience with operating systems and "pc's inside" ....i would like to do my own OS,but it will have to wait for a few years first until i get all knowledge on that kind of stuff before even trying to do it :Dthanx..Eggie

Share this post


Link to post
Share on other sites

I really like the SIGOPS link. I particularly find one prerequisite in the introduction section to be very telling.

Persistence and Mental Stability - I once spent two weeks at work (where I was porting an operating system fulltime) trying to work out a bug that was fixed by changing one bit. Not only that, but all the documentation on the processor that I found was either lacking this critical piece of information or was very misleading, close enough to being actually wrong (and this includes the manufacturer's official documentation). Be prepared to spend a good portion of your time beating your head against a wall.

Share this post


Link to post
Share on other sites

Yes. Sigops is very interesting series. Also "Linux from scratch" is one good resource for those who want to build linux-style OS from scratch. More books to list : Andrew Tannenbaum's Modern Operating Systems, Operating System Concepts, Operating Systems Implementation - Prentice. There are some Old Books on XINU series. Like, Operating System Design with Xinu and Operating System Design-Internetworking With XINU, Vol. II.

 

Also MIT Operating Systems class is a must read. There is a lot of material available from MIT's opencourse ware site. Do check out some of the forums related to operating system like SkyOS, and linux distros. You'll find many people studying operating systems. They'll guide for sure.

Share this post


Link to post
Share on other sites

Hi there OutlawGuy,

 

OK, here is my own experience in trying to create an Operating System. The OS s friend of mine and I had in mind was to be a fully Arabic operating system to be sold commercially in Egypt (where I live) and other Arab countries. It was a very intense project - one which, unfortunately, we abandoned after about 10 months of work - but I hope some of the hands-on insight might be of help to you.

 

First of all, let me reiterate that, indeed, persistence and mental stability (a better term might be resilience) will be your true ultimate challenge here. Technical knowledge can be acquired. Information and details can be researched, asked for, or even created from the ground up if needs be. But you have to have an absolutely compelling reason to finish this project, and you need to know this reason, this purpose, before you start even thinking about the outline of your project.

 

Now, the programming languages we used for this operating system were C and Assembly, with the assembly code usually included in the C source files, except for the boot-loader and other low-level functions, for which assembly code was written separately.

 

I believe that the way to go about this is to, first, clearly define what you want out of your operating system. Is it simply a learning experience? Are you planning to continue developing for your own personal use? Do you intend to go commercial some time in the future?

 

Once you know what you want your operating system to do, you're in a much better position to research what you need. There are some very good online communities, books, and tutorials that will help you every step of the way, but you need to know which ones you're going to focus on first. Otherwise, you'll completely waste your time, energy, and motivation reading a ton of material you don't even need.

 

Unfortunately, I don't have the links to those resources anymore. However, as "tansqrx" mentioned above, I personally found Tanenbaum's book, Modern Operating Systems, an absolute, unqualified life-saver. It probably won't be your be-all-and-end-all in your pursuit of gaining knowledge about this subject, but it's definitely an outstanding starting-point. In some occasions - at least in my case - I didn't find his explanations and examples totally satisfactory, but they sure did let me know where to look for more information. If I remember correctly, he heavily leaned toward using demonstrations of his own open-source, UNIX-clone operating system, MINIX, which I found rather helpful, since I already had the source code available.

 

The last piece of advice I could give you here is: don't give up! This is going to take a lot of time -- a lot more than you realize, expect, or exaggeratedly estimate. But if you're the type who enjoys learning new concepts and facing big challenges, then it's definitely an undertaking worthy of your time and effort.

 

Best of luck :-)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.