IA32 / IA64 / x86-64 - like architecture

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.
Post Reply
hartyl

IA32 / IA64 / x86-64 - like architecture

Post by hartyl »

well, i have to do a big decision.
i wanted to start a diploma-project at my school. it should be a simple OS (huh?!) with multitasking, gui and other nice stuff - an os for IA32. as my teacher said, there's no killer-application for that since there are already two unbeatable OSes.
his idea was to write a portable OS, which can easily ported to another architecture - i don't know any similar to IA32. the important point is, that i'd like to know several architectures which provide paging, interrupts (exception handling). what's more important, is that i also like to know if you have had experience with these systems.

greets, hartyl
common

RE:IA32 / IA64 / x86-64 - like architecture

Post by common »

From what I read (no experience)...

Most modern day architectures support this (Sparc and others).  Fewer support segmentation.  Intel is a bit of the oddball in that it has segmentation logic in the first place.  However, not all of these architectures have quite the nice TSS setup that Intel has either.  You have to do a bit of twisting to make things work, but some can also be a bit more flexible.

This is just based on what I have read, I have no practical experience in dealing with this.
carbonBased

RE:IA32 / IA64 / x86-64 - like architecture

Post by carbonBased »

'tis true.  Any modern platform has some semblance of paging, interrupts, and exception handling.

True, indeed, no other platform supports "tss based" multitasking, but many platforms do have hardware-based multitasking, and whats-more, a better system then Intel provides.

As per the original post, however -- in order to make any portable OS, you're going to have to have much platform dependant code anyway.  You'll have to provide a certain set of routines that are going to be different on each platform, and very little of that can be avoided.

The multitasking issue is interesting because, yes, on any platform that supports hardware interrupts (ie, any modern platform) you can implement software multitasking -- typically based on a hardware timer interrupt -- and avoid some of the platform dependant code.

The alternative is to implement hardware multitasking on those systems that provide it, and software multitasking on those that don't, and provide a interface of abstraction so that the OS really doesn't care which system it's using.

Cheers,
Jeff
Post Reply