I/O nano-manager
The Input/Output Nano-manager, formerly known as Ion, is a part of the system which treats input/output requests from processes.
It is concretely represented by the sys::hw
service.
Hardware access
When a process tries to access the hardware, it must go through Ion, which will allow it or not to interact with the desired device.
System services such as sys::fs
or sys::net
use Ion to deal with the related hardware devices.
Agnosticity
Ion only permits agnostic access to hardware, meaning it does not have knowledge of the performed action (filesystem access, sensor reading, ...). It can only be accessed by drivers.
Non-agnostic access can be performed through various services, such as sys::fs
.
Requests priority
Requests are treated by priority, which is made both of its arrival timestamp (first one, first out) but also of the process' priority: a process with an higher priority will see its I/O requests treated more quickly.