Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Novel, Unix, WindowsNT.doc
Скачиваний:
68
Добавлен:
05.04.2013
Размер:
2.71 Mб
Скачать

Базовые понятия ос unix.

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

С точки зрения процессов ядро - набор резидентных программ и структур данных. Для выполнения действий, связанных с использованием ресурсов системы задача вызывает процедуры ядра - системные процедуры.

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

Количество одновременно выполняющихся процессов определяется при генерации системы. Каждый процесс имеет свой уникальный идентификатор называемый PID (Process Identifier).

При начальной загрузке системы ядро копируется в память и запускает

0-й процесс называемый swapper, процесс распределения ресурсов в системе и после этого запускает

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

getty который в свою очередь выводит системное сообщение промптер - .

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

Файловая система UNIX характеризуется:

  • иерархической структурой,

  • согласованной обработкой массивов данных,

  • возможностью создания и удаления файлов,

  • динамическим расширением файлов,

  • защитой информации в файлах,

  • трактовкой периферийных устройств (таких как терминалы и ленточные устройства) как файлов.

Файловая система организована в виде дерева с одной исходной вершиной, которая называется корнем (записывается: “/”); каждая вершина в древовидной структуре файловой системы, кроме листьев, является каталогом файлов, а файлы, соответствующие дочерним вершинам, являются либо каталогами, либо обычными файлами, либо файлами устройств. Имени файла предшествует указание пути поиска, который описывает место расположения файла в иерархической структуре файловой системы. Имя пути поиска состоит из компонент, разделенных между собой наклонной чертой (/); каждая компонента представляет собой набор символов, составляющих имя вершины (файла), которое является уникальным для каталога (предыдущей компоненты), в котором оно содержится. Полное имя пути поиска начинается с указания наклонной черты и идентифицирует файл (вершину), поиск которого ведется от корневой вершины дерева файловой системы с обходом тех ветвей дерева файлов, которые соответствуют именам отдельных компонент.

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

Файловая система UNIXблизка к индексной с последовательным доступом (ISAM Indexed Sequential Access Method), которая может быть установлена дополнительно.Такой метод в последние годы получил право стандарта какX/Open стандарт для Си интерфейса

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

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

Каждая файловая система имеет четыре основные части:

  • Загрузочный блок - самый первый блок диска( блок 0), зарезервированный для системной загрузочной информации Блок загрузки располагается в начале пространства, отведенного под файловую систему, обычно в первом секторе, и содержит программу начальной загрузки, которая считывается в машину при загрузке или инициализации операционной системы. Хотя для запуска системы требуется только один блок загрузки, каждая файловая система имеет свой (пусть даже пустой) блок загрузки.;

  • Суперблок - первый блок собственно файловой системы, содержащий все основные данные о файловой системе на конкретном носителе (размещение, список свободных узлов и блоков и др.). Суперблок содержит: размер диска в блоках, имя файловой системы, число блоков, записанных в i-узлах, имя тома, времена последнего изменения и последнего копирования ссылку на список свободных блоков и ссылку на список свободных индексных узлов ;

  • индексные (i) - узлы последовательность блоков, расположенная за супер блоком, каждый из которых содержит ссылки на просто блоки. Для каждого каталога, файла или файловой системы определен ровно один индексный узел Ядро операционной системы обращается к индексам, используя указатели в списке индексов. Один из индексов является корневым индексом файловой системы: это индекс, по которому осуществляется доступ к структуре каталогов файловой системы после выполнения системной операции mount;

  • информационные блоки занимают оставшееся пространство диска. В блоках находится действительное содержание каталогов. Отдельно взятый информационный блок может принадлежать одному и только одному файлу в файловой системе.

Каждый файл и\или каталог в такой файловой системе представлен некоторым i-узлом (индексным узлом), содержащим указатели на блоки, образующие файл. В индексном узле содержится информация о правах доступа к файлу, число ссылок на файл из каталога и другие учетные данные.

Каждый индексный узел содержит nуказателей, причем первыеn-3непосредственно ссылаются на блоки данных файла а так как размер блока в файловой системеUNIXопределен в 512 байт, то для организации файла длиной больше чем(n-3)*512байт используетсяn-2-й указатель -узла, ссылающийся на косвенный индексный блок изnссылок(указателей)на блоки данных если и этого недостаточно для размещения файла то используется и указательn-1индексного узла как указатель на второй косвенный блок. Если же и этого недостаточно то используется последнийn-й указатель на третий косвенный блок. В косвенных блоках возможна такая же система индексной адресации, но без дополнительных косвенных ссылочный блоков, то есть указатели могут быть направлены только на блоки данных.

Примечание: В разных системах UNIX разрешены разные размеры индексных блоков, и таким образом разные UNIX системы могут иметь несовместимые файловые системы.

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

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

Каталоги похожи на обычные файлы в одном отношении; система представляетинформацию в каталоге набором байтов, но эта информация включает в себя имена файлов в каталоге в объявленном формате для того, чтобы операционная система и программы, такие как ls (выводит список имен и атрибутов файлов),могли их обнаружить.

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

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

Обратный процесс называется де монтированием и осуществляется с помощью команды umount/

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

Поскольку для каждого устройства в системе должен существовать некоторый образ, называемый в UNIXспециальным файлом, то все специальные файлы принято размещать в каталоге/dev. Связь между такими специальными файлами и системой осуществляется с помощью программных модулей называемых драйверами. Каждое добавление устройства в систему требует и добавления специального файла описания в систему сопровождаемое специальной командой добавления специального узлаmknod.

Характерной чертой файловой системы UNIX является проблема восстановления файловой системы. Эта проблема возникает от того, что при некоторых ситуациях возможно нарушения адресации в индексных узлах с появлением висячих ссылок, не адресуемых блоков(вне файловой системы) и наоборот блоков с множественными ссылками, а также дублирование индексации блока в списке свободных и занятых блоков. Устранение таких сбоем ограниченно возможно путем длительного тестирования файловой системы программойfsck.

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