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

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

Описание

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

Содержание

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

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

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

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

/boot

Каталог содержит всё необходимое  для процесса загрузки операционной системы: программу-загрузчик, образ ядра операционной системы и т. п.

/dev

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

/etc

В этом каталоге находятся  системные конфигурационные файлы. В качестве примеров можно привести файлы /etc/fstab, содержащий список монтируемых файловых систем, и /etc/resolv.conf, который задаёт правила составления локальных DNS-запросов. Среди наиболее важных файлов — скрипты инициализации и останова системы. В системах, наследующих особенности UNIX System V, для них отведены каталоги с /etc/rc0.d по /etc/rc6.d и общий для всех файл описания — /etc/inittab.

/home (необязательно)

Каталог содержит домашние каталоги пользователей. Его наличие  в корневом каталоге не обязательно, а содержимое зависит от особенностей конкретной UNIX-подобной операционной системы.

/lib

Каталог для статических  и динамических библиотек, необходимых  для запуска программ, находящихся  в каталогах /bin и /sbin.

/media

Стандартный каталог для  временного монтирования файловых систем — например, гибких и флэш-дисков, компакт-дисков и т. п.

/opt

Каталог для дополнительного  программного обеспечения, устанавливаемого в системе. Обычно в этот каталог  устанавливаются программы, не входящие в основной дистрибутив.

/root (необязательно)

Домашний каталог суперпользователя. Его наличие в корневом каталоге не обязательно.

/sbin

В этом каталоге находятся  команды и утилиты для системного администратора. Примерами таких  команд являются: route, halt, init и т. п. Для аналогичных целей применяются каталоги /usr/sbin и /usr/local/sbin.

/usr

Этот каталог повторяет  структуру корневого каталога — содержит каталоги /usr/bin, /usr/lib, /usr/sbin, служащие для аналогичных целей.

Каталог /usr/include содержит заголовочные файлы языка C для всевозможных библиотек, расположенных в системе.

Каталог /usr/local — ещё один уровень, в котором можно полностью воспроизвести структуру данных, содержащуюся в корневом каталоге. Обычно этот каталог служит для размещения программ, установленных администратором в дополнение к стандартной поставке операционной системы.

Каталог /usr/share хранит неизменяющиеся данные для установленных программ. Особый интерес представляет каталог /usr/share/doc, в который добавляется документация ко всем установленным программам.

/var, /tmp

Используются для хранения временных данных системных (/var) и пользовательских (/tmp) процессов. Каталог /var обычно содержит часто изменяемые системные файлы, например в каталоге /var/log размещаются системные журналы.

 

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

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

Сами внешние устройства по типу доступа к ним могут  быть классифицированы несколькими способами:

  • символьные — чтение и запись данных производится побайтно (например, COM-порт);
  • блочные — чтение и запись данных производится блоками (например, секторами в жестком диске);
  • последовательного доступа — читать и записывать данные можно только последовательно (например, коммуникационные каналы);
  • произвольного доступа — возможно обращение к данным по индексу (диски);
  • синхронные — передают данные только по команде (например, принтер);
  • асинхронные — могут передавать данные без предварительного указания (например, сетевая карта).

Для работы с каждым из обозначенных видов устройств нужна соответствующая подпрограмма в ядре — только она знает, каким образом пользовательские данные конвертируются в сигналы шины и наоборот. Такая подпрограмма ядра (оформляемая обычно в виде модуля) называется драйвером. В UNIX можно выделить несколько групп устройств (и соответствующих драйверов), основные из них: блочные устройства (блочные, произвольного доступа), символьные устройства (символьные, последовательного доступа),сетевые устройства (блочные, последовательного доступа, асинхронные). Интересная особенность блочных утройств состоит в том, что при обращении к ним может использоваться буфер, в котором кэшируются данные последних запросов. Сетевые устройства представлены в системе в виде сетевых интерфейсов, которые будут рассмотрены в разделе «Сетевой интерфейс в UNIX».

В операционной системе UNIX большинство  внешних устройств доступно пользовательским программам в виде специальных файлов. Эти файлы могут быть, соответственно, двух типов — символьные и блочные. Традиционно, все файлы устройств располагаются в каталоге /dev и имеют имена, соответствующие назначению устройства. Например, в операционной системе Linux устройства терминала обозначаются как /dev/tty0, /dev/tty2 и т. д. с увеличением порядкового номера, жёсткий диск — /dev/sda, а порт PS/2 —/dev/psaux. Названия однотипных устройств обычно отличаются целым числом. Программы могут открывать, читать и записывать данные в файлы устройств как в обычные файлы, при этом операционная система транслирует пользовательские запросы драйверу соответствующего устройства.

Рисунок 1.9. Взаимодействие с устройством через файл

 

Таким образом, файл устройства является одним из интерфейсов взаимодействия процессов с устройствами. Каждый файл устройства имеет два номера — старший и младший. По этим номерам операционная система определяет, какой драйвер должен использоваться при обращении к этому файлу.

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

Помимо файлов, соответствующих  внешним устройствам, в UNIX есть несколько  стандартных файлов виртуальных  устройств. Эти файлы могут передавать и принимать от пользовательских процессов специальные данные, например, из символьного устройства /dev/zero можно прочитать только нули, сколько бы процесс не читал данные из этого файла. Вот список наиболее распространённых виртуальных устройств:

/dev/console

устройство соответствует  активной в данный момент терминальной линии (виртуальной консоли);

/dev/null

«чёрная дыра» — любая информация, записанная в этот файл, пропадает безвозвратно, обычно используется для поглощения ненужного вывода программ;

/dev/random и /dev/urandom

устройства, генерирующие соответственно случайные и псевдослучайные  данные;

/dev/stdin, /dev/stdout и /dev/stderr

устройства, соответствующие  трём стандартным потокам ввода-вывода для каждого из процессов системы;

/dev/zero

устройство генерирует нули — из этого устройства можно прочитать сколько угодно нулевых байт.

 

 

Резюме

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

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

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

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

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

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

 

 

Литература

  1. Бах Дж. М. Архитектура операционной системы UNIX. — http://www.opennet.ru/docs/RUS/unix/
  2. Курячий Г. В. Операционная система UNIX. — М.: Интуит.Ру, 2004. — 292 с.: ил.
  3. Робачевский А. М. Операционная система UNIX. — СПб.: БХВ-Петербург, 2002. — 528 с.: ил.
  4. Стандарт на файловую систему. — http://www.pathname.com/fhs/
  5. Максвелл С. Ядро Linux в комментариях. — К.: Издательство «Диа-Софт», 2000. — 488 с.: ил.

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