Перед тем, как углубиться в сущность вопроса, давайте обсудим некоторые элементарные факты, которые мы должны помнить при рассмотрении всех составляющих системы UNIX. Сердцем аппаратуры является центральный процессор (CPU), который исполняет инструкции, управляющие машиной, и фактически осуществляет всю работу. Операционная система необходима для руководства работой, выполняемой центральным процессором, и для обеспечения интерфейса между ним и ресурсами, требуемыми для того, чтобы сделать что-то полезное: оперативной памятью, внешней памятью и другими периферийными устройствами, такими как терминалы и принтеры.
Операционная система, особенно такая высокоразвитая, как UNIX, имеет множество утилит и характерных особенностей, но сейчас речь не об этом. Сердцем операционной системы (в данном случае UNIX) является ядро (kernel). Ядро управляет процессами и руководит выполняемой работой. Оно также является своего рода мостом между аппаратурой и внешним миром. В данной главе мы обратим внимание на основные взаимоотношения между ядром, процессами и аппаратурой.
В конечном итоге система должна взаимодействовать с внешними устройствами. Наличие базовых знаний об устройствах весьма важно для полного понимания того, как UNIX общается с внешним миром.
При работе с машиной много времени тратится на передачу данных в машину и из нее, а это значит, что необходимо иметь дело со множеством различных типов устройств, каждое из которых имеет свой "характер" и особенности.
К нашему счастью, UNIX был разработан так, чтобы облегчить управление данными и устройствами настолько, насколько это возможно. К нашему несчастью, имеется, по всей видимости, несократимый объем знаний, которыми мы должны овладеть обязательно. На 7-1 показана общая структура операционной системы UNIX. Мы видим, что со стороны ядра обращение ко всем внешним периферийным устройствам выполняется как к файлам устройств. Каждый тип устройств имеет свой собственный драйвер и специфическую архитектуру, но обращение к каждому устройству выполняется одинаковыми методами. Мы увидим, как использовать различные способы доступа к устройствам и определим, какие способы наиболее эффективны.
Рисунок 7-1
Модель среды системы UNIX