Концептуально OS–9 представляет устройство как физическое хранилище данных, которые можно прочитать или записать, или физический канал передачи данных.
Система ввода-вывода в OS-9 имеет древовидную структуру.
Все вызовы ввода-вывода направляются в ядро, которое перенаправляет полученный вызов в модуль соответствующего менеджера, управляющего нужным классом устройств.
В системе OS-9 может существовать любое количество менеджеров или ни одного. Например, менеджер прямого блочного доступа управляет блочно-структурированными устройствами с прямым доступом к блокам: жесткие и гибкие диски.
Менеджер последовательного посимвольного доступа управляет устройством передачи потока сигналов: видеотерминалы, принтеры.
Для того чтобы менеджер был более универсальным, он оперирует только логическими данными. Он не понимает каким образом происходит физическая передача данных, которая выполняется по запросу менеджера драйвером устройства, который специально написан для конкретного интерфейса, конкретного устройства ввода-вывода: кристалл контроллера жесткого диска, кристалл асинхронного интерфейса или интеллектуальная плата сетевого контроллера.
Каждое устройство описывается модулем данных называемым дескриптором устройства. Устройство носит имя своего дескриптора. Дескриптор устройства содержит имена модулей менеджера и драйверов, используемых для управления данным устройством, а также основную информацию об этом устройстве (адрес интерфейса, номер прерывания и т.п.).
Такой подход обладает двумя важными достоинствами:
- Позволяет использовать один и тот же драйвер устройства для любого количества интерфейсов ввода-вывода, подключенных к общему интерфейсному каналу, имея для каждого интерфейса отдельный дескриптор и давая различные адреса и вектора прерываний.
- Для одного и того же интерфейса можно создавать несколько дескрипторов с разными именами, с разными установками опций и разными именами менеджеров или драйверов. Например, к одному и тому же последовательному порту могли бы относится два дескриптора: один с опциями, необходимыми для связи его с терминалом, другой для связи с принтером. Эти два дескриптора являются «псевдонимами» одного и того же устройства. Или эти два дескриптора могли бы задавать разные драйверы: один для асинхронной связи, другой для синхронной и HDLC-связи (режим скользящего окна).
Одной из специальных характеристик системы ввода-вывода в OS-9 является динамическая инициализация и закрытие подсистем ввода-вывода. При открытии к устройству пути ввода-вывода ядро инициализирует это устройство автоматически, если оно еще не проинициализировано. Любая подсистема ввода-вывода включает модуль менеджера, модуль драйвера устройств, модуль дескриптора устройств и область статической памяти устройства.