- •4 Курс, 1 семестр
- •Оглавление
- •1 Введение в ос unix
- •1.1 История создания
- •1.2 Базовые концепции
- •1.3 Архитектура unix
- •1.4 Пользователи системы
- •1.5 Пользовательская среда Unix.
- •2 Файловая подсистема
- •2.1 Понятие
- •2.2 Логическая структура файловой системы
- •2.3 Имена файлов в ос unix
- •2.4 Типы файлов
- •2.5 Права доступа к файлам
- •2.6 Физическое размещение файловой системы
- •2.7 Особенности размещения файловой системы sVfs
- •2.8 Особенности размещения файловой системы ffs (ufs)
- •2.9 Монтирование файловых систем
- •2.10 Восстановление файловой системы
- •2.11 Типы файловых систем unix
- •3 Подсистема управления процессами
- •3.1 Понятие процесса
- •3.2 Логическая организация процессов
- •3.3 Жизненный цикл процесса
- •3.4 Реализация процессов
- •3.4.1 Состав процесса
- •3.4.2 Структуры управления процессом
- •3.4.3 Файловая система /proc
- •3.5 Нити (потоки)
- •Причины появления нитей
- •Типы нитей
- •3) Прикладные нити. Существует возможности поддержки нитей полностью на прикладном уровне, при этом ядру об их существовании ничего не известно.
- •3.5 Планирование
- •3.5.1 Задачи планировщика
- •3.5.2 Приоритеты процессов
- •3.5.3 Реализация планировщика
- •3.5.4 Расчет приоритета
- •3.5.5 Особенности планирования в Linux
- •3.6 Взаимодействие между процессами (Interprocess Communication, ipc)
- •3.6.1 Введение
- •3.6.2 Взаимодействие родственных процессов
- •3.6.3 Взаимодействие произвольных процессов
- •Разделяемая память.
- •Передача сообщений.
- •Семафоры.
- •3.6.4 Межпроцессное взаимодействие с помощью файловой системы
- •4 Управление памятью
- •4.1 Понятие виртуальной памяти
- •4.2 Свопинг
- •4.3 Страничное замещение
- •4.4 Стратегия замещения страниц
- •5 Подсистема ввода-вывода
- •5.1 Основные задачи
- •5.2 Типы устройств ввода-вывода в ос
- •5.3 Общая схема
- •5.4 Драйвера
- •5.5 Буферизация
- •5.6 Поддержка операций ввода-вывода
- •6 Unix в сетях
- •6.1 Конфигурация tcp/ip
- •6.2 Основные сетевые утилиты
- •6.3 Основные сетевые интерфейсы
- •6.4 Доступ к сетевым ресурсам
- •6.5 Сетевые службы Unix
1.5 Пользовательская среда Unix.
Интерфейс с ОС осуществляется с помощью специальной программы, которая называется командным интерпретатором. (или оболочкой).
Интерпретатор является обычным процессом.
Это первая программа, с которой начинается работа пользователя.Основная инициализация ОС происходит в результате выполнения скриптов shell
Существуют несколько ком. интерпретаторов.
Sh (Bourn shell) Первоначальный к/и. Разработан Стивеном Борном в середине 70-х годов. Csh(c-shell). Разработана Биллом Джоем из Калифорнийского университета. Отличается улучшенными диалоговыми возможностями, способом присваивания и экспортирования переменных в среду, управляющими конструкциями и рядом других моментов; тоже поддерживает историю и редактирование командной строки Плохо поддерживает перенаправление ввода/вывода, мало пригодна для создания сложных сценариев.
Kshell(korn shell)Написана Дэвидом Корном (AT&T). Совместима с shell, но включает в себя многие средства cshell (поддержку псевдонимов, история команд, редактирование)
Bash (Bourne another shell) Произведена Free Software Foundation.
Свободно распространяемый в виде исходных текстов интерпретатор, называемый, объединяющий все лучшее из остальных интерпретаторов с удобными возможностями редактирования командной строки и работы с историей команд. В настоящее время - фактический стандарт.
Возможности соответствуют возможностям kshell, но распространяется бесплатно.
Tcsh (Tom c shell) Совместима с csh, но в ней устранены ошибки и усовершенствован интерфейс.
Сценарий работы
В ОС Unix реализуется следующий сценарий работы в системе
- при включении терминала активизируется процесс getty, который является сервером терминального доступа и запускает программу login, которая в свою очередь запрашивает у пользователя имя и пароль
- если пользователь зарегистрирован и ввел правильный пароль, login запускает программу, которая указана в последнем поле записи пользователя в файле /etc/passwd, т.е командный интерпретатор.
- командный интерпретатор выполняет командный файл инициализации и выдает на терминал пользователя приглашение. С этого момента пользователь может вводить команды
- командный интерпретатор считывает команды, выполняет действие или сообщает об ошибке
- по окончанию работы пользователь завершает работу, вводя команду exit.
Файл инициализации
Файл инициализации выполняет следующие функции
- устанавливает путь поиска программы
- инициализирует терминал
- определяет расположение почтового ящика
Командная строка
Запускаемые команды могут являться либо функциями, определенными пользователем, либо встроенными командами интерпретатора, либо исполняемыми файлами – прикладными программами и утилитами. В любом случае, синтаксис их вызова одинаков.
Общий вид командной строки
<имя команды> <опции> <аргументы>
Прежде чем выполнить команду интерпретатор выполняет следующие действия
- анализирует синтаксис и если обнаружена ошибка, выдает сообщение
- выполняет подстановки: заменяет все указанные имена переменных их значениями, формирует списки файлов, заменяя шаблоны
- делает соответствующие перенаправления ввода/вывода
- передает команде аргументы и выполняет ее.
Последовательность команд можно объединить в одном файле и выполнять его как обыкновенную команду. Такой файл будет называться сценарием командного процессора.