I've noticed that writing a kernel needs a huge knowledge(or a table next to me) which tells me ALL the memory areas allocated by hardware.
The problem is that each
part of the hardware does its
own allocation. The BIOS does supervise
how e.g. PCI cards do their allocations. But
what is allocated is defined by the
card.
And I need to know all the device ports.
That is what is commonly called a "device driver": A piece of code that "knows" about a specific device, and enables the kernel to access that device through a "standard" interface. For example, your kernel will want to read from and write to a hard drive. You will need
device drivers to translate those calls into ATA or SCSI or USB commands, which means you have to get your hands on the technical documentation for the ATA / SCSI / USB controller you are using (or the one you want to support, anyway).
Some of them are pretty generic, some of them are pretty specific to the chipset used.
But that's not strictly
kernel development, but
driver development. You could have the world's greatest kernel, but you'd still need a large library of available device drivers to get anywhere...
NOW, do anyone of you have these tables of knowledge about what I mean?
(of course you do, 'cause you're writing OS:s)
I don't think I like your tone, here. Trust in us that we would provide that info if it were that easy.
Where can I get those tables? (I guess not from Mega-Tokyo.com)
No, from the individual device / chipset vendors. Sometimes for free from the web, sometimes only if you're a big company, pay big bucks, and sign an NDA. Sometimes not at all.
(And I don't want the famous "Intel's 'billion paged' manual"!)
Then forget about writing a
real OS.
Now I am confused. YOU are making OS:s ! Where have you took those what I'm looking for ?
The thing is that you are confused about
what you are looking for.
Why is it so difficult to have them here.
Because they are intelectual property of those who developed it, and some of those don't believe in sharing that property.
I think those port- and memory tables shouldn't be anyone's property (open-source you know)!
I agree (but I understand the standpoint of the HW manufacturers, too).
Have you read the Intel's manual?
Yep. It's the technical documentation of the CPU, so you basically
have to read it. (Or read tons of tutorials which basically copy & paraphrase the information from the Intel docs, sometimes introducing errors and not telling the whole story of what you could do
different from the tutorial author's approach.)
If there's no other way than "just know them" or "google whith wrong results ", I WILL READ THE INTEL'S MANUAL THEN! >:(
No reason to become angry. And be aware that it will tell you everything about the CPU, but nothing about the BIOS, PCI, networking devices, VGA, ...
( Could you even give me some links please? ) :-\
All we could give is in the FAQ (click the banner) and the Quick Links thread.
PS. Wasn't Ralph's Int. List just for DOS wasn't it.
Yes and no. In DOS, you had full access to the BIOS functions, so the RBIL
includes all BIOS functions
in addition to those provided by DOS and its applications.
As the BIOS is the central OS / hardware interface, you need the RBIL even if you never touch DOS with a stick.