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.