Архитектура UNIX

Автор работы: Пользователь скрыл имя, 05 Февраля 2013 в 17:15, реферат

Описание

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

Содержание

1. Особенности архитектуры UNIX
2. Архитектура операционной системы UNIX
3. Ядро UNIX
4. Файловая система UNIX
5. Виртуальная файловая система
6. Дерево каталогов
7. Устройства и драйверы
Резюме
Литература

Работа состоит из  1 файл

Архитектура UNIX.docx

— 362.51 Кб (Скачать документ)

Содержание

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

2. Архитектура операционной  системы UNIX

3. Ядро UNIX

4. Файловая система UNIX

5. Виртуальная файловая  система

6. Дерево каталогов

7. Устройства и драйверы

Резюме

Литература

 

 

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

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

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

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

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

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

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

 

2. Архитектура  операционной системы UNIX

Самый общий взгляд на архитектуру UNIX позволяет увидеть двухуровневую модель системы, состоящую из пользовательской и системной части (ядра) (Рисунок 1.2 ). Ядро непосредственно взаимодействует с аппаратной частью компьютера, изолируя прикладные программы (процессы в пользовательской части операционной системы) от особенностей ее архитектуры. Ядро имеет набор услуг, предоставляемых прикладным программам посредством системных вызовов. Таким образом, в системе можно выделить два уровня привилегий: уровень системы (привилегии специального пользователя root) и уровень пользователя (привилегии всех остальных пользователей).

Рисунок 1.2. Архитектура операционной системы UNIX

Важную часть системных  программ составляют демоны. Демон — это процесс, выполняющий определенную функцию в системе, который запускается при старте системы и не связан ни с одним пользовательским терминалом. Демоны предоставляют пользователям определенные сервисы, примерами которых могут служить системный журнал, веб-сервер и т. п. Аналогом демонов в операционной системе Windows NT и более поздних версиях являются системные службы.

 

 

3. Ядро UNIX

Операционная система UNIX обладает классическим монолитным ядром, в котором можно выделить следующие  основные части:

  • Файловая подсистема
  • Доступ к структурам ядра осуществляется через файловый интерфейс.
  • Управление процессами. Сюда входит управление параллельным выполнением процессов (планирование и диспетчеризация), виртуальной памятью процесса и взаимодействием между процессами (сигналы, очереди сообщений и т. п.).
  • Драйверы устройств. Драйверы устройств делятся на символьные и блочные по типу внешнего устройства. Для каждого из устройств определен набор возможных операций (открытие, чтение и т. д.). Блочные устройства кэшируются с помощью специального внутреннего механизма управления буферами. Подробнее об этом сказано в разделе «Устройства и драйверы».

Рисунок 1.3. Ядро операционной системы UNIX

 

Благодаря тому, что в UNIX аппаратно-независимая часть отделена явно, операционные системы этого  семейства могут быть с минимальными затратами перенесены на новые аппаратные платформы.

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

 

 

4. Файловая система UNIX

Термин файловая система по историческим причинам обозначает одновременно и иерархию каталогов и файлов, и часть ядра, управляющую доступом к каталогам и файлам.

Особенности файловой системы. Организация файловой системы в первом значении этого термина означает рассмотрение структур, в которые могут быть организованы файлы на носителях данных. Существует несколько видов таких структур: линейные, древовидные, объектные и другие, но в настоящее время широко распространены только древовидные структуры.

Каждый файл в древовидной  структуре расположен в определенном хранилище файлов — каталоге, каждый каталог, в свою очередь, также расположен в некотором каталоге. Таким образом, по принципу вложения элементов файловой системы (файлов и каталогов) друг в друга строится дерево, вершинами которого являются непустые каталоги, а листьями — файлы или пустые каталоги. Корень такого дерева имеет название корневой каталог и обозначается каким-либо специальным символом или группой символов (например, «/» в UNIX или «C:» в операционной системе Windows). Каждому файлу соответствует некоторое имя, определяющее его расположение в дереве файловой системы. Полное имя файла состоит из имен всех вершин дерева файловой системы, через которые можно пройти от корня до данного файла (каталога), записывая их слева направо и разделяя специальными символами-разделителями.

Рисунок 1.4. Индексная файловая система UNIX

 

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

  • для быстрого доступа к данным,
  • для обеспечения целостности данных при сбоях системы,
  • для простоты реализации, для компактного хранения данных, и т. д.

Файлы и каталоги имеют  несколько идентификаторов: помимо имён, с которыми обычно работают пользователи, каждому файлу соответствует  уникальный в рамках файловой системы  номер. Этот номер, называемый индексом файла, соответствует индексному узлу (i-node) — структуре на диске, в которой хранится служебная информация (так называемые «метаданные») о файле: расположение данных файла на диске, длина файла, владелец файла, права доступа и т. п. Таблица же связок типа «имя файла—i-node» — есть не что иное как содержимое каталогов.

Таким образом, каждый файл характеризуется одним i-node, но может быть связан с несколькими именами — в UNIX это называют жёсткими ссылками (см. Рисунок 1.5, «Пример жесткой ссылки»). При такой схеме физическое удаление данных файла с носителя происходит только тогда, когда удаляется последняя из существующих жёстких ссылок на этот файл.

Рисунок 1.5. Пример жесткой ссылки

 

Важной особенностью таких  файловых систем является то, что имена  файлов зависят от регистра, другими  словами файлы test.txt и TEST.txt отличаются (т. е. могут находиться в одном каталоге и быть при этом разными файлами).

В определенных блоках физического  носителя данных находится т. н. суперблок (см. рисунок Рисунок 1.4, «Индексная файловая система UNIX»). Местоположение суперблока на носителе определяется при создании файловой системы. Суперблок — это наиболее ответственная область файловой системы, содержащая информацию, необходимую для работы файловой системы в целом, а также — для её идентификации. В суперблоке находится «магическое число» — идентификатор файловой системы, отличающий её от других файловых систем, список свободных блоков, список свободных индексных узлов (i-node) и некоторая другая служебная информация.

Помимо каталогов и обычных файлов для хранения информации, ФС может содержать следующие виды файлов:

Специальный файл устройства

Обеспечивает доступ к  физическому устройству. При создании такого устройства указывается тип  устройства (блочное или символьное), старший номер — индекс драйвера в таблице драйверов операционной системы и младший номер — параметр, передаваемый драйверу, поддерживающему несколько устройств, для уточнения о каком «подустройстве» идет речь (например, о каком из нескольких IDE-устройств или COM-портов). Устройства рассматриваются в разделе «Устройства и драйверы».

Именованный канал

Используется для передачи данных между процессами, работает по принципу двунаправленной очереди (FIFO). Является одним из способов обмена данными между изолированными процессами.

Символьная ссылка

Особый тип файла, содержимое которого — не данные, а имя какого-либо другого файла (см. Рисунок 1.6, «Пример символьной ссылки»). Для пользователя, такой файл в большинстве ситуаций неотличим от того, на который он ссылается: операции чтения, записи и пр. над символьной ссылкой работают так, как если бы они производились непосредственно над тем файлом, на который указывает ссылка. Символьные ссылки могут указывать также и на каталог: в этом случае они «работают» как каталоги.

Символьная ссылка имеет  ряд преимуществ по сравнению  с жёсткой ссылкой: она может  использоваться для связи файлов в разных файловых системах (ведь номера индексных узлов уникальны только в рамках одной файловой системы). Кроме того, существование файла-ссылки совершенно независимо от существования того файла, на который он ссылается, поскольку в ссылке хранится только имя целевого файла, и нет никакой привязки к индексному узлу. Поэтому возможно удалять файл и ссылку независимо: причём в случае удаления целевого файла символьная ссылка продолжит существовать, но останется «битой», т. е. не позволяющей перейти, ни к какому файлу.

Рисунок 1.24. Пример символьной ссылки

 

Сокет предназначен для взаимодействия между процессами через специальное API, схожее с TCP/IP-сокетеми. Устроенные подобным образом файловые системы наследуют особенности оригинальной UNIX. К ним можно отнести, например: s5 (используемая в версиях UNIX System V), ufs (BSD UNIX), ext2, ext3, reiserfs (Linux), qnxfs (QNX). Все эти файловые системы различаются форматами внутренних структур, но совместимы с точки зрения основных концепций.

 

5. Виртуальная файловая система

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

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

Рисунок 1.7. Виртуальная файловая система

 

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

В мире стандартов UNIX определено, что корневой каталог единого  дерева файловой системы должен иметь  имя /, как и символ-разделитель при формировании полного имени файла. Тогда полное имя файла может быть, например, /usr/share/doc/bzip2/README. Задача VFS — по полному имени файла найти его местоположение в дереве файловой системы, определить её тип в этом месте дерева и «переключить», т. е. передать файл на дальнейшую обработку драйверу конкретной файловой системы. Такой подход позволяет использовать практически неограниченное количество различных файловых систем на одном компьютере под управлением одной операционной системы, а пользователь даже не будет знать, что файлы физически находятся на разных носителях информации.

 

6. Дерево каталогов

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

Использование общепринятых имен основных файлов и структуры  каталогов существенно облегчает  работу в операционной системе, её администрирование  и переносимость. Приведем краткое  описание основных каталогов системы, формально описываемых специальным  стандартом на иерархию файловой системы (Filesystem Hierarchy Standart). Стандарт регулирует не только и не столько имена основных каталогов системы, сколько типы размещаемых в них данных (исполняемые программы, библиотеки, файлы пользователя, временные системные данные и т. д.). Главный принцип, который соблюдается довольно последовательно — группировка однотипных данных в одной области файловой системы (каталоге верхнего уровня и его подкаталогах).

Например, все каталоги можно  разделить на две группы: для статических (редко меняющихся) данных — /bin, /usr и для динамических (часто меняющихся) данных — /var, /tmp. Исходя из этого администраторы могут разместить каждый из этих каталогов на собственном носителе, обладающем соответствующими характеристиками: скоростью доступа, объёмом, надёжностью и т. п.

Рисунок 1.8. Стандартные каталоги в файловой системе UNIX

 

 

Корневой каталог

Корневой каталог / является основой любой ФС UNIX. Все остальные каталоги и файлы располагаются в рамках структуры (дерева), порождённой корневым каталогом, независимо от их физического местонахождения.

/bin

В этом каталоге находятся  часто употребляемые команды  и утилиты системы общего пользования. Сюда входят все базовые команды, доступные даже в том случае, если была примонтирована только корневая файловая система. Примерами таких утилит являются: ls, cp, sh и т. п.

Информация о работе Архитектура UNIX