Linux. Полное руководство.

История Linux.

Все началось с игры.

Не поверите, но все началось с небольшой игры, написанной Кеном Томпсоном. Но чтобы вам было понятно, при чем здесь игра, нужно сделать небольшой экскурс во времена «до игры».

В далеком 1965 году начались работы над созданием операционной системой MULTICS (MULTiplexed Information and Computing System) для компьютера GE-645 (об этом компьютере вы точно не прочитаете в школьном учебнике по информатике). Инициатором была компания Bell Laboratories (подразделение компании AT&T), а ее помощниками выступали не менее известные организации — General Electric и Массачусетский технологический институт (МТИ). Что же ожидали от MULTICS? Процессорное время GE-645 стоило очень дорого, поэтому нужна была система разделения процессорного времени, обеспечивающая высокую скорость обработки данных и их совместное использование. Посмотрите на рис. 1 — это система GE-645. Обратите внимание, какое помещение она занимает. А теперь вспомните процессор Intel 80386. К чему это я? Производительность GE-645 чуть выше, чем у процессора 80386. До чего техника дошла (кстати, «шла» она к этому лет эдак 20)!

Linux. Полное руководство.

Рис. 1. GE-645 © General Electric Information Systems Equipment Division, 1968.

Операционная система Multics была запущена в 1969 году, но она не оправдала возложенных на нее надежд. Поэтому вскоре компания Bell Laboratories прекратила работу над этой системой. Коммерческого успеха эта система не принесла. Правда, для справедливости нужно отметить, что МТИ умудрился продать около 80 инсталляций этой системы, причем некоторые из них «дожили» до начала 90-х годов.

Но не бывает худа без добра. Multics послужила своеобразным толчком для создания новой операционной системы — UNIX.

Что же произошло в 1969 году, который считают годом рождения UNIX? Четыре сотрудника Bell Labs, а именно Руд Кенедей (Rudd Canaday), Дуг Мак-Илрой (Doug McIlroy), Дэннис Ричи (Dennis Ritchie) и Кен Томпсон (Ken Thompson) попытались возродить Multics. Все они ранее работали над проектом Multics и не смогли смириться с таким поворотом событий.

Прежде всего был разработан проект файловой системы — потом эта файловая система стала файловой системой UNIX. Кен Томпсон написал программы, эмулирующие работу файловой системы и режима подкачки. Получилось что-то вроде прототипа ядра новой системы. Это ядро было предназначено для GE-645.

А сейчас на арене появляется та самая игра — «Космическое путешествие», симулятор полета, написанный Кеном Томпсоном под Multics. Но после прекращения работы над Multics эту игру оказалось не на чем запускать. Обнаружив в углу лаборатории редко используемую машину PDP-7, Томпсон с Ричи решили переписать игру для нее. Переносить программу на перфоленте оказалось неудобно, и Томпсон разработал для PDP-7 файловую систему, утилиты для работы с файлами и командную оболочку. Все это писалось на машине GE и переносилось на PDP-7 на перфоленте, но, как только был закончен ассемблер для PDP-7, система встала на собственные ноги. Получилась новая операционная система для компьютера PDP-7, которую назвали, по аналогии с Multics, "UNICS" (UNiplexed Information and Computing Service). Такое название ей дал Питер Нейман (Peter Neumann). Кто же переименовал ее в UNIX, до сих пор не известно.

Linux. Полное руководство.

Рис. 2. PDP-7.

В то время все программное обеспечение, том числе и операционные системы, писалось на машинно-зависимом языке (ассемблере), то есть если программа, например, написана для компьютера PDP-7, ее нельзя запустить на компьютере с другой архитектурой, например, на GE. Кен Томпсон задался целью сделать универсальную систему, которая могла бы работать на нескольких платформах, то есть создать переносимую, независимую от «железа» операционную систему. Для своей системы он начал разрабатывать язык В, на котором он хотел переписать всю систему. Но «до ума» этот язык довел Дэннис Ричи, обновленная версия языка стала называться С. Да, этот тот самый язык, на котором каждый из нас написал не одну программу. Сейчас мы подходим к созданию той идеологии UNIX'a, которая используется по сей день.

О работе над новой операционной системы руководство компании Bell Labs ничего не знало. Они думали, что ведущие программисты работают над системой обработки текстов для AT&T. Действительно, Томпсон написал строковый (не текстовый!) редактор ed, который присутствует до сих пор во всех современных дистрибутивах, а Ричи создал программу roff. Новые разработки понравились компании AT&T, которая была заинтересована в дальнейшем развитии проекта и приобрела новый компьютер — PDP-11. Для этого компьютера UNIX был полностью переписан: вся система, включая ядро, была написана на языке С, что позволило переносить систему на другие платформы. На ассемблере была написана только та часть ядра, которая была непосредственно связана с «железом». Это было в 1971 году.

Становление UNIX как операционной системы.

Очень много новых функций в ядро системы было добавлено всего за один год — с 1971 по 1972. Система заметно «возмужала» по сравнению с 1969 годом. Теперь она действительно стала похожа на операционную систему. Но система не распространялась — ее использовало только одно подразделение AT&T, Первым шагом системы за пределы компании AT&T стала установка системы в компании New York Telephone. Система была установлена на компьютере PDP-11/20. обладавшем аж 56 килобайтами оперативной памяти и двумя жесткими дисками по 2,4 Мб каждый, С этого момента началось распространение системы.

Уже в начале 1973 года насчитывалось 16 инсталляций системы. Это довольно неплохо для времен, когда такую роскошь, как компьютер, могла позволить себе только крупная организация, и то не каждая. Компьютер тогда покупался для решения промышленных задач, а не для набора текста и прослушивания музыки.

Вот что писал Ричи о UNIX'e: "Мы хотели сохранить не только хорошую среду программирования, в которой можно было решать задачи, но и систему, вокруг которой могло сформироваться товарищество. Мы по опыту знали, что сущностью совместного использования компьютера (the essence of communal computing) является не только замена перфокарточного ввода на терминал, но и предоставление средств и стимулов для более тесного общения, реализуемого средствами удаленного доступа к машине, работающей в режиме разделения времени.".

Летом 1974 года в журнале «Communications of the ACM» появилась первая статья о UNIX. Ее авторами были, как и следовало ожидать, Томпсон и Ричи. Они описывали общее устройство UNIX. В той же статье говорилось, что по состоянию на июль 1974 года система была установлена уже на 600 (!) компьютерах. Вы только вдумайтесь в цифру: количество инсталляций за год возросло более чем в 37 раз. Самое интересно, что система развивалась почти при полном отсутствии поддержки со стороны AT&T.

После этой статьи операционной системой UNIX заинтересовались многие научно-исследовательские организации. Но AT&T не имела права заниматься бизнесом, следовательно, система не могла продаваться. Чтобы система все-таки развивалась, Томпсон бесплатно рассылал всем желающим наборы дисков с операционной системой. Такой поворот событий повлек следующую волну развития ОС. Например, студенты Йельского университета разработали командную оболочку (shell), а студенты другого университета создали первую сеть на основе UNIX. В университете Беркли (Калифорния) опять-таки студенты создали огромное количество различных утилит и новую оболочку.

Если вы читали какую-то литературу по UNIX, то, наверное, знаете, как нумеровались версии UNIX — V1, V2 и т.д. Откуда взялась именно такая нумерация версий? В 1971 году Ричи и Томпсон написали руководство по программированию в UNIX. Версия, которая описывалась в первом издании этого руководства, стала называться V1, далее — V2 и т.д. Если быть предельно точными, то вот даты выхода изданий руководства:

♦ 3 ноября 1971 г. (описывалась версия V1).

♦ 12 июня 1972 г. (описывалась версия V2).

♦ Февраль 1973 г. (V3).

♦ Ноябрь 1973 г. (V4).

♦ Июнь 1974 г. (V5).

♦ Май 1975 г. (V6).

♦ Январь 1979 (V7).

♦ Февраль 1985 г.

♦ Сентябрь 1986 г.

♦ Октябрь 1989 г.

После 1979 года нумерация Vn больше не использовалась — чуть позже мы с вами узнаем, почему именно.

Важную роль в развитии UNIX сыграл Калифорнийский университет в Беркли. Как уже было сказано, студенты (точнее, аспиранты) этого университета разработали новую командную оболочку и несколько очень важных утилит. Одной из этих утилит мы пользуемся до сих пор — это текстовый редактор vi (правда, в 1975 году он назывался ex). В том же 1975 году Томпсон написал версию Pascal для UNIX.

Модифицированная в университете Беркли система получила название BSD (Berkeley Software Distribution). Все мы слышали название FreeBSD, некоторые из нас даже работали с этой системой. Так вот, сейчас мы знаем, откуда оно произошло. Данная система содержала Pascal и редактор ex (vi). Университет Беркли имел право заниматься коммерческой деятельностью, поэтому первая версия BSD сначала продавалась по цене $50. Всего было продано 30 копий системы. В 1978 году вышла вторая версия BSD — 2BSD. Вторая версия продавалась активнее — было продано 75 копий. Идеи, разработанные в Беркли, позже были использованы в следующей версии UNIX от Bell Labs.

Два года спустя Питер Вэйнер (Peter Weiner) и Гейнц Ликлама (Hienz Lycklama) создали компанию Interactive Systems, которая тоже принялась продавать UNIX. Правда, продавалась она под другим именем — Irdis (это первый клон UNIX).

Вернемся к нумерации Vn. Прекратилась она в 1979 году — в этом году вышла последняя «настоящая» UNIX — UNIX V7. В ее состав входили компилятор С, программы awk, make, uucp, find, cpio и командная оболочка Bourne (и, разумеется, много других программ, которых здесь перечислять нет смысла). Именно эта система была перенесена Дэннисом Ричи и Стивом Джонсоном (оба — сотрудники AT&T) на платформу Interdata, а чуть позже несколько программистов из австралийского университета перенесли ее на платформу Interdata 8. Правда, после переноса на другую платформу немного пострадала производительность системы — за все нужно платить. Университет Беркли занялся решением этой проблемы и решил ее. В 1982 году вышла версия 2.8.1BSD, которая работала значительно быстрее предшествующей.

Бурное развитие UNIX.

В 1980 году агентству DARPA (the Defense Advanced Research Projects Agency) потребовалось увеличить мощность компьютеров, на которых базировалась сеть ARPANET (предок сети Интернет). Ресурсы стареньких PDP-10 были уже полностью исчерпаны, поэтому решено было перейти на более мощные компьютеры — VAX. Но для этих компьютеров нужен был стек протоколов TCP/IP. Реализация TCP/IP от DEC отпала по ряду причин, поэтому агентству DARPA ничего другого не оставалось, как выбрать систему BSD. Данный факт положительно отразился на развитии UNIX — ее выбрали основной системой для интернета.

Linux. Полное руководство.

Рис. 3. PDP-10.

Linux. Полное руководство.

Рис. 4. VAX.

Благодаря тому, что UNIX сделалась основой интернета, темпы ее развития возросли. В начале 80-х вышло много различных версий UNIX. Выпускали их разные компании, по основными конкурентами были компания AT&T и университет Беркли. Первая выпустила системы Programmer's Workbench (рабочее место программиста) и UNIX System III. Университет Беркли тоже не отставал — с октября 1980 года по сентябрь 1983 года было выпущено 6 версий системы — 4, 4.1, 4.1a, 4.1b, 4.1c, 4.2. Последняя версия отличалась высокопроизводительной файловой системой и встроенной поддержкой сети (TCP/IP). До этого сеть в UNIX поддерживалась, мягко говоря, весьма слабо. Но после реализации стека TCP/IP для UNIX все изменилось. В 1983 году большинство подключенных к интернету компьютеров составляли компьютеры VAX с ОС UNIX.

Какие бывают UNIХ'ы?

Как только компании осознали, что на UNIX можно заработать, причем заработать неплохо, на рынке появилось множество клонов UNIX под разными названиями. Например, компания Sun Microsystems (основана в 1982 году, а одним из основателей был автор редактора ex — Билл Джой) перенесла BSD на платформу, разработанную в Стенфорде, чем положила начало новому типу рабочих станций.

Наверное, вы когда-нибудь слышали об операционных системах IRIX, XENIX, HP-UX — все эти системы UNIX-подобные, их создали, соответственно, компании SGI, SCO, Hewlett-Packard. О XENIX можно вообще долго говорить, но все, что вам нужно знать об этой системе — это то, что она является первым коммерческим UNIХ'ом для платформы Intel. ОС IBM HP-UX 1.0 основана на системе System III от AT&T. Кстати, в 1983 году с компании AT&T был снят запрет заниматься компьютерным бизнесом, после чего компания сразу же принялась продавать свою систему System V от Bell Labs (не забываем, что это подразделение AT&T). Выпускала UNIX и компания IBM. Правда, она немного опоздала: продажи ее UNIX — системы AIX — начались только в 1990 году.

Обилие различных версий UNIX стало причиной так называемых UNIX-войн, когда конкурирующие компании выпускали все новые и новые версии UNIX'a.

Это далеко не вся история UNIX, но рассмотренного материала вполне хватит, чтобы заполнить пробел в ваших знаниях относительно истории развития этой операционной системы. Если вы заинтересовались, в Интернете есть множество статей, посвященных истории UNIX. Правда, большая их часть написана на английском языке.