Anyway, for the rest of you who under estimated me, I have already researched parameters and program a simple O/S that I have successfully loaded.
I learnt all this from nothing in 4 hours.
OK, i gotta be honest in saying that i have a very hard time believing this is true, if you said "I looked at the bare bones tutorial found in your wiki and got it to build and boot", then it would be plausible. But claiming to have _no_ programming experience and then saying 4 hours later you have a bootable stub OS..yea no, I call bullshit.
I mean, obviously you either lied about how much programming experience you have, or you are lying about your progress. I really don't see why you would do either really, i mean people in the forum only mean to help.
If you feel that I am wrong in my assessment, feel free to post the source to your OS for our viewing. if you indeed did come up with something on your own, well then I will happily appologize.
Bottom line is that you will only be fooling yourself and no one else here. You are better off being honest and accepting people's advice.
Anyway, here's my advice with regard to your question.
Firstly download the intel PDFs regarding the pentium processor instruction set. This will give you a familiarity with programming on intel CPUs at the lowest level and knowledge of how things really work.
Second learn C or C++
inside and out. I don't mean "hello world" here, i mean be able to solve real problems in the language. These languages are not trivial to master (easy to be proficient, difficult to be a guru).
Third, Use an OS besides windows. This isn't a requisite, just a recomendation. I am not claiming windows is bad or good, just that you need to see other ways that things can be done. For example, you at first thought boot.ini was part of the "standard boot process" and didn't know it was windows specific...an honest mistake based on being naive, no biggie. You need to branch out your knowledge and see how things are done when we aren't tied to the microsoft way of doing things. Who knows, you may stuble on a great new way of doing things.
Fourth ok, we finally get into the OS. Well i personally recomend starting with the OS and not the boot loader (use grub, it's easy). First thing you need to develop a console which can do character I/O (read a single char, write a single char) in a line based fashion. This will help you greatly in debugging you OS. Next i would do page level memory managment. A simple stack will do for this (see
http://www.nist.gov/dads/HTML/stack.html).
Once you can issue pages, well paging kinda come naturally. Once this is all done, I moved on the kernel level threads which included thread managment primitives such as semaphores, monitors and mutexes and basic scheduling. All very critical OS concepts. Finally after that the next logical step would be implementing user space threads/processes.
If all this hasn't scared you off, well kudos to you and best of luck. But I still recomend you be honest with us and yourself. And remember, something that boots and prints "Hello World" or a version number is not an OS. It is a simple stand alone program which can run without an OS. An OS must let the user "operate" the computer in a useful fashion. In this sense, I would consider the vast majority of "project OSs" out there, not really operating systems yet, but efforts towards one.
proxy