Page 1 of 1
How to start Design ?
Posted: Fri Sep 12, 2008 8:58 pm
by jainendra
Hello to Everyone,
& thanks to those who gave me the reply.
I want to create an OS which will like MINIX3.But I will be adding additional features also.I completed the analysis part of OS.Now I have to start the designing.But I don't know from where to start.So please help me to start design.start means I want to know whether to start from Lower layer(i.e. Kernel & system tasks) or from the upper layer(i.e. init & the user processes).
and also then how to proceed?An early response will hwlp me a lot.
Again Thanking in advance.
Re: How to start Design ?
Posted: Sat Sep 13, 2008 3:43 am
by AJ
Hi,
jainendra wrote:I want to create an OS which will like MINIX3. But I will be adding additional features also.
I'm not here to put people off OS Dev, but how about taking the Minix3 kernel as a starting point? Can the additional features be added simply by creating a distro rather than a complete OS?
I completed the analysis part of OS.Now I have to start the designing.But I don't know from where to start.So please help me to start design.
For design, start with your interfaces. You have a few of these and they can be internal (what part of each module does the core kernel need to see) and external (what interface are the drivers and user apps going to see). Have a look from the outset at a few ways of doing this - syscalls, IPC and so on. Think about extensibility from the outset.
This is no different from application programming - for example a C++ coder designing a class firstly thinks about what part of that class needs to be visible to external code. A failure to do this results on some of the class internals to be taken in to account by external code which is not the point of OOP at all. In the same way with the OS, you need to provide a consistent, clean interface that your apps and drivers developers will be able to use.
Once you have a good idea about all that, you can think about where to start coding and this will depend on whether you are writing your own boot loader or not. The order of implementation here varies greatly, but its not a bad idea to put some basic debugging helpers in first (like a temporary video and/or COM driver) which can be used to debug your kernel in the early stages. This can be superceded later once you have written your driver interface. The rest is up to you
HTH,
Adam
Re: How to start Design ?
Posted: Sat Sep 13, 2008 11:12 am
by Troy Martin
jainendra wrote:I want to create an OS which will like MINIX3.
Linux was originally meant to be a free, monolithic Minix-like hobby OS. It's grown by some pretty big factors since then.
jainendra wrote:and also then how to proceed?
Start by learning assembly (I saw your other post, so I assume you don't really need to) and C. You can find lots of OS Development tutorials on the internet, even on the wiki.