
- •2. Структура ос Unix
- •2.1. История создания Unix
- •Основные этапы развития Unix
- •2.2. Основные свойства Unix
- •2.3. Концептуальная модель Unix
- •2.4. Современные версии Unix
- •2.5. Архитектура ос Unix
- •2.6. Архитектура ядра Unix
- •2.7. Основные понятия ос Unix
- •2.8. Файловая система (пользовательский аспект)
2.3. Концептуальная модель Unix
Основные реализации Unix- этомногопользовательская многозадачнаяоперационная система разделения времени.
Ниже приведены основные особенности Unix.
1). Все работы в системе представлены множеством конкурирующих процессов. Существует единственная операция, порождающая процесс – системный вызовfork(). При порождении процессу присваивается числовая характеристика –идентификатор.
Если процессу требуется назвать другой процесс, например, при посылке ему сигнала, он указывает идентификатор требуемого процесса. Другого способа именования процессов в системе нет.
2). Аналогичным способом именуются файлы:
при создании файлу присваивается индекс;
при открытии файл получает номер дескриптора.
Подобное динамическое именование – часть общей стратегии виртуализациивUnix. В результате реализации этой стратегии прикладные программыстановятся болеенезависимымиот конкретных объектов, с которыми они работают.
3). В Unixтакже принято следующее техническое решение: большиемассивы данных рассматриваются какфайлы. Такой подход, замедляющий работу программы, нуждается в некоторых оптимизирующих приемах:
с точки зрения ядра системы все файлы рассматриваются как бесструктурныеодномерные массивы байтов с прямым доступом;
обмен с магнитными носителями подвергается тотальной системной буферизации. Часто используемые блоки оседают в буфере (КЭШе), что уменьшает число обращений к дискам и позволяет повысить реактивность операционной системы.
2.4. Современные версии Unix
Почти сразу после рождения Unixраскололся на две ветви:
прародительская ветвь, которой владела UnixSystemLaboratory(фактически коммерческая ветвь);
проект исследовательского института Беркли – ветвь в основном свободных (беcплатных)Unix’ов.
Особенности и различия этих ветвей прослеживаются и в современных реализациях Unix. Ниже в таблице приведены основные современные реализацииUnixи указана принадлежность той или иной реализации к определенной ветви.
Ветви Unix | |
ATT |
BSD |
Solaris 2.0 (Sun) UnixWare (Novell) IRIX (Silicon Graphics) SCO (Santa Cruz Operations) HP-UX (Hewlett Packard) |
SunOS или Solaris 1.x BSD/OS OSF/1 Ultrix Linux |
Основное отличие различных реализаций Unixсостоит в том, как проводится начальная загрузка системы (этот вопрос рассматривается во второй части курса). В остальном различия реализацийUnixможно считать несущественными.
2.5. Архитектура ос Unix
Рис. 2.1. Модель системыUnix
Ядро непосредственно взаимодействует с аппаратной частью компьютера, изолируя прикладные программы от особенностей её архитектуры.
Ядро имеет набор услуг, предоставляемых прикладным программам:
ввод/вывод;
создание и управление процессами, их синхронизация и межпроцессное взаимодействие.
Все приложения запрашивают услуги ядра посредством «системных вызовов».
Второй (после ядра) уровень составляют приложения или задачи, как системные, определяющие функциональность системы, так и прикладные, обеспечивающие пользовательский интерфейс Unix. Несмотря на внешнюю разнородность приложений, схемы их взаимодействия с ядром одинаковы.