- •Введение
- •2. Основные понятия Unix
- •3. Файловая система
- •3.1 Типы файлов
- •4. Командный интерпретатор
- •5. Ядро ос unix
- •5.1 Общая организация традиционного ядра ос unix
- •5.2 Основные функции ядра
- •5.3 Принципы взаимодействия с ядром
- •5.4 Принципы обработки прерываний
- •6. Управление вводом/выводом
- •6.1 Принципы системной буферизации ввода/вывода
- •6.2 Системные вызовы для управления вводом/выводом
- •7. Интерфейсы и входные точки драйверов
- •7.1 Блочные драйверы
- •7.2 Символьные драйверы
- •7.3 Потоковые драйверы
- •8. Команды и утилиты
- •8.1 Организация команды в ос unix
- •8.2 Перенаправление ввода/вывода и организация конвейера
- •8.3 Встроенные, библиотечные и пользовательские команды
- •8.4 Программирование на командном языке
- •Заключение
- •Перечень ссылок
Введение
Термин Unix и не вполне эквивалентный ему UNIX используется в разных значениях. Начнем со второго из терминов, как более простого. В двух словах, UNIX (именно в такой форме) - зарегистрированная торговая марка, первоначально принадлежавшая корпорации AT&T, сменившая за свою долгую жизнь много хозяев и ныне являющаяся собственностью организации под названием Open Group. Право на использование имени UNIX достигается путем своего рода "проверки на вшивость" - прохождения тестов соответствия спецификациям некоей эталонной ОС (Single Unix Standard - что в данном случае можно перевести как Единственный Стандарт на Unix). Процедура эта не только сложна, но и очень недешева, и потому ей подверглись лишь несколько оперционок из ныне здравствующих, и все они являются проприетарными, то есть представляют собой собственность неких корпораций.
В числе корпораций, заслуживших право на имя UNIX потом разработчиков/тестировщиков и кровью (точнее, долларом) владельцев, можно назвать следующие:
Sun с ее SunOS (более известной в миру под именем Solaris);
IBM, разработавшая систему AIX;
Hewlett-Packard - владелец системы HP-UX;
IRIX - операционка компании SGI.
Кроме этого, собственно имя UNIX применяется к системам:
True64 Unix, разработанная фирмой DEC, с ликвидацией коей перешедшая к Compaq, а ныне, вместе с последней, ставшая собственностью той же Hewlett-Packard;
UnixWare - собственность компании SCO (продукту слияния фирм Caldera и Santa Cruz Operation).
Будучи проприетарными, все эти системы продаются за немалые (даже по американским масштабам) деньги. Однако это - не главное препятствие к распространению собственно UNIX'ов. Ибо общей их особенностью является привязка к определенным аппаратным платформам: AIX работает на серверах и рабочих станциях IBM с процессорами Power, HP-UX - на собственных машинах HP-PA (Precission Architecture), IRIX - на графических станциях от SGI, несущих процессоры MIPS,True64 Unix - предназначена для процессоров Alpha (к сожалению, в бозе почивших). Лишь UnixWare ориентирована на "демократическую" платформу PC, а Solaris существует в вариантах для двух архитектур - собственной, Sparc, и все той же PC. Что, однако, не сильно поспособствовало их распространенности - вследствие относительно слабой поддержки новой PC-периферии.
Таким образом, UNIX - это понятие в первую очередь юридическое. А вот за термином Unix закрепилась технологическая трактовка. Так в обиходе IT-индустрии называют все семейство операционных систем, либо происходящих от "первозданной" UNIX компании AT&T, либо воспроизводящих ее функции "с чистого листа", в том числе свободные ОС, такие, как Linux, FreeBSD и другие BSD, никакой проверке на соответствие Single Unix Standard никогда не подвергавшиеся. И потому их часто называют Unix-подобными.
2. Основные понятия Unix
Unix базируется на двух основных понятиях: "процесс" и "файл". Процессы являют собой динамическую сторону системы, это субьекты; а файлы - статическую, это обьекты действия процессов. Почти весь интерфейс взаимодействия процессов с ядром и друг с другом выглядит как запись/чтение файлов. Хотя надо добавить такие вещи, как сигналы, разделяемая память и семафоры.
Процессы можно весьма условно разделить на два типа - задачи и демоны. Задача - это процесс, который выполняет свою работу, стремясь побыстрее закончить ее и завершиться. Демон ждет событий, которые он должен обработать, обрабатывает произошедшие события и снова ждет; завершается он как правило по приказу другого процесса, чаще всего его убивает пользователь, дав команду "kill номер_процесса". В этом смысле получается, что интерактивная задача, обрабатывающая ввод пользователя, скорее похожа на демона, чем на задачу.