
- •Операционная система unix
- •Основные функции и компоненты ядра ос unix
- •Интерфейс пользователя
- •Привилегированный пользователь
- •Программы
- •Команды
- •Процессы
- •Перенаправление ввода/вывода
- •Ядро ос unix
- •Общая организация традиционного ядра ос unix
- •Основные функции
- •Принципы взаимодействия с ядром
- •Принципы обработки прерываний
- •Файловая система
- •Структура файловой системы
- •Монтируемые файловые системы
- •Интерфейс с файловой системой
- •Файлы-каталоги
- •Специальные файлы
- •Связывание файлов с разными именами
- •Именованные программные каналы
- •Файлы, отображаемые в виртуальную память
- •Синхронизация при параллельном доступе к файлам
- •Принципы защиты
- •Идентификаторы пользователя и группы пользователей
- •Защита файлов
- •Драйверы устройств
- •Внешний и внутренний интерфейсы устройств
- •Стек протоколов tcp/ip
- •Программные гнезда (Sockets)
- •Вызовы удаленных процедур (rpc)
- •Основные функции и компоненты ядра ос unix
- •Управление процессами и нитями
- •Пользовательская и ядерная составляющие процессов
- •Принципы организации многопользовательского режима
- •Традиционный механизм управления процессами на уровне пользователя
- •Понятие нити (threads)
- •Подходы к организации нитей и управлению ими в разных вариантах ос unix
- •Управление вводом/выводом
- •Принципы системной буферизации ввода/вывода
- •Системные вызовы для управления вводом/выводом
- •Блочные драйверы
- •Символьные драйверы
- •Потоковые драйверы
- •Взаимодействие процессов
- •Разделяемая память
- •Семафоры
- •Очереди сообщений
- •Программные каналы
- •Программные гнезда (sockets)
- •Потоки (streams)
- •Мобильное программирование в среде ос unix
- •Библиотека ввода/вывода
- •Дополнительные библиотеки
- •Файлы заголовков
- •Неуточняемое поведение
- •Неопределенное поведение
- •Поведение, зависящее от реализации
- •Метрические ограничения переносимой программы
- •Обеспечение независимости от особенностей версии ос unix
- •Бинарная совместимость
- •Возможности достижения бинарной совместимости
- •Преимущества и ограничения
- •Традиционные средства интерактивного интерфейса пользователей
- •Командные языки и командные интерпретаторы
- •Общая характеристика командных языков
- •Базовые возможности семейства командных интерпретаторов
- •Программирование на командном языке
Операционная система unix
Данное учебное пособие представляет собой информационно-аналитические материалы Центра Информационных Технологий Автор: С. Д. Кузнецов
Основание и история
Проект операционной системы Multics: неудача с положительными последствиями
Возникновение и первая редакция ОС UNIX
Исследовательский UNIX
Первый перенос ОС UNIX
Седьмая редакция
Возникновение группы университета г. Беркли (BSD)
UNIX System III и первые коммерческие версии системы
AT&T System V Release 2 и Release 3
Основные понятия ОС UNIX и базовые системные вызовы
Основные понятия
Пользователь
Интерфейс пользователя
Привилегированный пользователь
Программы
Команды
Процессы
Перенаправление ввода/вывода
Ядро ОС UNIX
Общая организация традиционного ядра ОС UNIX
Основные функции
Принципы взаимодействия с ядром
Принципы обработки прерываний
Файловая система
Структура файловой системы
Монтируемые файловые системы
Интерфейс с файловой системой
Разновидности файлов
Обычные файлы
Файлы-каталоги
Специальные файлы
Связывание файлов с разными именами
Именованные программные каналы
Файлы, отображаемые в виртуальную память
Синхронизация при параллельном доступе к файлам
Принципы защиты
Идентификаторы пользователя и группы пользователей
Защита файлов
Управление устройствами
Устройство как специальный файл
Драйверы устройств
Внешний и внутренний интерфейсы устройств
Базовые механизмы сетевых взаимодействий
Потоки (Streams)
Стек протоколов TCP/IP
Программные гнезда (Sockets)
Вызовы удаленных процедур (RPC)
Распределенные файловые системы
Сетевая файловая система (NFS)
Совместное использование удаленных файлов (RFS)
Основные функции и компоненты ядра ос unix
Управление памятью
Виртуальная память
Аппаратно-независимый уровень управления памятью
Страничное замещение основной памяти и swapping
Управление процессами и нитями
Пользовательская и ядерная составляющие процессов
Принципы организации многопользовательского режима
Традиционный механизм управления процессами на уровне пользователя
Понятие нити (threads)
Подходы к организации нитей и управлению ими в разных вариантах ОС UNIX
Управление вводом/выводом
Принципы системной буферизации ввода/вывода
Системные вызовы для управления вводом/выводом
Блочные драйверы
Символьные драйверы
Потоковые драйверы
Взаимодействие процессов
Разделяемая память
Семафоры
Очереди сообщений
Программные каналы
Программные гнезда (sockets)
Потоки (streams)
Мобильное программирование в среде ОС UNIX
Стандартные библиотеки
Библиотека системных вызовов
Библиотека ввода/вывода
Дополнительные библиотеки
Файлы заголовков
Мобильность на уровне исходных текстов
Особенности мобильного программирования на языке Си
Обеспечение независимости от особенностей версии ОС UNIX
Бинарная совместимость
Возможности достижения бинарной совместимости
Преимущества и ограничения
Традиционные средства интерактивного интерфейса пользователей
Командные языки и командные интерпретаторы
Общая характеристика командных языков
Базовые возможности семейства командных интерпретаторов
Bourne-shell
C-shell
Korn-shell
Команды и утилиты
Организация команды в ОС UNIX
Перенаправление ввода/вывода и организация конвейера
Встроенные, библиотечные и пользовательские команды
Программирование на командном языке
Основные понятия
Одним из достоинств ОС UNIX является то, что система базируется на небольшом числе интуитивно ясных понятий. Однако, несмотря на простоту этих понятий, к ним нужно привыкнуть. Без этого невозможно понять существо ОС UNIX.
Пользователь
С самого начала ОС UNIX замышлялась как интерактивная система. Другими словами, UNIX предназначен для терминальной работы. Чтобы начать работать, человек должен "войти" в систему, введя со свободного терминала свое учетное имя (account name) и, возможно, пароль (password). Человек, зарегистрированный в учетных файлах системы, и, следовательно, имеющий учетное имя, называется зарегистрированным пользователем системы. Регистрацию новых пользователей обычно выполняет администратор системы. Пользователь не может изменить свое учетное имя, но может установить и/или изменить свой пароль. Пароли хранятся в отдельном файле в закодированном виде. Не забывайте свой пароль, снова узнать его не поможет даже администратор!
Все пользователи ОС UNIX явно или неявно работают с файлами. Файловая система ОС UNIX имеет древовидную структуру. Промежуточными узлами дерева являются каталоги со ссылками на другие каталоги или файлы, а листья дерева соответствуют файлам или пустым каталогам. Каждому зарегистрированному пользователю соответствует некоторый каталог файловой системы, который называется "домашним" (home) каталогом пользователя. При входе в систему пользователь получает неограниченный доступ к своему домашнему каталогу и всем каталогам и файлам, содержащимся в нем. Пользователь может создавать, удалять и модифицировать каталоги и файлы, содержащиеся в домашнем каталоге. Потенциально возможен доступ и ко всем другим файлам, однако он может быть ограничен, если пользователь не имеет достаточных привилегий.