
- •История создания unix систем. Мультиплатформенность. Пперечень реализаций ос и в чем их отличие.
- •Возникновение и первая редакция ос unix
- •Исследовательский unix
- •Первый перенос ос unix
- •Седьмая редакция
- •Возникновение группы университета г. Беркли (bsd)
- •Unix System III и первые коммерческие версии системы
- •Основные понятия многопользовательской ос
- •Пользователь
- •Интерфейс пользователя
- •Привилегированный пользователь
- •Программы
- •Команды
- •Процессы
- •Перенаправление ввода/вывода
- •Основные сведения для пользователей Unix
- •Терминал
- •Состав программного обеспечения на примере System V версии 4.0
- •Базовая операционная система
- •Дополнительные пакеты программ
- •Структура ядра операционной системы и функции ядра операционной системы Ядро ос unix
- •Общая организация традиционного ядра ос unix
- •Функции операционной системы
- •Предполагаемая аппаратная среда
- •Прерывания и особые ситуации
- •Уровни прерывания процессора
- •Распределение памяти
- •Структура системы
- •Среда выполнения процессов
- •Специальные символы shell-переменных
- •Специальные символы shell-операторов
- •Команды ос unix
- •Регистрационный каталог" пользователя
- •Общее файловое дерево
- •Первый слой файловой системы
- •Второй слой
- •Символические каналы связи
- •Имя пути
- •Полное имя пути
- •Родственное имя пути
- •Правила именования справочников и файлов
- •Дополнительная информация по файловой системе
- •Перечень специальных символов
- •Минимальный набор команд
- •Организация справочника/каталога
- •Команда mkdir - создать справочник/каталог
- •Команда ls - напечатать содержимое справочника/каталога
- •Часто используемые ключи команды ls
- •Команда cd - изменить текущий справочник
- •Команда rmdir - удалить справочник
- •Доступ к файлу и работа с ним
- •Основные команды
- •Команды cat, pg, pr - распечатать содержимое файла
- •Команда cat
- •Команда pg
- •Команда pr
- •Команда cp - сделать копию файла
- •Команда mv - переименование файла
- •Команда rm - удалить файл
- •Команда wc - подсчет строк, слов и символов
- •Команда chmod - изменить статус файла
- •Как определить права
- •Как изменить существующие права
- •Альтернативный метод
- •Дополнительные команды
- •Команда diff
- •Команда grep
- •Команда sort
- •Режимы редактора
- •Создание текста в режиме Append
- •Выход из режима Append
- •Редактирование текста в командном режиме
- •Перемещение курсора
- •Удаление текста
- •Добавление текста
- •Команда перемещения: - (знак минус)
- •Позиционирование слов
- •Позиционирование в окне
- •Позиционирование курсора на неотображаемом тексте
- •Прокрутка текста
- •Удаление текста
- •Удаление текста в режиме ввода текста
- •Отменить последнюю команду
- •Команды удаления в командном режиме
- •Удаление слов
- •Удаление строк
- •Удаление текста после курсора
- •Модификация текста
- •Замена текста
- •Подстановка текста
- •Изменение текста
- •Извлечение и присоединение текста
- •Перемещение текста
- •Перемещение букв
- •Копирование текста
- •Специальные команды
- •Повторить последнюю команду
- •Объединение строк
- •Очистить окно и восстановить текст
- •Заменить нижний регистр на верхний и vice versa
- •Использование команд построчного редактора
- •Временный возврат к shell
- •Запись текста в новый файл
- •Переход к указанной строке
- •Удалить остаток буфера
- •Добавить файл в буфер
- •Провести глобальные изменения
- •Специальные опции для VI
- •Восстановление потерянного файла
- •Редактирование нескольких файлов
- •Просмотр файла
- •Интерпретатор shell последовательность действий интерпретатора shell
- •Специальные символы shell-переменных
- •Специальные символы shell-операторов
- •Встроенные операторы языка shell
- •Команды System V Bourne Shell
- •Дополнительные команды System V.2
- •Общая характеристика командных языков
- •Базовые возможности семейства командных интерпретаторов
- •1. Синтаксические
- •Связь ос unix с другими компьютерными станциями
- •Печать форматированного файла
- •Простые шаблоны
- •Простые действия
- •Встроенные переменные
- •Определенные пользователем переменные
- •Функции
- •Примеры некоторых полезных программ
- •Сообщения об ошибках
- •Шаблоны
- •Шаблоны begin и end
- •Комбинация шаблонов
- •Область шаблона
- •Поле переменных
- •Операторы управления потоком
- •Массивы
- •Функции, определенные пользователем
- •Комментарии
- •Файлы и каналы
- •Разделители ввода
- •Использование awk с другими командами и с shell
- •Функция system
- •Взаимодействие с shell
- •Примеры использования
- •Генерирование отчетов
- •Дополнительные примеры Частота использования слов
- •Накопление
- •Случайный выбор
- •Возможности shell
- •10.27.1. Ограничения
- •Запуск и остановка системы
Unix System III и первые коммерческие версии системы
В 1978 году в Bell Labs специально для поддержки ОС UNIX была организована Группа поддержки ОС UNIX (UNIX Support Group - USG). Эта группа выпустила несколько версий системы, но они не имели хождения за пределами Bell Labs.
Однако, к этому времени большой интерес к ОС UNIX стали проявлять коммерческие компании-производители компьютеров и программного обеспечения. Это объясняется тем, что с развитием технологии электронных схем резко упала стоимость производства новых однокристальных процессоров. Поэтому наличие по-настоящему мобильной операционной системы, перенос которой на новую аппаратную платформу не занимал слишком много времени и средств, позволяло экономно оснастить новые компьютеры качественным базовым программным обеспечением. Появились компании, специализирующиеся на переносе UNIX на новые платформы.
Одной из первых была компания UniSoft Corporation, которая производила свою версию UNIX под названием UniPlus+. Microsoft Corporation совместно с Santa Cruz Operation (SCO) произвели вариант UNIX под названием XENIX. В результате к концу 70-х UNIX-подобные операционные системы были доступны на компьютерах, основанных на микропроцессорах Zilog, Intel, Motorola и т.д. Появились тысячи установок с ОС UNIX.
В 1982 году USG выпустила за пределы Bell Labs свой первый вариант UNIX, получивший название UNIX System III. В этой системе сочетались лучшие качества UNIX Version 7, V/32 и других вариантов UNIX, имевших хождение в Bell Labs.
AT&T System V Release 2 и Release 3
В начале 1983 года компания American Telephone and Telegraph Bell Laboratories (AT&T Bell Labs) объявила о выпуске UNIX System V. Впервые в истории Bell Labs было также объявлено, что AT&T будет поддерживать этот и все будущие выпуски System V. Кроме того, была обещана совместимость выпущенной версии System V со всеми будущими версиями. ОС UNIX System V включала много новых возможностей, но почти все они относились к повышению производительности (хеш-таблицы и кэширование данных). На самом деле UNIX System V являлась развитым вариантом UNIX System III. К наиболее важным оригинальным особенностям UNIX System V относится появление семафоров, очередей сообщений и разделяемой памяти.
В то же время сотрудники Калифорнийского университета в Бэркли разработали вариант системы UNIX, получивший название BSD 4.3 для машин серии VAX и отличающийся некоторыми новыми, интересными особенностями. Основное внимание концентрируется на описании системы UNIX версии V, однако время от времени мы будем касаться и особенностей системы BSD.
В 1984 году USG была преобразована в Лабораторию по развитию системы UNIX (UNIX System Development Laboratories - USDL). В 1984 году USDL выпустила UNIX System V Release 2 (SVR2). В этом варианте системы появились возможности блокировок файлов и записей, копирования совместно используемых страниц оперативной памяти при попытке записи (copy-on-write), страничного замещения оперативной памяти (реализованного не так, как в BSD) и т.д. К этому времени ОС UNIX была установлена на более чем 100000 компьютеров.
Популярность и успех системы UNIX объяснялись несколькими причинами:
* Система написана на языке высокого уровня, благодаря чему ее легко читать, понимать, изменять и переносить на другие машины. По оценкам, сделанным Ричи, первый вариант системы на Си имел на 20-40 % больший объем и работал медленнее по сравнению с вариантом на ассемблере, однако преимущества использования языка высокого уровня намного перевешивают недостатки.
* Наличие довольно простого пользовательского интерфейса, в котором имеется возможность предоставлять все необходимые пользователю услуги.
* Наличие элементарных средств, позволяющих создавать сложные программы из более простых.
* Наличие иерархической файловой системы, легкой в сопровождении и эффективной в работе.
* Обеспечение согласования форматов в файлах, работа с последовательным потоком байтов, благодаря чему облегчается чтение прикладных программ.
* Наличие простого, последовательного интерфейса с периферийными устройствами.
* Система является многопользовательской, многозадачной; каждый пользователь может одновременно выполнять несколько процессов.
* Архитектура машины скрыта от пользователя, благодаря этому облегчен процесс написания программ, работающих на различных конфигурациях аппаратных средств.
Простота и последовательность вообще отличают систему UNIX и объясняют большинство из вышеприведенных доводов в ее пользу.
Хотя операционная система и большинство команд написаны на Си, система UNIX поддерживает ряд других языков, таких как: Фортран, Бейсик, Паскаль, Ада, Кобол, Лисп и Пролог. Система UNIX может поддерживать любой язык программирования, для которого имеется компилятор или интерпретатор, и обеспечивать системный интерфейс, устанавливающий соответствие между пользовательскими запросами к операционной системе и набором запросов, принятых в UNIX.
В 1987 году подразделение USDL объявило о выпуске UNIX System V Release 3 (SVR3). В этой системе появились полные возможности межпроцессных взаимодействий, разделения удаленных файлов (Remote File Sharing - RFS), развитые операции обработки сигналов, разделяемые библиотеки и т.д. Кроме того, были обеспечены новые возможности по повышению производительности и безопасности системы. К концу 1987 года появилось более 750000 установок ОС UNIX, и было зарегистрировано 4,5 млн. пользователей.
На этом можно завершить исторический обзор ОС UNIX. Дальнейшее изложение истории развития ограничим таблицей 1 и рисунком генеалогического дерева ОС UNIX (заметим, что по поводу генеалогии существуют разные мнения).
Таблица 1. Характерные свойства версий AT&T UNIX начиная с 1982 года
1982 System III |
Именованные программные каналы |
|
Очереди запуска |
1983 System V |
Хеш-таблицы |
|
Кэши буферов и inodes |
|
Семафоры |
|
Разделяемая память |
|
Очереди сообщений |
1984 SVR2 |
Блокирование записей и файлов |
|
Подкачка по требованию |
|
Копирование по записи |
1987 SVR3 |
Межпроцессные взаимодействия (IPC) |
|
Разделение удаленных файлов (RFS) |
|
Развитые операции обработки сигналов |
|
Разделяемые библиотеки |
|
Переключатель файловых систем (FSS) |
|
Интерфейс транспортного уровня (TLI) |
|
Возможности коммуникаций на основе потоков |
1989 SVR4 |
Поддержка обработки в реальном времени |
|
Классы планирования процессов |
|
Динамически выделяемые структуры данных |
|
Развитые возможности открытия файлов |
|
Управление виртуальной памятью (VM) |
|
Возможности виртуальной файловой системы (VFS) |
|
Быстрая файловая система (BSD) |
|
Развитые возможности потоков |
|
Прерываемое ядро |
|
Квоты файловых систем |
|
Интерфейс драйвера с ядром системы |
Рис. 1.1. Генеалогическое дерево ОС UNIX