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 :-)
Comment/Reply (w/o sign-up)