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.
OS module dependencies
- sleephacker
- Member
- Posts: 97
- Joined: Thu Aug 06, 2015 6:41 am
- Location: Netherlands
Re: OS module dependencies
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.
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.
Last edited by sleephacker on Sat Aug 13, 2016 3:35 pm, edited 1 time in total.
-
- Posts: 15
- Joined: Thu Nov 08, 2012 2:59 am
Re: OS module dependencies
Would I be correct in assuming that PCI depends on Port IO?
- sleephacker
- Member
- Posts: 97
- Joined: Thu Aug 06, 2015 6:41 am
- Location: Netherlands
Re: OS module dependencies
That assumption is correct indeed.BringerOfShadows wrote:Would I be correct in assuming that PCI depends on Port IO?
Re: OS module dependencies
Hi,
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
There shouldn't be any need for "keyboard, basic".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.
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
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.