История создания. История началась в 1969 году, когда Ричи и Томпсон создали первую
версию ОС UNIX. На исходе 1973 года они написали об этом статью. Сообщество
компьютерных пользователей сочло эту операционную систему полезной и на неё возник
растущий спрос. Однако, в планы компании AT&T не входило распространение операци-
онной cистемы и она передала ее по минимальной цене учебным заведениям. Вследст-
вие этого пользователи, почти все являвшиеся представителями учебных заведений, бы-
ли вынуждены кооперироваться самостоятельно. Они сами устраняли ошибки, составляли
полезные программы, различные утилиты и делились ими друг с другом. Результатом их
деятельности стала серия версий ОС UNIX, распространяемых под эгидой компании Bell
Labs, которая развивалась вплоть до 1990 года.
Вплоть до 1977 года все версии ОС UNIX распространялись под торговой маркой AT&T.
Однако путем стараний университетского преподавателя из Berkeley Кена Томпсона и
недавних выпускников Билла Джоя и Чака Хали в конце года увидела свет ОС 2BSD, ко-
торая явилась прародительницей современных реализаций BSD (FreeBSD, NetBSD и.т.д)
Одновременно с этим компания Interactive Systems впервые стала распространять UNIX
на коммерческой основе, а компания Whitesmiths, произвела первый клон ОС UNIX, полу-
чивший название Idris, который также стал коммерческим.
AT&T не имела никакой возможности влиять на ход событий, происходящих в Беркли, а
уж тем более в Interactive Systems, Whitesmiths и других им подобных компаниях. Законо-
мерным результатом этого явилось умножение разновидностей операционных систем.
Более подробно речь об этом пойдет в следующей главе.
Немного об особенностях операционной системы.
"Главные компоненты" UNIX:
Ядро - управление основными ресурсами (процессор, оперативная память) и периферий-
ными устройствами обмена и хранения данных (магнитные диски, магнитные ленты, прин-
теры, терминалы, линии связи и т.д.).
Файловая система (ФС) - организует структуры данных на устройствах хранения.
Shell - командный интерпретатор: " слушает" ваш терминал и транслирует вашу команду в
запрос к ядру и ФС.
Команды - имена программ, которые компьютер должен выполнить. Пакеты программ
называются инструментальными средствами. Система UNIX обеспечивает инструмен-
тальными средствами для таких заданий как создание и изменение текста, написание
программ, развитие инструментария программного обеспечения, обмен информацией
с другими посредством компьютера.
Внешний круг системы UNIX образуют программы и инструментальные средства системы,
разделенные на категории функционально. Эти функции включают:
программное окружение - несколько программ системы UNIX, устанавливающих
дружественное программное окружение, обеспечивающее интерфейсы между системой
и языками программирования и использование обслуживающих программ;
обработка текстов - система обеспечивает программы, такие как строковый и экранный
редакторы, для создания и изменения текстов, орфографическую программу проверки для
обнаружения ошибок орфографии, и необязательный форматер текста для создания
высококачественных копий, которые подходят для публикаций;
организация информации - система предоставляет много программ, которые позволяют
вам создавать, организовывать и удалять файлы и каталоги;
обслуживающие программы - инструментальные средства, создающие графику и выпол-
няющие вычисления;
электронная связь - несколько программ (например, mail) предоставляют вам возмож-
ность передавать информацию другим пользователям и в другие системы UNIX.
Основные свойства UNIX-систем:
Система является многопользовательской, многозадачной; каждый пользователь может
одновременно выполнять несколько процессов;
Наличие иерархической файловой системы, легкой в сопровождении и эффективной в
работе;
Наличие элементарных средств, позволяющих создавать сложные программы из более
простых;
Наличие довольно простого пользовательского интерфейса, в котором имеется возмож-
ность предоставлять все необходимые пользователю услуги;
Архитектура машины скрыта от пользователя, благодаря этому облегчен процесс написа-
ния программ, работающих на различных конфигурациях аппаратных средств;
Система UNIX может поддерживать любой язык программирования, для которого име-
ется компилятор или интерпретатор, и обеспечивать системный интерфейс, устанавлива-
ющий соответствие между пользовательскими запросами к операционной системе и
набором запросов, принятых в UNIX.
Основы работы с UNIX:
Каждый пользователь имеет:
- имя пользователя (для установления взаимодействия пользователей и начисления рас-
ходов);
- пароль пользователя (для контроля входа в систему и защиты своих данных).
Пользователи могут быть объединены в группы (для работы над проектами и т.п.) для
разделения общих ресурсов, тогда еще есть имя группы пользователей.
Один пользователь,называемый superuser является администратором системы (его имя -
root). В частности, он "заводит" (регистрирует) всех прочих пользователей.
Можно сменить свой пароль в любое время:
login : peter
password: . . . .
$ passwd
Changing password for peter
Old password: . . .
New password: ***
Retype new password: ***
$ ^D (Control-D) (выход из сеанса)
login:
где $ - подсказка системы
(может быть изменена на любой символ или строку)
Командная строка - последовательность слов, разделенных пробелами. Первое слово
командной строки есть команда; остальные - параметры.
Типы параметров:
- имя файла = идентификатор (использует символы a-z, A-Z, 0-9, _,.,-);
- опция (ключ) уточняет смысл команды; начинается обычно с минуса.
Пример: -al (может быть со знаком + или без знака); смысл опции зависит от команды;
- выражение - описывает обычно строку символов или является строкой.
Порядок параметров в команде:
command options expression filename(s)
Примеры команд:
rm old.news bod.news - удаление файлов old.news, bod.news с запросом
rm -fr goodies.c baddies.o - то же, но без запроса
grep "mary" people - поиск строки "mary" в файле people
Формат команд
Команды разделяются либо концом строки, либо точкой с запятой:
$ who; date - вывести на экран пользователей и показать текущее время и дату
mary tty0 Feb 14 08 : 30
sun Feb 14 11 : 38 2002
Файлы в UNIX
ВСЕ В UNIX ПРЕДСТАВЛЕНО В ВИДЕ ФАЙЛОВ!
Стандаpтные типы файлов Unix: обычные файлы, каталоги, файлы устpойств и символи-
ческие ссылки.
UNIX отличается от операционных систем типа DOS и Windows тем, что все в UNIX обра-
батывается как файл.
Например: параллельный порт в UNIX - /dev/lp0 - файл lp0 в каталоге /dev, или, дискета
3.5 дюйма - /dev/rfd0135ds18 (в SCO OpenServer, в Linux - /dev/fd0 ).
Файлы устройств в разных реализациях UNIX могут называться по-разному.
Для системы UNIX все файлы одинаковы. Это делает файловую структуру UNIX легкой в
использовании. Например, вам нет необходимости указывать требования к памяти для ва-
ших файлов, т.к. система автоматически это сделает для вас. Или если вам или написанной
вами программе необходим доступ к определенному устройству (например, принтеру) вы
указываете устройство также как любой из ваших файлов. В системе UNIX существует
только один интерейс для всего вашего ввода и вывода для вас; это упрощает ваше вза-
имодействие с системой.
Файловая система UNIX.
Файловая система UNIX имеет иерархическую структуру; чаще всего она описывается в
виде дерева. Вершина этого дерева - это корневой каталог (root). Он обозначается ( / ).
Все другие каталоги и файлы берут свое начало из корневнго каталога root.
Корневой каталог ( / ) содержит несколько важных системных каталогов:
/stand - содержит загрузочные программы и файлы данных, используемые в процессе
загрузки (в некоторых реализациях он называется /boot);
/sbin - содержит основные исполняемые программы, используемые в процессе загрузки и
при восстановлении системы;
/bin - содержит все стандартные команды и утилиты
/dev - содержит специальные файлы, которые представляют периферийные устройства
(например, консоль, печатное устройство, терминалы пользователя и диски);
/etc - содержит машинно-зависимые файлы конфигурации и базы данных организации сис-
темы;
/home - содержит домашние каталоги пользователей;
/tmp - содержит временные файлы;
/var - корневой каталог поддерева для изменяющихся файлов (например, файлы log);
/usr - содержит файлы и команды, используемые системой, разбит на несколько подката-
логов
/usr/man - Файлы диалогового руководства man.
/usr/lib - содержит библиотеки языков программирования
/usr/bin - ориентированные на пользователя команды и утилиты
/usr/spool - содержит буферные файлы (например, генерируемые для заданий печати и пе-
ресылок по сети).