Какая операционная система была на первых компьютерах unix

Обновлено: 04.07.2024

На пути к UNIX

Прежде чем говорить о самой UNIX, давайте вспомним те операционные системы, которые были созданы до нее, и которые во многом определили то, чем является UNIX, а через нее и многие другие современные операционные системы.

Проект Multics (сокращение от слов Multiplexed Information and Computing Service) был предложен профессором Массачуссетского Технологического Института (MIT) Джеком Дэннисом. Он вместе со своими студентами в 1963 году разработал спецификацию на новую операционную систему и сумел заинтересовать проектом представителей компании General Electric. В итоге Bell Labs присоединился к MIT и General Electric в разработке новой операционки.

К сожалению, работа над Multics затянулась надолго, программисты Bell Labs так и не дождались релиза этого продукта и в апреле 1969 году вышли из проекта. А релиз состоялся уже в октябре того же года, но, говорят, первая версия была жутко глючная, и еще год оставшиеся разработчики исправляли баги, о которых им сообщали пользователи, хотя через год Multics был уже более надежной системой.

Разработка Multics велась еще довольно долгое время, последний релиз состоялся в 1992 году, и это была версия 12.5, хотя это уже совсем другая история, но Multics оказал огромное влияние на будущий UNIX.

Рождение UNIX

Но однажды Кен Томпсон наткнулся на комьютер DEC PDP-7, который редко использовался, и вполне мог подойти для запуска Space Travel, к тому же у него был более хороший видеопроцессор.

pdp7

Портировать игру на PDP-7 было не так просто, по сути, требовалось написать новую операционную систему для ее запуска. За этим дело не стало, на что только не пойдут программисты ради любимой игрушки. Так зародился UNIX, точнее Unics. Название, которое предложил Брайан Керниган, является сокращением от слов Uniplexed Information and Computing System. Напомню, что название Multics произошло от слов Multiplexed Information and Computing Service, таким образом, Unics в некотором роде противопоставлялся Multics в плане простоты. И действительно, на Multics уже тогда были нападки по поводу ее сложности. Для сравнения, первые версии ядра Unics занимали всего 12 кБ оперативки против 135 кБ у Multics.

tompson

На этот раз разработчики не стали (пока) экспериментировать с языками высокого уровня, и первая версия Unics была написана на ассемблере. В разработке Unics приняли участие сам Томпсон, Денис Ритчи, позже к ним присоединились Дуглас Макилрой, Джои Оссанна и Рад Кеннедей. На первых порах Керниган, предложивший название ОС, оказывал только моральную поддержку.

К 1971 году UNIX была уже полноценной операционной системой и Bell Labs даже застолбила за собой торговую марку UNIX. В этом же году UNIX была переписана для работы на более мощном компьютере PDP-11, и именно в этом году вышла первая официальная версия UNIX (ее еще называют First Edition).

pdp11

Ken_n_dennis

Кен Томпсон и Деннис Ритчи

Затем язык B развивался вместе с UNIX, пока из него не родился язык C, один из наиболее известных языков программирования, который теперь принято поливать грязью или возносить, как идеал. В 1973 году вышла третья редакция UNIX со встроенным компилятором языка C, а начиная с 5-й версии, появившейся на свет в 1974 году, считается, что UNIX был переписан полностью на C. Кстати, именно в UNIX 1973 года появилось такое понятие, как трубы (pipe).

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

Появление BSD

Размножению этой операционной системы во многом поспособствовали американские чиновники, еще до рождения UNIX, в 1956 году, наложившие ограничения на компанию AT&T, которой принадлежала лаборатория Bell Labs. Дело в том, что тогда министерство юстиции вынудило AT&T подписать соглашение, запрещавшее компании заниматься деятельностью, не связанной с телефонными и телеграфными сетями и оборудованием, но к 70-ым годам AT&T уже поняли, какой удачный проект получился из UNIX и захотели сделать его коммерческим. Для того, чтобы чиновники разрешили им это сделать, AT&T передала исходники UNIX некоторым американским вузам.

berkeley

Калифорнийский университет в Беркли

Первая версия BSD (1BSD) была скорее дополнением к оригинальной UNIX версии 6, чем самостоятельная система. В 1BSD был добавлен компилятор Паскаля и текстовый редактор ex. Вторая версия BSD, вышедшая в 1979 году включала в себя такие известные программы, как vi и C Shell.

После того, как появился BSD UNIX количество UNIX-совместимых систем стало расти неимоверно быстро. Уже от BSD UNIX начали отпочковываться отдельные ветки операционных систем, разные операционные системы обменивались друг с другом кодом, переплетения становились довольно запутанными, поэтому в дальнейшем не будем останавливаться на каждой версии всех UNIX-систем, а посмотрим, как появились наиболее известные из них.

Пожалуй, наиболее известными непосредственными потомками BSD UNIX являются операционные системы FreeBSD, OpenBSD и, чуть в меньшей степени, NetBSD. Все они произошли от так называемой 386BSD, вышедшей в 1992 году. 386BSD, как можно догадаться из названия, являлась портом BSD UNIX на процессор Intel 80386. Эта система была создана также выпускниками Университета в Беркли. Авторы посчитали, что исходный код UNIX, полученный от AT&T был достаточно сильно изменен, чтобы забить на лицензию AT&T, однако, сама компания AT&T так не считала, поэтому вокруг этой операционной системы шли судебные разбирательства. Судя по тому, что сама 386BSD стала родителем многих других операционных систем, для нее все закончилось благополучно.

Проект FreeBSD (в начале у него не было своего имени) появился, как набор патчей к 386BSD, однако, эти патчи почему-то не были приняты, а затем, когда стало ясно, что 386BSD больше развиваться не будет, в 1993 году проект был развернут в сторону создания полноценной операционной системы, получившей название FreeBSD.

Beastie. Талисман FreeBSD

Одновременно с этим сами разработчики 386BSD создали новый проект NetBSD, от которой, в свою очередь, ответвилась OpenBSD. Как видите, получается довольно развесистое дерево операционных систем. Целью проекта NetBSD было создание такой UNIX-системы, которая могла бы работать на как можно большем количестве архитектур, то есть добиться максимальной переносимости. Даже драйвера для NetBSD должны быть кроссплатформенными.

netbsd

Solaris

История Solaris тоже довольно сложная, вплоть до 2005 года Solaris была полностью коммерческой операционкой, но в 2005 году Sun решили открыть часть исходного кода Solaris 10 и создать проект OpenSolaris. Кроме того, раньше, пока была жива Sun, Solaris 10 можно было использовать либо бесплатно, либо можно было покупать официальную техподдержку. Потом, в начале 2010 года, когда Oracle поглотил Sun, он сделал Solaris 10 платной системой. К счастью, OpenSolaris Oracle угробить пока не смогла.

Linux. Куда ж без него?

tanenbaum

Первая версия Minix вышла вместе с первым изданием книги в 1987 году, последующие вторая и третья версии Minix выходили вместе с соответствующими редакциями книги про операционные системы. Третью версия Minix, вышедшею в 2005 году, уже вполне можно использовать как самостоятельную операционную систему для компьютера (есть LiveCD-версии Minix, которые не требуют ее установку на жесткий диск), так и в качестве встраиваемой операционной системы для микроконтроллеров. Последняя на данный момент версия Minix 3.2.0 появилась на свет в июле 2011 года.

А теперь вспомним про Ричарда Столлмана. В последнее время его стали воспринимать только как пропагандиста свободного софта, хотя много известных ныне программ появилось благодаря нему, да и Торвальдсу в свое время его проект значительно облегчил жизнь. Самое интересное, что и Линус, и Ричард подошли к созданию операционной системы с разных сторон, а в результате проекты слились в GNU/Linux. Здесь надо дать некоторые пояснения по поводу того, что это за GNU, и откуда он взялся.

stallman

И тут в действие вступает финский паренек Линус Торвальдс. Во время учебы в Хельсинском Университете Линусу предстояли курсы по языку C и системе UNIX, в преддверии этого предмета он купил ту самую книгу Таненбаума, в которой описывался Minix. Причем именно описывался, сам Minix надо было покупать отдельно на 16-ти дискетах, а стоила она тогда $169 (эх, не было тогда в Финляндии нашей Горбушки, но, что поделаешь, дикари-с 🙂 ). Кроме того, Торвальдсу пришлось еще купить в кредит за $3500 сам компьютер с процессором 80386, потому что до этого у него был только старенький компьютер на процессоре 68008, на котором Minix не могла работать (к счастью, когда он уже сделал первую версию Linux, благодарные пользователи скинулись и оплатили его кредит за компьютер).

torvalds

Несмотря на то, что Торвальдсу Minix в целом нравилась, но постепенно он стал понимать, какие у нее ограничения и недостатки. Особенно его раздражала программа эмуляции терминала, прилагавшаяся к операционной системе. В результате он решил написать свой эмулятор терминала, а заодно и разобраться в работе 386-го процессора. Торвальдс писал эмулятор на низком уровне, то есть начинал с загрузчика BIOS, постепенно эмулятор обрастал новыми возможностями, затем, чтобы скачивать файлы, Линусу пришлось написать драйвер дисковода и файловой системы и пошло, и поехало. Так появилась операционная система Linux (на тот момент у нее еще не было какого-либо названия).

tux

Tux. Логотип Linux

Мобильный Linux

android

История Android началась с компании Android Inc, появившейся в 2003 году, и вроде бы занимавшейся разработкой мобильных приложений (конкретные разработки этой компании в первые годы своего существования до сих пор не особо афишируются). Но уже менее чем через два года компанию Android Inc поглощает Google. Никаких официальных подробностей по поводу того, чем именно занимались разработчики Android Inc до поглощения найти не удалось, хотя уже в 2005 году, после ее покупки Google, поговаривали, что они уже тогда занимались разработкой новой операционной системы для телефонов. Однако, первый релиз Android состоялся 22 октября 2008 года, после чего у него регулярно стали выходить новые версии. Из особенностей развития Android можно было бы назвать то, что на эту систему начались нападки по поводу якобы нарушенных патентов, да и с Java-реализацией там непонятно обстоят дела с юридической точки зрения, но давайте не будем вдаваться в эти не технические передрязги.

Как видите, на данный момент Linux может запускаться на многих системах, управляемыми разными процессорами, однако, в начале 1990-ых годов Торвальдс не верил, что Linux удастся портировать куда-то еще кроме 386-го процессора.

Mac OS X

Логотип компании NeXT

Аветис Теванян был лидером команды, разрабатывающей новую UNIX-совместимую операционную систему, которая получила название NeXTSTEP. Чтобы не изобретать велосипед, NeXTSTEP была основана на том же ядре Mach. С точки зрения программирования, NeXTSTEP, в отличие от многих других операционных систем, являлась объектно-ориентированной, огромную роль в ней играл язык программирования Objective-C, который сейчас широко используется в Mac OS X. Первая версия NeXTSTEP была выпущена в 1989 году. Несмотря на то, что NeXTSTEP изначально рассчитывалась на процессоры Motorola 68000, но в начале 1990-ых годов, операционная система была портирована на 80386 и 80486 процессоры. Дела у компании NeXT шли не самым лучшим образом, и в 1996 году компания Apple предложила Джобсу купить компанию NeXT с тем, чтобы использовать NeXTSTEP вместо Mac OS. Здесь еще можно было бы рассказать про соперничество между операционными системами NeXTSTEP и BeOS, закончившееся победой NeXTSTEP, но не будем удлинять и без того длинный рассказ, к тому же BeOS никак не относится к UNIX, поэтому на данный момент она нас не интересует, хотя сама по себе эта операционная система была очень интересной, и жалко, что ее развитие прервалось.

Позже, на основе Mac OS X была разработана операционная система для телефонов iPhone, которая получила название Apple iOS. Первая версия iOS вышла в 2007 году. На этой же операционной системе работает и iPad.

Заключение

Ссылки

Все картинки взяты из википедии



Томпсон (сидит) и Ритчи работают на PDP-11, 1972 год.

Однако, некоторые из инженеров, работавших над Multics — Кен Томпсон, Деннис Ритчи, Малкольм Дуглас Макилрой, Джозеф Оссанна, — ощущали необходимость в продолжении работы над подобным проектом, и не хотели терять успевшую сформироваться уютную рабочую атмосферу. Поэтому в 1969 году они начали искать альтернативу Multics: Оссанна, Томпсон, Ритчи пытались протолкнуть покупку машины средней мощности, для которой группа обещала написать операционную систему. Заказ на предлагаемые ЭВМ DEC PDP-10 и Sigma 7 так и не был сделан, и хотя несколько раз ситуация выходила на грань получения нужного оборудования, было вполне очевидно, что команда просит слишком крупную сумму для проекта с расплывчатым планом, тем более, что после провала Multics операционные системы стали не настолько привлекательной сферой. Поэтому Томпсон (в основном это была его задумка), Кэнэдэй и Ритчи (привнесший идею файлов-устройств) разработали на обычных черных учебных досках и бумаге устройство файловой системы, которая позже стала сердцем Unix.

Также в 1969 году Томпсон написал игру Space Travel для Multics, пока ещё имел к ней доступ, а потом переписал её на Фортране для GECOS, операционной системы машин GE-635. Игра содержала всего лишь симуляцию движения основных тел Солнечной системы, среди которых игроку предлагалось провести корабль и приземлиться на планетах и их лунах. Игра в версии для GECOS имела два основных недостатка: высокая цена вычислительного времени ($75 за игру) и подтормаживания графики. Поискав, Кен нашел немного использовавшийся PDP-7 с отличным экраном, ранее машину купили как терминал Graphic-II для проекта анализа цепей.

Ритчи и Томпсон переписали Space Travel для запуска на этой ЭВМ. Работа над маленькой игрой была куда более важной, чем может показаться: поскольку они проигнорировали существующее программное обеспечение, приходилось писать пакет для обработки чисел с плавающей запятой, спецификации графических символов и систему отладки самостоятельно. Всё это было написано на GECOS на кросс-ассемблере для PDP-7, и процесс переноса ассемблерного кода на перфокартах использовался в дальнейшем для реализации уже файловой системы, проект которой уже был разработан.

Летом 1969 года жена Кена уехала к его родителям, чтобы показать новорожденного сына, и Томпсон с головой ушел в работу. Вместе с файловой системой новой операционной системы появился маленький набор пользовательских программ: копирование, печать, удаление, редактирование и, конечно же, интерпретатор команд, командный процессор. После доработки ассемблера отпала необходимость писать на GECOS и переносить файлы перфолентой. Хотя название Unix как отсылка к Miltics появилось только в 1970 году как шутка Брайана Кернигана на тему того, что новая система поддерживала лишь пользователя Томпсона, и поэтому должна носить название Un-multiplexed Information and Computing Service, операционная система уже родилась и жила.


Файловая система Unix для PDP-7 имела линейный массив индексных дескрипторов, каждый из которых описывал файл, директории (особый файл, содержащий имена и ассоциированный индекс), особые файлы, описывающие устройства. Вызовы файловой системы тоже не слишком отличаются от сегодняшних: read, write, open, creat, close. Отличие было в том, что единицей ввода-вывода в PDP-7 было машинное слово, а не байт. Примитивная по сегодняшним меркам операционная система предоставляла более удобную среду разработки, чем существовавшие аналоги. Всё очевиднее становилось, что изначально устаревшая PDP-7, накладывающая множество раздражающих ограничений на работу новой операционной системы, не сможет удовлетворить нужды для дальнейшего развития, как и вся серия машин PDP-7, а разрешать закупку нового оборудования руководство вряд ли решится.

Оссанна, до конца его дней увлекавшийся текстовым процессингом, предложил схитрить и попросить у начальства новейший микрокомпьютер компании DEC — PDP-11 — для создания инструментов редактирования и форматирования текста. А факт того, что для создания этих инструментов потребуется написать операционную систему, шел почти что как сноска. Запрашиваемая сумма была куда меньше, чем ранее — всего 65 тыс. долларов.


Предыдущие расплывчатые предложения встречались с неодобрением, это же было слишком узко́. Не сразу, но начальство клюнуло, уже в мае 1970 года благодаря усилиям Макмахона был произведен заказ на PDP-11. Машина прибыла в конце лета, но продукт был настолько новым, что накопительный диск пришлось ждать до декабря. Всё это время Томпсон, Ритчи и остальные продолжали работать над Unix на PDP-7. В это время новенький PDP-11 три месяца обсчитывал ходы шахматного коня на доске 6×8.

Лишь после установки накопителя PDP-11 всё усложняющаяся операционная система была переписана на новую машину. У версии Unix для PDP-11 не имелось особых преимуществ относительно версии для PDP-7. К примеру, всё так же не было многозадачности: лишь одна пользовательская программа могла находиться в ядре. Размеры системы были невелики: 24 килобайта ОЗУ (16 килобайт для операционной системы и 8 килобайт для пользовательских программ), диск с тысячей блоков (512 килобайт). Файлы были ограничены размером в 64 килобайта.

Затем была переписана программа roff, текстовый процессор, написанный Осанной. Впервые Unix испытали вне Bell Labs при работе в патентном отделе AT&T, где требовалось редактировать и форматировать заявки на патенты. Unix-система имела преимущества над испытываемой в это же время в патентном отделе коммерческой системой редактирования текста: во-первых, Unix имела поддержку 37-ой модели терминалов Teletype, печатавшей все требующиеся математические символы, во-вторых, в roff быстро добавили возможность нумеровать страницы, чем конкурент не обладал.

Во время второго полугодия 1971 года группа осуществляла поддержку трех машинисток и пыталась продолжать работу в свободное время. Unix получила хорошую репутацию за поддержку интересных функций на скромном оборудовании, и система была принята к использованию в патентном отделе AT&T, что давало возможность группе убедить руководство заказать ещё одну машину, другую модель PDP-11 — PDP-11/45, ещё более мощную, чем уже купленная.

В ранние годы Unix постоянно изменялась и эволюционировала, поэтому не было смысла выпускать версии или релизы, хотя периодически происходили издания программисткого руководства, и первые системы Unix носили названия этих изданий. Первое издание датируется ноябрем 1971 года.

Каждая программа для Unix в версии PDP-7 писалась на очень слабом ассемблере — к примеру, не было макрокоманд. Первым интересным языком был TMG Макклура, реализованный Макилроем. Потом Томпсон решил, что нельзя предлагать компьютерную систему без Фортрана, поэтому он начал писать Фортран в TMG, но намерение реализовать его продлилось неделю. То, что он сделал, было компилятором для нового языка B. Новый язык испытал сильное влияние BCPL, вкуса Томпсона к спартанскому синтаксису и скромные размеры места для компилятора, который производил простой и медленный, но исполняемый код, что сделало жизнь программистов легче. Позже кросс-компилятор PDP-7 для PDP-11 был написан на B, и постепенно компилятор для PDP-7 был транслитерирован из TMG в B. С прибытием PDP-11 почти сразу же на ней был настроен B. Ещё до прибытия накопителя для новой машины на PDP-11 был написан калькулятор.

Над переписыванием операционной системы на B не особо задумывались, даже ассемблер для новой ЭВМ переписывался на ассемблере, поскольку интерпретируемый код был слишком медленным. Также стояла проблема несоответствия ориентированного на машинное слово B и PDP-11 с байтовой адресацией.

Поэтому в 1971 году была начата работа над тем, что стало языком C. Всем прекрасна известна связь BCPL → B → C, и нет смысла повторять её, стоит лишь отметить, что в 1973 году ядро операционной системы было переписано на C, и Unix приобрел черты своих современных версий. Было ещё множество внешних изменений, и внутреннее строение системы стало более рациональным и простым. Успех попытки подтвердил, что C является полезным и практически универсальным инструментом для системного программирования, а не игрушкой для простых приложений. Сегодня лишь самые важные программы Unix-подобных систем пишутся на ассемблере, почти все утилиты и приложения написаны на C.

Годами Unix оставалась лишь исследовательским проектом Bell Labs, но в 1973 году авторы представили систему на симпозиуме Ассоциации по вычислительной технике, и запросы на предоставление копий посыпались сразу же. Это ставило AT&T в крайне неудобное положение: ещё в 1956 году монополист связи был ограничен от продажи продуктов и услуг, не связанных напрямую с телефонами и телекоммуникациями, и поэтому Unix не могла продаваться. Именно этим мы обязаны выпуску исходных кодов ранних версий практически всем желающим без поддержки, рекламы и исправлений.

И такая политика дала свои плоды: поклонники операционной системы уже тогда начали общаться и собираться вместе для обмена опытом, исправлениями и багфиксами, новыми инструментами и улучшениями системы. К популярности Unix в конечном счете привели не только простота, элегантность её устройства, востребованность и портируемость, но и формирование сплоченного комьюнити Usenix. Сообщества формировались не только в США, но и в Австралии (в университете Нового Южного Уэльса и Сиднейском университете), и все они обменивались магнитными лентами с новыми программами и исправлениями для системы. К середине 70-х годов именно это окружение сформировало современные традиции сообщества open-source.

Однако, чем популярнее становилась Unix, тем пристальнее юристы AT&T следили за несколько фривольным поведением лицензиатов. К примеру, Джон Лайонс, преподающий в университете Нового Южного Уэльса, в 1977 году опубликовал одну из самых известных книг всех времен «Комментарии к операционной системе Unix», включавшую и листинг исходных кодов ОС. Условия лицензирования Unix допускали обмен исходниками, поэтому вначале книга Лайона продавалась только лицензиатам. В 1979 году AT&T ужесточила наказание за использование книги в учебных классах, и нет ничего удивительного в том, что книга стихийно начала копироваться самиздатом, порой, фотокопии фотокопий имели практически нечитабельное состояние.

Юристы AT&T следили и за жизнью в Bell Labs. К примеру, между изданием шестого издания Unix в 1975 году и седьмого в 1979 Томпсон собрал из внешних и внутренних источников Bell Labs десятки важных исправлений для системы, которые собирался вбросить в пользовательскую базу. Юристы компании запретили ему это делать, поскольку это было бы формой поддержки. Но корректоры ошибок всё равно стали доступны: Лоу Кацу, основателю и презиенту Usenix, однажды позвонили и сообщили, что если он в 2 часа дня посетит определенное место на Маунтайн авеню (где и находится Bell Labs), то он найдет кое-что интересное. Кац последовал указаниям и нашел магнитную ленту с исправлениями, которые немедленно попали в руки бесчисленного числа пользователей.

После разрушения монополии Bell System компания AT&T более не была связана путами соглашения 1956 года. Одновременно с этим развивались многочисленные ответвления Unix, в первую очередь версия университета Беркли, которая была тщательно вычищена от кода AT&T, чтобы сделать её свободно распространяемой. После суда в 1992 году AT&T против университета Беркли законный статус Unix-клонов был подтвержден.

Если бы исходные коды Unix не были бы доступны общественности, Линус Торвальдс, как он сам говорит, вряд ли бы создал Linux, который в начале 90-х был написан с нуля. Сегодня именно Linux и семейство BSD несут крест отошедшей на задний план Unix и управляют всем: от мобильных телефонов до суперкомпьютеров.

К концу 70-х Unix распространялась в академических кругах, словно дешевый наркотик. Пик её популярности пришелся на ранние 90-е. По ряду причин она уступила множеству коммерческих и некоммерческих ОС, но её элегантное наследие продолжает активнейшим образом развиваться. Сегодня можно говорить, что Unix была самой популярной и влиятельной операционной системой в истории, сформировавшей вокруг себя мыслящее по-новому сообщество.

В этой статье, я расскажу об истории зарождении UNIX, также поговорим о связи между Unix и языком Си и расскажу зачем использовать Unix?

История Unix

Начала операционной системы Unix была положена в MULTICS , что означает « Мультиплексная информационная и вычислительная служба ». Проект MULTICS начался в середине 1960-х годов совместными усилиями General Electric, Массачусетского технологического института и Bell Laboratories. В 1969 году Bell Laboratories вышли из проекта.

Одним из сотрудников Bell Laboratories, участвующих в проекте, был Кен Томпсон. Ему нравился потенциал MULTICS , но он чувствовал, что он слишком сложен и что то же самое можно сделать более простым способом. В 1969 году он написал первую версию Unix под названием UNICS . Не смотря на то, что операционная система изменилась, название осталось и в итоге было сокращено до Unix .

Кен Томпсон объединился с Деннисом Ричи, который написал первый компилятор под язык Си . В 1973 году они переписали ядро ​​Unix на Cи. В следующем году версия Unix, известная как Пятое издание, была впервые лицензирована для университетов. Седьмое издание, выпущенное в 1978 году, послужило разделительной точкой для двух разных линий разработки Unix. Эти две ветви известны как SVR4 (System V) и BSD.

Кен Томпсон провел годичный отпуск в Калифорнийском университете в Беркли. Там он и два аспиранта, Билл Джой и Чак Хейли, написали первую версию Unix для Berkely, которая была распространена среди студентов. Берклийская версия Unix известна как BSD, Berkeley Software Distribution. Из BSD пришли редактор vi , оболочка C , виртуальная память , Sendmail и поддержка TCP / IP .

В течение нескольких лет SVR4 был более консервативным, коммерческим и хорошо поддерживаемым. Сегодня SVR4 и BSD очень похожи. Вероятно, самое большое визуальное различие между ними заключается в том, как работает команда ps .

Связь между Unix и языком Си

На момент написания первого Unix большинство разработчиков операционных систем считали, что операционная система должна быть написана на языке ассемблера, чтобы она могла эффективно функционировать и получать доступ к оборудованию. Unix был не только инновационным в качестве операционной системы, он был новаторским в том смысле, что он был написан на языке Cи , который не был языком ассемблера.

Сам язык Си работает на достаточно высоком уровне, чтобы его можно было переносить на различные компьютерные устройства. Большая часть общедоступного программного обеспечения Unix распространяется в виде программ на Cи, которые необходимо соблюдать перед использованием.

Многие Unix-программы следуют синтаксису Си. Системные вызовы Unix рассматриваются как функции Cи.

Для системных администраторов Unix это означает, что понимание Cи может облегчить понимание Unix.

Зачем использовать Unix?

Одна из главных причин использования Unix - сетевые возможности. Для других операционных систем необходимо приобрести дополнительное программное обеспечение для работы в сети. С Unix сетевые возможности являются просто частью операционной системы. Unix идеально подходит для таких вещей, как электронная почта по всему миру и подключение к Интернету.

Слоган Unix (Live Free or Die - Живи свободно или умри) Слоган Unix (Live Free or Die - Живи свободно или умри)

Unix был основан на философии small is good . Идея состоит в том, что каждая программа предназначена для того, чтобы хорошо выполнять одну работу. Поскольку Unix разрабатывался разными людьми с разными потребностями, он превратился в операционную систему, которая является одновременно гибкой и простой в адаптации для конкретных нужд.

Unix был написан на машинно-независимом языке. Таким образом, Unix и Unix-подобные операционные системы могут работать на различном оборудовании. Эти системы доступны из разных источников, некоторые из них бесплатны. Из-за этого разнообразия и способности использовать один и тот же пользовательский интерфейс во многих различных системах, Unix считается открытой системой.

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

Linux — удивительное творение: технология, уходящая своими корнями в 1970-е и активно разрабатываемая в 1990-х годах, стала широко распространенной в начале 21 века. В этой статье мы поговорим об истории Unix и BSD и о том, как данные системы привели к развитию Linux.

Примечание: В этой статье мы рассмотрим только ключевые тенденции и события в развитии операционных систем от Unix и BSD к Linux.

Первоначальные преимущества Unix

Деннис Ритчи и Кен Томпсон выпустили первый релиз операционной системы Unix 3 ноября 1971 года. Когда историки обсуждают, что особенного было в Unix в то время, они обычно подчеркивают, что Unix поддерживала возможность одновременной работы нескольких пользователей, в то время как в других операционных системах того времени одно задание выполнялось от начала и до конца без возможности прерывания. Я думаю, что более важным отличием Unix была портируемость системы. В те года большинство операционных систем были привязаны к конкретной архитектуре процессора. С помощью Unix вы могли обновлять свой компьютер годами и десятилетиями и по-прежнему использовать одну и ту же операционную систему, и приложения. Это дало большой толчок в развитии вычислительной техники.


Сегодня переносимость Unix и её утилит в полной мере присутствует и в Linux: изначально разрабатываемая под процессоры Intel, система работает на нескольких различных архитектурах. Когда ядро Linux совершило скачок от процессоров Intel к архитектуре ARM, тем самым сделав доступным использование Linux на небольших (появившихся в 1990-х годах) мобильных устройствах, то это событие вызвало всеобщее волнение в Linux-сообществе и открыло новые перспективы развития вычислительной техники.

Значимость языка Си

Переносимость Unix обеспечивалась тем, что вместо Ассемблера для создания системы применялся высокоуровневый язык программирования Си. По сути, ядро Unix было одной из первых крупных программ, написанных на языке Си.

В отличие от них, язык Си был очень близок к компьютерной архитектуре. Он реализовал побитовые операции с помощью масок (которые влияли на определенные биты в переменной) и сдвигов (которые перемещали биты внутри переменной). Исходя из устройства PDP-11 и языка Ассемблера, разработчики решили реализовать использование строк следующим образом: поскольку длина строки могла варьироваться, то для их представления требовались дополнительные накладные расходы, поэтому язык Си просто хранит каждую строку вместе с завершающим нулевым символом (нуль-терминатором), как это делалось в компьютерах PDP, для которых Си и был первоначально разработан. Концепция unions языка Си, позволяющая по-разному считывать одну и ту же область памяти, была полезна для драйверов устройств и сетей, поскольку заголовки сетевых пакетов, в зависимости от обстоятельств, могли изменяться.

В общем, когда программисты хотят писать очень эффективный, быстро работающий код, они используют язык Си или какой-нибудь его современный вариант. Разработчики, использующие другие языки, регулярно сравнивают свои программы с программами, написанными на языке Си, и хвастаются, когда им удается достичь сравнимой с языком Си эффективности. К сожалению, данная эффективность достигается в ущерб безопасности: язык Си не обеспечивает программиста той защиты, которая есть у других языков, и позволяет совершать серьезные ошибки (в частности, переполняя значения переменных или выходя за пределы массивов).

Попытки создания открытого исходного кода

Задолго до появления лицензий на свободное (или открытое) программное обеспечение, исходный код Unix был открыт для пользователей, которые лицензировали операционную систему. Создатели Unix владели авторскими правами на исходный код системы и иногда очень жестко контролировали его. Но эта позиция не умаляет революцию, вызванную доступностью исходного кода Unix.

Поскольку у пользователей Unix был доступ к исходным кодам системы, у них также появился и доступ к опциям, которые можно было изменить только путем перекомпиляции исходников системы. Практика перекомпиляции Unix для настройки параметров системы под конкретные нужды серверов — еще одна традиция, продолженная в Linux.

Доступность исходного кода надежной, современной операционной системы являлось ощутимым благом для студентов. В Unix не только впервые были применены важные методы в области управления памятью, планирования и т.п., но также содержались любопытные структуры данных и алгоритмы, которые находили широкое применение и в других программах.

BSD и развитие Интернета

Следующий важный этап нашей экскурсии по развитию операционной системы Unix переносит нас в 1974 год на противоположное побережье от Bell Labs, где ученые в области компьютерных наук Калифорнийского университета в Беркли решили попробовать установить на свои системы Unix. Они и их студенты сочли Unix подходящим вариантом для своих исследований и начали совершенствовать ОС, расширяя её функционал путем добавления всевозможных новых системных вызовов и утилит.


Beastie — талисман BSD

Применяя Unix для тяжелых, связанных с сетями вычислений, разработчики BSD обнаружили отсутствие многих необходимых системных вызовов. В результате чего они добавили в систему новые системные функции, а также библиотечные вызовы (которые выполняются в пространстве пользователя, а не в пространстве ядре). Связь между Bell Labs и BSD стала двунаправленной, поскольку разработчики Unix позаимствовали свои любимые системные и библиотечные вызовы из BSD.

Сетевой стек был самым важным вкладом BSD в этом деле. История гласит, что BBN Technologies создали Интернет в рамках сотрудничества с оборонным агентством ARPA (позже DARPA). Но когда Интернет стал мейнстримом, в нем использовались стеки протоколов, сетевые службы и инструменты, созданные проектом BSD.

Компания AT&T, которой принадлежала Bell Labs, неплохо зарабатывала на лицензировании Unix.

Как уже ранее упоминалось, к системе прилагались её исходные коды. Но в Беркли сделали нечто гораздо более радикальное: они выпустили свой собственный код под лицензией, которая разрешала пользователям вносить изменения и делать всё, что они захотят, включая продажу системы с внесенными в нее изменениями. Лицензия BSD была одной из первых свободных лицензий на программное обеспечение с открытым исходным кодом. И она до сих пор применяется многими проектами.

Популярность BSD обуславливалась бесплатным распространением системы, а не каким-либо её техническим превосходством над Unix от Bell Labs. Как я уже упоминал, AT&T не испытывала никаких угрызений совести по поводу включения наработок BSD в Unix. Сегодня код BSD выглядит устаревшим и в некоторых моментах немного пугающим, но операционная система и её утилиты были очень популярны в то время. В конце 1970-х и начале 1980-х годов, до того, как персональные компьютеры стали коммерчески доступны, большой популярностью пользовались VAX и миникомпьютеры с BSD.

BSD также послужила толчком к прорыву, который привел Unix в коммерческое русло: основанию Sun Microsystems. Билл Джой и его коллеги воспользовались разрешительной лицензией BSD для продажи компьютеров с их собственной доработанной версией операционной системы BSD, называемой SunOS. Рабочие станции и серверы мини-компьютеров Sun Microsystems уничтожили поколение других компаний, производящих мини-компьютеры, и начали устанавливать стандарты для современных вычислений и сетей — всё на основе SunOS, что, конечно же, подразумевало использование BSD.

Раскол BSD

Примечание: Сторонники BSD любят указывать на тот факт, что в то самое время активно набирал популярность проект GNU/Linux, как бы намекая на то, что развитие BSD было бы точно таким же, как и GNU/Linux, если бы BSD не вовлекли в судебные тяжбы с AT&T.

Руководство начало принимать решения, которые другие участники проекта считали произволом. 386BSD, FreeBSD, NetBSD, OpenBSD — одна за другой небольшие команды недовольных разработчиков отделялись от основного проекта и создавали свои собственные ответвления от основной системы (т.н. форки). С другой стороны, несмотря на то, что в сравнении с BSD сообщество Linux было совсем незрелым, участники разработки ядра Linux сумели сохранить свое единство.

Можно было бы отнестись к распространению различных вариантов ответвления от BSD как к подарку пользователям. Ведь у каждой системы были свои сильные стороны, и пользователи могли выбирать то, что им больше подходило. Но форки не оставили после себя ни одного варианта с достаточно большой критической массой сообщества, за исключением, возможно, FreeBSD, которое позволило бы им развиваться. Любой, кто хотел вести разработку программ для BSD, должен был выбрать какой-то один, конкретный дистрибутив или же ему пришлось бы выполнить большой объем работы по портированию своих программ на различные дистрибутивы.

Unix вырывается вперед!

Поскольку различные BSD-проекты были отодвинуты на второй план, в 1980-х годах произошел беспрецедентный поворот к единой культуре операционных систем. Наблюдая за успехами Sun Microsystems, остальные производители (IBM, DEC и др.) тоже обратились к системам BSD или Unix.

Поклонники других операционных систем смотрели на особенности Unix и были сбиты с толку её, казалось бы, непреодолимым распространением. В дополнение к мини-компьютерам, производство которых отстаивали DEC и Sun Microsystems, компании начали выпускать рабочие станции, предназначенные для одного инженера или ученого. Хотя это было довольно дорого по сравнению с персональными компьютерами, предлагавшимися в 1980-х годах, цена на рабочие станции устанавливалась таким образом, чтобы компании могли предоставить каждому нуждающемуся в этом сотруднику свой собственный компьютер.

Коммерческому внедрению Unix в значительной степени способствовало создание стандарта портативного графического интерфейса. Этот интерфейс никоим образом не заменял командную строку, но позволял использовать текстовые процессоры, CAD/CAM, инструменты визуализации и другие важные приложения, к которым стремились профессиональные пользователи. Графический интерфейс был создан в рамках совместного проекта MIT, DEC и IBM по созданию распределительной вычислительной среды — Project Athena, который сыграл очень важную роль в создании X Window System.

Погоня за прибылью многочисленных вендоров привела к увеличению числа различных вариантов исполнения программ, что усложнило их переносимость. Частичным решением проблемы стало создание спецификации POSIX, предназначенной для стандартизации системных вызовов Unix, вызовов библиотек и основных утилит, таких как командная оболочка (shell).

Каждая реализация Unix, включая Linux, старалась поддерживать данный стандарт. И это обеспечило желанную согласованность в некоторых важных технологиях, таких как потоки (облегченные процессы), в которых остро нуждались многие разработчики в эпоху многоядерных процессоров.

Но, как и многие стандарты, POSIX не был совершенен и медленно реагировал на изменения окружающей среды. Например, он не мог правильно рассчитать время за доли секунды, что было необходимо для многих приложений. Время от времени какая-нибудь операционная система создавала лучший интерфейс, чем POSIX, для какой-либо функции, независимо от того, будут ли другие вендоры использовать это улучшение или нет.

Open Software Foundation (OSF)

История показывает, что люди часто объединяются перед лицом надвигающейся внешней угрозы. Именно в таком положении оказалась большая часть компьютерной индустрии в 1988 году, когда AT&T (владелец Unix) и Sun Microsystems объявили о несколько туманном партнерстве. Было неясно, насколько AT&T увеличит и без того растущий успех Sun Microsystems, присутствовала угроза для других поставщиков. Sun Microsystems отказалась от использования SunOS — системы, с помощью которой компания коммерциализировала рынок вычислительной техники, и переняла последнюю версию Unix от AT&T — UNIX System V Release 4 (SVR4).

Путь Microsoft

Прежде чем продолжить историю про Unix, я должен упомянуть про единственную важную операционную систему за последние 30 лет, которая почти ничем не обязана Unix — Microsoft Windows. После выпуска своего первого крупного проекта — операционной системы DOS, которая управляла персональным компьютером от IBM, Microsoft последовательно пошла по непересекающемуся c Unix пути.

Первая версия операционной системы Microsoft Windows не являюсь самостоятельной ОС, скорее графической надстройкой над DOS. Фактическая монополия Microsoft на операционные системы для ПК приносила компании в течение десятилетия большую выгоду, но растущие требования, предъявляемые приложениями к компьютерам в конце 1980-х годов, вынудили их искать совершенно новую базу для своей операционной системы. Они разработали обновленную операционную систему, называемую Windows NT, в основу которой легли идеи нескольких сторонних проектов (не Unix).

Одним из таких проектов был OpenVMS — операционная система, которую корпорация DEC создала для своей линейки компьютеров VAX. Когда цифровые технологии пришли в упадок, ведущий разработчик OpenVMS по имени Дэйв Катлер присоединился к Microsoft для разработки новой версии операционной системы Windows.

Другим проектом был Mach — исследовательский проект, возглавляемый Ричардом Рашидом из Университета Карнеги-Меллон. Mach являлся радикально новым шагом в построении архитектур операционных систем, в рамках которого выдвигалась концепция использования микроядра вместо привычного всем монолитного ядра. Микроядро выполняло только лишь минимальный набор обязанностей и использовало различные внешние службы для большинства задач, обычно выполняемых операционной системой. Теоретически концепция микроядра выглядела довольно привлекательной, отражала тенденцию к модульности, которая пронизывала вычислительную технику в течение последних четырех десятилетий (как современные микросервисы). Однако попытки использовать микроядро в операционных системах общего назначения потерпели крах и исчезли вместе с Mach. Хотя в основе архитектуры Windows NT поначалу и закладывалось применение микроядра, в конечном итоге Windows NT осталась без значительной части наследия микроядра Mach. В итоге Ричард Рашид покинул данный проект, чтобы присоединиться к Microsoft, заняв несколько высоких должностей в компании.

В Microsoft признавали важность операционной системы Unix. Доказательством тому служил тот факт, что компания в течение нескольких лет лицензировала вариант Unix под названием Xenix, внесла большой вклад в развитие ядра Linux и теперь предлагает в составе своей системы эмулятор Linux под названием WSL (Windows Subsystem for Linux).

Проект GNU

Ранее я упоминал, что BSD понравилась многим пользователям, потому что им не нужно было платить лицензионные отчисления компании AT&T за пользование Unix. Ричард Столлман увидел в этом еще больше возможностей в середине 1980-х годов. С характерным размахом, с помощью целого манифеста он объявил о создании клона Unix. В дополнение к дорожной карте данного проекта, этот манифест бросал прямой вызов понятию интеллектуальной собственности (термин, который Столлман позже определил как вредный сам по себе) и рассказывал о новом способе выпуска программного обеспечения, который Столлман в конечном итоге воплотил в виде лицензии GNU GPL, также называемой Copyleft.


Проект GNU, выпустив GNU Compiler Collection (GNU GCC) в конце 1980-х годов, сильно повлиял на компьютерную сферу, которая в то время бесцеремонно относилась к свободному программному обеспечению. Они были настолько лучше, чем другие компиляторы языка Си, что разработчики всей индустрии проприетарного ПО были несколько ошеломлены. У свободного программного обеспечения явно было будущее.

Но у проекта GNU, в прямом смысле слова, отсутствовало ядро. Оказалось, что это требует совершенно другого уровня сложности от утилит и библиотек, которые Столлман и его коллеги стремились разработать. Они назвали свой проект по созданию ядра — GNU Hurd, и решили использовать концепцию микроядра, которую мы видели в Mach. То ли из-за этого дизайнерского решения, то ли из-за какой-то другой слабости, Hurd прискорбно отстал от остальной части GNU. Таким образом, GNU был похож на велосипед с прекрасной рамой, рулем, тормозами и переключением передач, но без колес. Его пользователям приходилось зависеть от проприетарных вендоров, поставляющих наиболее важную часть операционной системы.


Пингвин Tux — талисман Linux

Движение за свободное ПО

Теперь мы можем обратиться к причине, по которой Linux-системы добились больших успехов, в то время как BSD-системы потерпели в этом неудачу.

Точно так же, как первоначальная привлекательность BSD в значительной степени основывалась на свободной лицензии, Linux-системы были замечены растущими центрами обработки данных 21 века как отличные операционные системы для массового развертывания. Проприетарные системы были обременены не только своей стоимостью, но и явными бюрократическими накладными расходами на приобретение лицензий и контроль за ними.

К концу 1990-х годов все компании, которые предлагали несколько иные версии Unix, поняли, что любое ПО и услуги, которые они надеялись предложить в будущем, должны будут работать на GNU/Linux. Предложение операционной системы, которую любой желающий мог бы свободно устанавливать, должно было стать центральным элементом их бизнес-стратегий.

Примечание: IBM официально перешла на GNU/Linux в 2000 году. В 2019 году они купили ведущего коммерческого поставщика GNU/Linux — компанию Red Hat. Даже Oracle, больше известная своими базами данных, нежели операционными системами (несмотря на покупку Sun Microsystems), лицензирует версию GNU/Linux — Oracle Linux.

Академическое и деловое признание свободного программного обеспечения с открытым исходным кодом демонстрирует то, насколько изменилось это движение со времен расцвета BSD. Ричард Столлман объединил движение за свободное программное обеспечение с проектом GNU. Некоторое время спустя сообщество сторонников ПО с открытым исходным кодом набрало силу, о чем свидетельствовало проведение в том же году крупной конференции по свободному программному обеспечению под названием LinuxWorld Conference and Expo (различные специалисты по свободному программному обеспечению также называют 1998 год поворотным моментом для свободного программного обеспечения).

Наследие Unix

Миллионы людей каждый час берут в руки мобильные телефоны и планшеты. Если у них есть устройства Android, то они запускают свои приложения в сильно измененной версии Linux от Google. Устройства Apple, в свою очередь, запускают адаптированную компанией Apple версию системы BSD, выпущенную в качестве операционной системы с открытым исходным кодом — Darwin. Что бы эти пользователи ни делали со своими устройствами, они, вполне вероятно, взаимодействуют с облачными серверами, работающими под управлением GNU/Linux. Таким образом, наследие Unix присутствует повсюду.

Временная шкала Unix и Linux

Примечания:

*Официальная публикация манифеста GNU произошла в 1985 году.

***Дело Welte против Sitecom в Германии подтверждает юридический статус лицензии GNU GPL.

Читайте также: