Posted: Tue Sep 18, 2007 4:35 am
Teheheheh
Grunting noises!
Your kernel sounds fun
I am missing something huge here, perhaps due to (for the most part) spending my time and effort working on different parts of the Kernel puzzle.
The thing that gets me is, in this case, how does your device manager assign those ports? Does it just allocate them out of some IO pool? Do the port addresses assigned actually have any relation to the hardware or is the device manager or kernel doing some kind of routing, using those ports?
If it is doing some kind of routing, how does it know which ports to ultimately redirect the writes/reads on those assigned by the device manager to?
Does the device itself issue this information as part of its detection? Is it a shiny, fun-fantastic part of PCI?
It would be cool if I could do some kind of probe at boot time, or Device manager startup time.. to determine what devices (without any real identification going on, no drivers acting), were linked to what ports, physically.
Is that possible? It must be? I mean, my IBM's BIOS gives me a list of the IO Address space and that some hardware requires this range. Could you point me to any resources that could enlighten me on this kind of detection?
In any case, you are right.
Under my scheme, it is possible for a driver to acquire access to any port, via indirection. Therefore, it is completely possible that one driver called HACKKBD, asks to be routed to the i8042 with the explicit purpose of disabling the A20 line.
The thing that makes this even wrong is that thinking "Users would never use such untrustworthy software!". Users are morons, my mother for example, got an email from a complete stranger with an attachment saying "This is an important anti-virus update! URGENT". She opened the attachment and her computer's bootsector went buhbye (Dont you just love Win9x?).
I like the sound of your device manager
and hey, modularity for the win!
~Z
Grunting noises!
Your kernel sounds fun
I am missing something huge here, perhaps due to (for the most part) spending my time and effort working on different parts of the Kernel puzzle.
The thing that gets me is, in this case, how does your device manager assign those ports? Does it just allocate them out of some IO pool? Do the port addresses assigned actually have any relation to the hardware or is the device manager or kernel doing some kind of routing, using those ports?
If it is doing some kind of routing, how does it know which ports to ultimately redirect the writes/reads on those assigned by the device manager to?
Does the device itself issue this information as part of its detection? Is it a shiny, fun-fantastic part of PCI?
It would be cool if I could do some kind of probe at boot time, or Device manager startup time.. to determine what devices (without any real identification going on, no drivers acting), were linked to what ports, physically.
Is that possible? It must be? I mean, my IBM's BIOS gives me a list of the IO Address space and that some hardware requires this range. Could you point me to any resources that could enlighten me on this kind of detection?
In any case, you are right.
Under my scheme, it is possible for a driver to acquire access to any port, via indirection. Therefore, it is completely possible that one driver called HACKKBD, asks to be routed to the i8042 with the explicit purpose of disabling the A20 line.
The thing that makes this even wrong is that thinking "Users would never use such untrustworthy software!". Users are morons, my mother for example, got an email from a complete stranger with an attachment saying "This is an important anti-virus update! URGENT". She opened the attachment and her computer's bootsector went buhbye (Dont you just love Win9x?).
I like the sound of your device manager
and hey, modularity for the win!
~Z