Операционная система UNIX представляет собой интерактивную систему, используемую для одновременной поддержки нескольких процессов и нескольких пользователей. В ОС UNIX есть достаточное количество средств, позволяющих программистам и совместно работать, и управлять использованием общей информации.
ОС UNIX предназначена для опытных программистов. Это мощная и гибкая система. Она характеризуется небольшим количеством базовых элементов, которые можно комбинировать бесконечным числом способов, чтобы приспособить их для конкретного приложения. Одно из основных правил системы UNIX заключается в том, что каждая программа должна выполнять всего одну функцию, но делать это хорошо. В системе устранена бесполезная избыточность. Напри-
мер, зачем писать сору, когда достаточно ср?
Операционную систему UNIX можно рассматривать в виде пирамиды (рис. 3.7). У основания пирамиды располагается аппаратное обеспечение, состоящее из ЦП, памяти, дисков, терминалов и других устройств. На аппаратном обеспечении работает система UNIX .
Ее функция заключается в управлении аппаратным обеспечением и предоставлении всем программам системных вызовов. Эти системные вызовы позволяют программам создавать процессы, файлы и прочие ресурсы и управлять ими.
Программы обращаются к системным вызовам, помещая аргументы в регистры ЦП и выполняя команды прерывания для переключения из пользовательского режима в режим ядра и передачи
управления операционной системе UNIX .
Помимо ОС и библиотеки системных вызовов, все версии UNIX содержат большое количество стандартных программ, некоторые из них описываются стандартом POSIX 1003.2, тогда как другие могут различаться в разных версиях системы. К этим программам относятся командный процессор (оболочка), компиляторы, редакторы, программы обработки текста и утилиты для работы с файлами. Именно эти программы и запускаются пользователем с терминала.
Таким образом, существует 3 интерфейса в ОС UNIX : интерфейс системных вызовов, интерфейс библиотечных функций и интерфейс, образованный набором стандартных обслуживающих программ. Последний интерфейс большинство пользователей считает системой
UNIX . В действительности он не имеет практически никакого отношения к самой системе и легко может быть заменен. В некоторых версиях системы, например, этот ориентированный на ввод с клавиатуры интерфейс пользователя был заменен графическим интерфейсом, ориентированным на использование мыши, для чего не потребовалось никаких изменений в самой системе. Именно эта гибкость сделала систему UNIX столь популярной и позволила ей пережить многочисленные изменения технологии, лежащей в ее основе.
У многих версий системы UNIX имеется графический интерфейс пользователя, сходный с популярными интерфейсами, применяемыми на компьютерах Macintosh и в системе Windows . Пользовательский интерфейс UNIX состоит не только из оболочки, но также из большого числа стандартных обслуживающих программ, называемых утилитами. Стандарт POSEX 1003.2 определяет синтаксис и семантику около 100 из этих программ. Идея стандартизации этих программ
заключается в том, чтобы можно было писать оболочки, которые работали бы на всех системах UNIX . Помимо этих стандартных утилит, существует еще масса прикладных программ, таких как web -браузеры, программы просмотра изображений и т. д.
Процессы UNIX очень похожи на последовательные классические процессы, которые были рассмотрены выше. Каждый процесс запускает одну программу и изначально получает один поток управления. У процесса есть один счетчик команд, указывающий на следующую исполняемую команду процессора. Большинство версий UNIX позволяют процессу после того, как он запущен, создавать дополнительные потоки.
UNIX представляет собой многозадачную систему, так что несколько независимых процессов могут работать одновременно. У каждого пользователя может быть одновременно несколько активных
процессов, так что в большой системе могут одновременно работать сотни и даже тысячи процессов. На большинстве однопользовательских рабочих станций работают десятки фоновых процессов. Они запускаются автоматически при загрузке системы. Файловая система в
UNIX — иерархическая, с файлами и каталогами. Все диски монтируются в единое дерево каталогов, начинающееся в одном корне. Отдельные файлы могут быть связаны с любым каталогом дерева.