in my last thread i asked about processors which are like the IA32 capable of paging and interrupts.
i'm still not sure if i should start the project or not.

the problem to be considered is the following:
when i port the OS to another processor, several things have to be changed; when i construct in my mind, i think too much has to be changed in order to port the OS.
taking the interrupt-handling for example:
on IA32 there is an IDT, which has to be loaded with adresses. on every architecture this will look differently.
or the paging; it is handeled differently on every architecture. not everywhere a user-level-accessing is availible (like on IA32, supervisor and user-level).

any ideas to it?

greets, hartyl
Posted on 2004-04-25 11:34:19 by hartyl
*shrug*. "clean design" - Hardware Abstraction Layer, don't access things directly but call kernel routines to do it, abstract it so you don't "hook_IDT_vector" but "install_interrupt_handler". Look at how NT is structured.
Posted on 2004-04-25 12:40:58 by f0dder
What ever interface is chosen has a limiting effect: both excluding harware without those features, or not making efficient use of more advanced features. I would like to suggest chosing the most minimal initial interface and then allow the OS to rebuild itself to expand the interface for more advanced hardware. The adaptation should be in the source code, imho -- not in the kernel.

This gives a whole new meaning to the term monolithic kernel as low level applications become part of the kernel - more integrated than NT. This is not a problem as most computers only have a couple of main uses.

If you are not interested in innovation and just want to create something for the school project, have a look at some existing OS's. TKOS is very simple: http://home.no.net/tkos/info/ http://home.no.net/tkos/os.zip
Posted on 2004-04-25 14:34:01 by bitRAKE
Things like that are to be expected. In OS design you have 2 main design points, architecture specific and independent.

There is no way of going around the architecture specific design, you are going to have to design code to fit the minimal requirements for that specific architecture (i.e. IA-32 = i386 minimum).

Where you come in as a designer is how the independant "portable" code interacts with the architecture specific portion, with a little elbow-grease you can (and should) easily make those low level portions invisible to the user.
Posted on 2004-04-25 15:11:21 by SpooK