Buddy, here is the answer you have been looking for:
Writting an Operating System is not different than writting any other application, actually it is far easier than writing any other code for the reason an Operating System is an ALL-PURPOSE software or what is meant as a platform... and you know it!.
All of the previous asnwers are EXTREMELY USEFUL!, and ALL OF THE PREVIOUS INCLUDING THIS ONE WILL HELP YOU IN CODING YOUR O.S. actually in less than three months.
Please, try to be objective and get rid of negative answers (that is just mindblocking...)
A Software Developer actually CODE EVERYTHING that comes to his mind! (in my case I was a SUPERB software developer until I had a brain accident and suffered hypoxia for a considerably period... not want to talk further about it... me traumatized...)...
Let's speak clear:
If you want to build an O.S. do the following and start TODAY!:
Define if you want to write a SHELL or if you want to write a CORE O.S.;
Plan main functions of the O.S., processes, etc.;
Choose the level you want to build it on:
VERY LOW LEVEL (Assembly Language required and MEMORY, CPU, AND HARDWARE RESOURCES KNOWLEDGE REQUIRED ALSO -NOT TO BE ACQUIRED IN MERELY THREE MONTHS... OH NO!...)...
Medium Level (Here you can use the STANDARD solution, that is C programming Language!);
- High Level (This is the level you may want to use Python, it means you will use ALL of the same resources and shells you operating systems offer to you, whether it is any Linux Distribution, or a UNIX(R), Windows(R), CP/M(R) or any other known up to date);
Because of the time required for you to build it I must assume you are delivering a College work to earn credits... and yet in case you work for a Corporation or in case you are self employed or your own C.E.O., you must have resources assigned to this project... I will assume you are building it for a Academic's!.
Imagine you are writing a shell, that will ease the start-up of your work, and while you are writing the shell your mind should be drawing the real core of it, along with the addressing and along with the lowest level routines...
I think you may know MS(R)-DOS(R). The version 3.3 is one of the easiest and enriching (pedagogically speaking) Operating Systems ever designed and published by Microsoft(r) Corp. Please, be creative, DO NOT CLONE IT, just inspire your mind on it, and then build something your Professor or end-consumer will admire and enjoy!.
Do not forget we are in the age of Graphical User's Interface, so do not go into texting, although ASCII is still the most beautiful expression of computer age, you can play with both interfaces.
Once you work this from Top to Dowm you will find out how easy it is to build routines in High Level language, and once you build it, and debug it, may be you will speed up a CORE os. that is: Bootstrapping, Memory management, etcetera...
Do not get to involved in dealing with interruptions or you may end up loosing you enthusiasm INMEDIATELY!... leave the UNDERGROUND O.S. to deal and take care of the interruptions.
In less than three months you will have your first prototype, and then you need to make it work good (To Debug it, I mean!). Exceed yourself!.
If you work SOLO, you will need to write a manual, IT TAKES CONSIDERABLY PRECIOUS TIME YOU DO NOT WANT TO LOOSE... My advice (please, do not laugh, I used this technique and it made today's Magnate's earn BILLIONS) WRITE DOWN IN PAPER, HANDWRITTEN, ALL OF THE DOCUMENTATION (THIS IS BECAUSE YOUR FINE MOTRICE COORDINATION IS FASSST! AND EVEN IT WILL NOT EQUAL THE SPEED OF YOUR THOUGHTS IT IS A HARD COPY TO DELIVER TO A WELL PAID ASSISTANT TO TYPE IT INTO A COMPUTER AND EDIT IT MARVELOUS -MAYBE A .PDF WITH ILLUSTRATIONS, ALONG WITH A VIDEO WILL SHARPEN AND DELIGHT THE EYES OF THE END-CONSUMER!.
Remember, the build up of the first month must be actually a SHELL of the basic functions a BASIC operating system must deliver to the user:
- Commands Processor;
- File Directory listup;
- Create/Edit and Delete files;
- Create/Edit and Delete Directories;
- Accessing drive units (floppies, Compact Discs, HardDrives, Flash Drives, etc...);
- Update and Display of information through the screen!;
I would focus mainly in the previous, and then ANYTHING else comes up easily through the creation of enriching routines (trust me this phase is addictive and you will have NO MORE life when you reach to this poit for you will be married to this project and you will never leave it anymore), do not fear, it wil work!.
Present your Operating System, and if your expecting upcomming funds show up, or if your expecting grade gets the higher rated you expect, you may want to keep enlarging your project and then build it into a more solid, robust and steady application!.
Just imagine yourself using this platform as a plaintiff for any kind of hardware you may want to work with: ROBOTS, AUTOS; AIRPLANES; REMOTE CONTROL; ETC...
I know you will enjoy this assignment and I know you will entertain yourself greatly! Only a real programmer has this kind of ambitions!
God bless America!
KnowBuddy