Архитектура UNIX. Файлы и устройства

Особенности архитектуры UNIX

Знакомство с архитектурой UNIX начнем с рассмотрения таких неотъемлимых для неё характеристических понятий, как стандартизация и многозадачность:

Стандартизация

Несмотря на многообразие версий UNIX, основой всего семейства являются принципиально одинаковая архитектура и ряд стандартных интерфейсов (в UNIX стандартизовано почти всё — от расположения системных каталогов и файлов до интерфейса системных вызовов и списка драйверов базовых устройств). Опытный администратор без особого труда сможет обслуживать другую версию, тогда как для пользователей переход на другую систему и вовсе может оказаться незаметным. Для системных же программистов такого рода стандарты позволяют полностью сосредоточиться на программировании, не тратя время на изучение архитектуры и особенностей конкретной реализации системы.

Многозадачность

В системе UNIX может одновременно выполняться множество процессов (задач), причем их число логически не ограничивается и может меняться в ходе работы системы. Благодаря специальному механизму управления памятью, каждый процесс существует в собственном изолированном адресном пространстве, что гарантирует безопасность и независимость от других процессов. Различные системные операции позволяют процессам порождать новые процессы, завершают процессы, синхронизируют выполнение этапов процесса и управляют реакцией на наступление различных событий.

Два кита UNIX: файлы и процессы

Существует два основных объекта операционной системы UNIX, с которыми приходится работать пользователю — файлы и процессы. Эти объекты тесно связаны друг с другом, и в целом способ организации работы с ними как раз и определяет архитектуру операционной системы.

Все данные пользователя храняться в файлах; доступ к периферийным устройствам осуществляется посредством чтения и записи специальных файлов; во время выполнения программы операционная система считывает исполняемый код из файла в память и передает ему управление. Принципы храниния и доступа к файлам объединяются понятием файловой системы, которое будет рассмотрено подробнее чуть позже.

С другой стороны, вся функциональность информационной системы определяется выполнением соответствующих процессов. Процесс — это исполняющаяся программа, относящаяся к операционной системе или запущенная пользователем.