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