Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
distantvoices wrote:
Second, it should go in this order:
(snip)
This is not at all an exhaustive list. You can of course add/leave out things.
The order in which you do things is not really important, although you need some things before you can decently do another. e.g. i did IPC only after i did a big part of the userland library stuff.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
You are of course eligible to your opinion, but it is in my entitlement to dissent as I think that you have lost me there:
IPC makes no sense ere multitasking is up and running in firm manner. By IPC, I define stuff like Message passing, which is also needed by kernel threads/drivers usw... it's just such a basic mechanism.
creating processes in userland makes no sense ere kernel memory management for allocating task & other management structures is firmly up and running.
...
You will get my point sooner or later, eh? [edit] Ah, I see, you admit that certain things need to be done in a certain order ...[/edit]
What I want to say is: There are things to be done ere you can start to do other things. So, the Order in which to do stuff IS important, contrary to what you say. If you have designed&implemented a full fledged OS (with file system, gui, networking, userland apps), you gonna see this. Of course, I do not impugn that you have done so.
Combuster wrote:although you need some things before you can decently do another.
Distantvoices wrote:What I want to say is: There are things to be done ere you can start to do other things. So, the Order in which to do stuff IS important, contrary to what you say.
I was well aware of that. My point kindof was, the order is not STRICT like you seemed to suggest.
Right now i have the idea we have been misunderstanding each other's posts
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
Do not jump into implementation right away.....
initially concetrate on your design......
You should have a clear perspective of how
your os should look like( i do really mean it,
a very clear picture).Set attainable goals
and try to achieve it ....You cannot make
a make a winxp or winnt overnight........
(not even a stupid os 4 that matter...)
Of course, everyone will develop things in a different order, (within certain constraints...) but I started with debug support (reg dumps, reliable screen output, com output etc...) and feel this is a pretty vital step.
I for one implemented some basic heap management before multitasking (which I have only just cracked) and think that versions of kmalloc(or whatever) that can align on demand and aoid page boundaries on demand are also vital pretty early on.
I'm now at the stage where I have set up a text-mode console as one of my tasks too - that's going to make progression sooooo much easier!
If you have started coding without a decent plan (as I originally did), prepare for your first efforts to be a 'learning os'. I started from scratch several times, which was certainly a learning experience.
I will give you a very simple way to get you started in OS dev, first get this: http://www.dex4u.com/dex.zip
When you get it, run the EXE which will put a exe loader on the floppy, so you will need a floppy driver and a empty floppy disk.
Once you done that, you will find that it as put some files on the floppy, these are part of DexOS you can delete these (note: you can try then first by rebooting the PC with the floppy in the drive).
Any way once all the files are deleted (BUT DO NOT FORMAT) you can write a hello world! turbo pascal exe and name the file "kernel32.exe" and put it on the disk and reboot and you shoulds see your first bootable "Test OS" printed on the screen. projects.
Example:
87ASC wrote:So what should I start doing first. The Kernel
Depends on what you class an operating system.. technically the kernel is the only bit that really makes it an operating system so you could start there. I would advise starting by reading every techniical document you can find on theory and your plaform until you understand that development inside out... then you will know what to program because you will have your ideas based upon your understanding. You won't simply be copying tutorials from the internet that aren't yours. I really advise starting with a theory book then the Intel manuals.
Last edited by Tyler on Sun Dec 31, 2006 9:45 am, edited 1 time in total.
Dex wrote:I will give you a very simple way to get you started in OS dev, first get this: http://www.dex4u.com/dex.zip
When you get it, run the EXE which will put a exe loader on the floppy, so you will need a floppy driver and a empty floppy disk.
Once you done that, you will find that it as put some files on the floppy, these are part of DexOS you can delete these (note: you can try then first by rebooting the PC with the floppy in the drive).
Any way once all the files are deleted (BUT DO NOT FORMAT) you can write a hello world! turbo pascal exe and name the file "kernel32.exe" and put it on the disk and reboot and you shoulds see your first bootable "Test OS" printed on the screen. projects.
Example: