Page 1 of 1

About computer architecture

Posted: Mon Aug 25, 2003 11:00 pm
by pepito
I will begin to design my "device manager" soon, but I have a doubt:

If I write an operating system for a specific CPU, can I assume that the computer have specific keyboard, video, and ports controler chips too?

My OS may include some default device drivers?

thank you,

pepito

RE:About computer architecture

Posted: Mon Aug 25, 2003 11:00 pm
by Stefan
Yes. Making something run on an embedded system (no keyboard, mouse, floppy, etc.) is just as much porting as making it run on a different CPU family. But you should still have modular drivers that the kernel can do without, so that people can use 3rd party and/or newer drivers.

RE:About computer architecture

Posted: Tue Aug 26, 2003 11:00 pm
by pepito
Thank you for your soon response...

I am programming an OS for the Intel 80386 architecture (i386).

By now, my OS input data using the ports 0x60/0x61/0x64 and output data to the address 0x0B8000. I belive it match with "VGA text mode memory area" and the "8042 keybord controler chip", is this right?

Are these two devices "standar"?
May I use it as my default intput/output devices, and it will work with any i386 computer? And with a Pentim computer?

Thank you again,

pepito

RE:About computer architecture

Posted: Tue Aug 26, 2003 11:00 pm
by Dragon88
Yes, those should be standard. Pentium proccessors are all part of the ix86 family (e.g, the pentium II is also known as i686). That is to say, they all have the i386 type architecture. So, in answer to your question, yes , I believe you can use those as standard.

Cheers,
Rambo

RE:About computer architecture

Posted: Wed Aug 27, 2003 11:00 pm
by pepito
Just one more question...

What about storage devices? I am writing a floppy driver that could be "standard" but I want use a hard disk too, is it possible?

Thank you very much!

pepito

RE:About computer architecture

Posted: Wed Aug 27, 2003 11:00 pm
by Xenos
Hard disk controllers need a different treatment than floppy controllers. Of course you can write a "disk driver" interface with functions like block reads etc. and use it with different drive types like floppys, IDE and SCSI hard drives... One way to do this is to save information about drive types and redirect disk interface calls to the required driver.