Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 1-8 / ОС_05.doc
Скачиваний:
118
Добавлен:
04.04.2013
Размер:
98.82 Кб
Скачать

2.6. Архитектура ядра Unix

Рис. 2.2. Внутренняя структура ядраUnix

Ядро состоит из трёх основных подсистем:

  • Файловая подсистема;

  • Подсистема управления процессами и памятью;

  • Подсистема ввода/вывода.

  1. Файловая подсистема:

  • Обеспечивает унифицированный интерфейс доступа к данным, расположенным на дисках и к периферийным устройствам;

  • Контролирует права доступа к файлу;

  • Обеспечивает перенаправление запросов, адресованных периферийным устройствам, соответствующим модулям подсистемы ввода/вывода.

  1. Подсистема управления процессами

Запущенная на выполнение программа порождает в системе один или более процессов(илизадач).

Подсистема управления процессами контролирует:

  • Создание и удаление процессов;

  • Распределение системных ресурсов (памяти, вычислительных процессов) между процессами;

  • Синхронизация процессов;

  • Межпроцессные взаимодействия.

  1. Подсистема ввода/вывода.

Выполняет запросы файловой подсистемы и подсистемы управления процессами для доступа к периферийным устройствам.

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

2.7. Основные понятия ос Unix

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

Пользователь– тот, кто имеет имя, пароль и ряд других атрибутов. В ОСUnixпользователь не обязательно должен быть человеком. Это объект, обладающий определенными правами, который может запускать на выполнение программы и владеть файлами. Примером такого пользователя может быть удаленный компьютер. Такие пользователи называютсяпсевдопользователями.

Каждый пользователь системы имеет уникальное имя (или регистрационное имя – “loginname”). Однако внутри себя система различает пользователей по ассоциированному с именем идентификатору пользователя (UID–useridentifier).

Пользователь является членом одной или нескольких групп, которые объединяют пользователей, имеющих сходные задачи (например, работающих над одним проектом). Принадлежность к группе определяет дополнительные права, которыми обладают все пользователи группы. Каждая группа имеет уникальное имя. Внутренним представлением группы является её идентификатор (GID – group identifier).

В конечном счёте UID и GID определяют какими правами обладает пользователь в системе.

Привилегированный пользователь("суперпользователь") обладает всеми возможными правами в системе (обычно это администратор системы).

Атрибуты пользователя. Все атрибуты пользователя хранятся в файле /etc/passwd. Однако во многих системах информация о пользователе хранится в нескольких файлах (например, в специальных базах данных), поэтому создание новых записей о пользователях, как правило, производится специальными утилитами.

Строка учетной информации о пользователе (так называемая учетная карточка) имеет следующий формат:

name:passwd_encod:UID:GID:comments:home_dir: shell

В качестве разделителей полей в учетной карточке используется символ двоеточия ':'. Ниже приведены описания полей в учетной карточке пользователя.

name

учетное (регистрационное) имя пользователя - задается администратором системы

passwd_encod

закодированный пароль. В современных версиях Unixхранится в другом файле

UID

числовой идентификатор пользователя

GID

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

comments

произвольная информация о пользователе

home_dir

начальный (домашний каталог) пользователя, в котором пользователь оказывается после входа в систему

shell

имя интерпретатора команд, который будет запущен при входе пользователя в систему

Вход в систему. Для входа в систему (непосредственно с консольного терминала или при помощи средств удаленного входа, например,telnet)необходимо ввести регистрационное имя пользователя (в поле "Login")и пароль (в поле "Password").

Регистрационное имя и пароль "выдается" администратором системы.

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

Интерпретатор команд Unix. Все современные системыUnixпоставляются по крайней мере с тремя командными интерпретаторами:

  • Bourn Shell (/bin/sh);

  • C shell (/bin/csh);

  • Korn shell (/bin/ksh).

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

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

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

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

Формат команд.Синтаксис команд можно представить следующим образом:

command [-f] [-a flag_parameter] [parameter]

Команда начинается сназвания -command.

За названием могут следовать флаги,параметры флаговипараметры, которые называются аргументами.

Аргумент, состоящий из знака минус '-', за которым следует одна буква, называется флагом. Флаги обычно задают режим работы команды.

За некоторыми флагами могут следовать аргументы, относящиеся только к этому флагу (flag_parameter). Такие аргументы называются параметрами флагов.

Аргументы, задаваемые после последнего флага и параметры флага, называются параметрами. Обычно они задают объекты для обработки.

Приведем несколько правил (не все), которым следуют разработчики новых команд:

  1. длина имени команды должна составлять от двух до девяти символов;

  2. имя команды записывается только строчными (малыми) буквами и цифрами;

  3. флаги должны состоять из одного символа;

  4. флаги разделяются символом '-';

  5. флаги без параметров флагов могут группироваться за одним разделителем '-';

  6. все флаги должны быть перечислены до параметров в командной строке;

  7. порядок флагов не является существенным.

Пример_1: %ls-l/bin

lsимя команды (вывод содержимого каталога);

-lфлаг (задает вывод расширенной информации о файлах);

/binобъект обработки (имя каталога).

Пример_2:%ls-la/bin

-laфлагиlиaсгруппированы в одно слово.

Пример_3: %cc -o begin prog.c

ccимя команды (запуск компилятора языка Си);

-obeginфлаг-oзадает запись окончательных результатов трансляции в файлbegin(по умолчанию запись производится в файлa.out);

prog.cобъект обработки (исходный модуль на языке Си).

Порождение имен файлов. Интерпретатор командного языка анализирует каждое слово команды и ищет метасимволы ('*', '?', '['). Если хотя бы один их этих метасимволов найден, то слово считается шаблоном. Интерпретатор командного языка ищет имена файлов, удовлетворяющих этому шаблону, и заменяет исходное слово лексикографически упорядоченной последовательностью найденных имен, разделенных пробелами.

Правила подстановки:

* любая последовательность символов, в том числе, пустая;

? любой одиночный символ;

[…] соответствует любому одиночному символу из тех, которые указаны в квадратных скобках. Пара символов, разделенных символом '-' (например, [a-d]), соответствует одиночному символу, код которого попадает в диапазон между кодами указанных символов, включая их самих.

Стиль общения с системой. При работе в системеUnixнеобходимо иметь ввиду следующее:

  1. Unixразличает большие и малые буквы.

  2. если уничтожен какой-либо файл, то проблем с его восстановлением не будет, так как восстановить уничтоженный файл невозможно.

Соседние файлы в папке Лекции 1-8