Page 1 of 1

OS module dependencies

Posted: Sat Aug 13, 2016 2:57 pm
by BringerOfShadows
I am currently trying to map out what systems would depend on what, and I wanted to get a second opinion. I've include an excel file with the dependencies I mapped out, and if anyone can give me any suggestions, That would be greatly appreciated.

edit: could not attach the excel file, so I attached a screenshot image of the file.

Re: OS module dependencies

Posted: Sat Aug 13, 2016 3:30 pm
by sleephacker
Hardware detection depends on PCI, and networking depends on hardware detection.
Also, why do memory management and paging depend on text display? Maybe for debugging... but in the end my memory manager does just fine without a 'print' function.

Re: OS module dependencies

Posted: Sat Aug 13, 2016 3:32 pm
by BringerOfShadows
Would I be correct in assuming that PCI depends on Port IO?

Re: OS module dependencies

Posted: Sat Aug 13, 2016 3:35 pm
by sleephacker
BringerOfShadows wrote:Would I be correct in assuming that PCI depends on Port IO?
That assumption is correct indeed.

Re: OS module dependencies

Posted: Sat Aug 13, 2016 9:20 pm
by Brendan
Hi,
BringerOfShadows wrote:I am currently trying to map out what systems would depend on what, and I wanted to get a second opinion. I've include an excel file with the dependencies I mapped out, and if anyone can give me any suggestions, That would be greatly appreciated.
There shouldn't be any need for "keyboard, basic".

For "keyboard, advanced", it depends on USB controller, file access, memory allocation and IPC (e.g. it needs to load a "keyboard layout description" from disk, needs to send "keyboard events" using some kind of communication with user-space). For "USB controller", it depends on hardware detection, port IO, IRQs and memory allocation.

Also note that if your OS design can't (eventually) be used on a tablet or a "headless" server (where there is no video or keyboard or mouse and you use something like networking/telnet/SSH or maybe just terminal connected to serial port to log in) then your OS design is broken (unsuitable for smaller machines and unsuitable for larger machines). For this reason "command line" can't depend on "keyboard, advanced". Instead it should depend on "IPC" (e.g. pipes - like "stdin" and "stdout").

"IPC" depends on memory management and scheduler (e.g. "read()" from a pipe can cause the task to block until there's data available).


Cheers,

Brendan