OS module dependencies

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
Post Reply
BringerOfShadows
Posts: 15
Joined: Thu Nov 08, 2012 2:59 am

OS module dependencies

Post 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.
Attachments
Capture.PNG
User avatar
sleephacker
Member
Member
Posts: 97
Joined: Thu Aug 06, 2015 6:41 am
Location: Netherlands

Re: OS module dependencies

Post 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.
Last edited by sleephacker on Sat Aug 13, 2016 3:35 pm, edited 1 time in total.
BringerOfShadows
Posts: 15
Joined: Thu Nov 08, 2012 2:59 am

Re: OS module dependencies

Post by BringerOfShadows »

Would I be correct in assuming that PCI depends on Port IO?
User avatar
sleephacker
Member
Member
Posts: 97
Joined: Thu Aug 06, 2015 6:41 am
Location: Netherlands

Re: OS module dependencies

Post by sleephacker »

BringerOfShadows wrote:Would I be correct in assuming that PCI depends on Port IO?
That assumption is correct indeed.
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: OS module dependencies

Post 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
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.
Post Reply