Multics unix minix linux windows

Multics — прародительница всех операционных систем

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

Но хотите — верьте, хотите — нет, первые компьютеры работали без каких-либо операционных систем, более того, изначально не существовало самого понятия «операционная система», причем в самом широком смысле этого слова.

Первый компьютер, созданный в 1945 году и именуемый ЭНИАК, представлял собой громоздкое устройство размером с несколько поставленных в ряд шкафов, вдоль которых взад и вперед прохаживался программист и нажимал разные переключатели, — именно так выглядел процесс программирования в то далекое время. Кстати, махина эта работала на лампах и умела выполнять аж пять тысяч операций сложений в секунду. Ручной способ ввода программ был невероятно медленным, и когда мощности компьютеров первого поколения возросли, и наконец-то появилась возможность вводить больше данных, ручное программирование стало нерациональным, поскольку ввод программ занимал несоизмеримо больше времени, чем получение результатов вычислений.

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

Время между нажатием клавиш только нам кажется коротким, но для компьютера, выполняющего миллионы операций в секунду, это недопустимый простой. Чтобы использовать операционное время более рационально, была создана специальная программа, переключающая «внимание» компьютера между пользователями. Переключение происходило в доли секунды, но пользователям казалось, что компьютер обслуживает их всех одновременно. Уметь переключаться компьютер должен был не только между пользователями, но и между периферийными устройствами, использующими специальные драйвера. Ими тоже нужно было управлять.

Этим и занималась упомянутая программа, известная как операционная система. Впрочем, название «операционная система» не является именем собственным, а скорее неким обобщением, описывающим функционал и предназначение всех программ, выполняющих подобные задачи. Первой операционной системой сегодня считается созданная в 1965 году Multics, однако при этом как-то упускается из виду, что Multics не возникла из ничего, что у нее были предшественницы, вполне достойные того, чтобы именоваться операционными системами. Таковой является BESYS, созданная в 1957 году компанией Bell Labs .

Эта примитивная система умела работать в пакетном режиме, разделяя операционное время между программами, вводимыми в компьютеры IBM 7090 и IBM 7094 с помощью перфокарт. Но BESYS была «сырой» и использовалась только для нужд Bell Labs, которая, похоже, не была настроена на дальнейшее улучшение своего программного продукта. BESYS канула в небытие, но наработки Bell Labs легли в основу создания той самой Multics, которая ныне по праву считается прародительницей всех операционных систем. В период между 1957 и 1965 годом появлялись и другие операционные системы, например, Compatible Time-Sharing System , CP/CMS и другие, но по своей масштабности они и близко не стояли к Multics.

Проект MAC, детищем которого стала Multics, был по тем временам поистине грандиозен. Помимо основанного на разделении операционного времени многопользовательского режима, разработчиками OS Multics на принципах многоуровневой защиты реализуется сегментно-страничная организация виртуальной памяти, проектируется и создается централизованная файловая система, возникает понятие файла, каталога и иерархической древовидной структуры хранения данных, появляются первые подключаемые библиотеки, хранящие фрагменты связанного исполняемого кода, одним словом, всё то, что мы видим в современных операционных системах.

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

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

Последний компьютер под управлением Multics был остановлен 31 октября 2000 года, а спустя семь лет документация и исходный код операционной системы были переданы Массачусетскому технологическому институту, который опубликовал их на своем сайте web.mit.edu/multics-history.

Поскольку вряд ли вам удастся раздобыть компьютер, на который можно было бы установить Multics, исходные коды системы могут вызвать разве что академический интерес. Multics ушла в прошлое, но заложенные в нее идеи дали обильные всходы, не только породив всё разнообразие UNIX-подобных систем, но и оказав опосредованное влияние на становление Windows.

Источник

Лекция по ОС

Мультипрограммные системы обеспечили возможность более эффективного использования системных ресурсов (например, CPU, памяти, периферийных устройств), но они еще долго оставались пакетными . Пользователь не мог непосредственно взаимодействовать с заданием и должен был предусмотреть с помощью управляющих карт все возможные ситуации. Отладка программ по-прежнему занимала много времени и требовала изучения многостраничных распечаток содержимого памяти и регистров или использования отладочной печати.

Появление электронно-лучевых дисплеев и переосмысление возможностей применения клавиатур поставили на очередь решение этой проблемы. Логическим расширением систем мультипрограммирования стали time-sharing системы , или системы разделения времени ). В них CPU переключается между задачами не только на время операций ввода-вывода, но и просто по прошествии определенного времени. Эти переключения происходят так часто, что пользователи могут взаимодействовать со своими программами во время их выполнения, то есть интерактивно. В результате появляется возможность одновременной работы нескольких пользователей на одной компьютерной системе. У каждого пользователя для этого должна быть хотя бы одна программа в памяти. Чтобы уменьшить ограничения на количество работающих пользователей, была внедрена идея неполного нахождения исполняемой программы в оперативной памяти. Основная часть программы находится на диске, и фрагмент, который необходимо в данный момент выполнять, может быть загружен в оперативную память, а ненужный – выкачан обратно на диск. Это реализуется с помощью механизма виртуальной памяти . Основным достоинством такого механизма является создание иллюзии неограниченной оперативной памяти ЭВМ.

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

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

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

В начале третьего периода появилась идея создания семейств программно совместимых машин, работающих под управлением одной и той же ОС. Первым семейством программно совместимых компьютеров, построенных на интегральных микросхемах, стала серия машин IBM/360. Разработанное в начале 60-х годов, это семейство значительно превосходило машины второго поколения по критерию цена/производительность.

За ним последовала линия компьютеров PDP, несовместимых с линией IBM, и лучшей моделью в ней стала PDP-11.

Желание сократить время ожидания ответа привело к разработке режима разделения времени , варианту многозадачности, при котором у каждого пользователя есть свой диалоговый терминал. Если двадцать пользователей зарегистрированы в системе, работающей в режиме разделения времени, и семнадцать из них думают, беседуют или пьют кофе, то CPU по очереди предоставляется трем пользователям, желающим работать на машине. Так как люди, отлаживая программы, обычно выдают короткие команды (например, компилировать процедуру на пяти страницах) чаще, чем длинные (например, упорядочить файл с миллионами записей), то компьютер может обеспечивать быстрое интерактивное обслуживание нескольких пользователей. При этом он может работать над большими пакетами в фоновом режиме, когда CPU не занят другими заданиями. Первая серьезная система с режимом разделения времени CTSS (Compatible Time Sharing System — Совместимая система разделения времени) была разработана в Массачусетском технологическом институте (MIT) на специально переделанном компьютере IBM 7094. Однако режим разделения времени не стал действительно популярным до тех пор, пока не получили широкого распространения необходимые технические средства защиты.

После успеха системы CTSS Массачусетский технологический институт, система исследовательских лабораторий Bell Labs и корпорация General Electric (тогда главный изготовитель компьютеров) решили начать разработку «компьютерного предприятия

общественного пользования» — машины, которая должна была поддерживать сотни одновременных пользователей в режиме разделения времени. Образцом для новой машины послужила система распределения электроэнергии. Когда вам нужна электроэнергия, вы просто вставляете штепсель в розетку и получаете энергии столько, сколько вам нужно. Проектировщики этой системы, известной как MULTICS

(MULTiplexed Information and Computing Service — мультиплексная информационная и вычислительная служба), представляли себе одну огромную вычислительную машину, воспользоваться услугой которой мог каждый человек в районе Бостона. Мысль о том, что машины, гораздо более мощные, чем их мэйнфрейм GE-645, будут продаваться миллионами по цене тысяча долларов за штуку всего лишь через тридцать лет, казалась чистейшей научной фантастикой, как если бы сегодня кто-либо вздумал проектировать сверхзвуковые трансатлантические подводные поезда.

Успех системы MULTICS был весьма неоднозначен. Эта система разрабатывалась для того, чтобы обеспечить сотни пользователей машиной, немногим более мощной, чем персональный компьютер с процессором Intel 386, хотя при этом имеющей возможность работы со значительно большим количеством устройств ввода-вывода. Это было не так уж безумно, как может показаться, потому что в те дни люди знали, как писать

маленькие, эффективные программы — навык, который впоследствии был утерян . Существовало много причин, по которым система MULTICS не захватила весь мир. Не последнюю роль сыграл тот факт, что эта система была написана на языке PL/I, а компилятор языка PL/I появился лишь через несколько лет, к тому же первую версию этого компилятора можно было назвать работоспособной с большой натяжкой. Кроме того, система MULTICS была чрезвычайно претенциозна для своего времени, во многом походя на аналитическую машину Чарльза Бэббиджа в девятнадцатом столетии.

Итак, MULTICS подала много конструктивных идей компьютерным теоретикам, но превратить ее в серьезный продукт и добиться коммерческого успеха оказалось намного тяжелее, чем ожидалось. Система исследовательских лабораторий Bell Labs выбыла из проекта, а компания General Electric совсем оставила компьютерный бизнес. Однако Массачусетский технологический институт проявил упорство и со временем получил работающую систему. В конце концов, она была продана как коммерческое изделие компанией Honeywell, купившей компьютерный бизнес General Electric, и установлена примерно в восьмидесяти больших компаниях и университетах по всему миру. Несмотря на свою малочисленность, пользователи системы MULTICS были отчаянно преданы ей. Например, компании General Motors, Ford и Управление национальной безопасности США оставили свои системы MULTICS только в конце 90-х годов, через 30 лет после выхода системы.

К настоящему времени идея компьютерного предприятия общественного пользования выдохлась, но она может благополучно вернуться к жизни в форме массивных централизованных Интернет-серверов (такие услуги предоставляют все компании производители суперкомпьютеров, например NEC), выполняющих основную часть работы, к которым будут присоединены относительно «глупые» пользовательские машины. Мотивировка, вероятно, будет следующей: большинство пользователей не захочет администрировать все более усложняющуюся и привередливую систему компьютера и предпочтет доверить эту работу команде профессионалов, работающих на обслуживающую сервер компанию. Электронная коммерция уже развивается в этом направлении, создаются различные компании, управляющие электронными супермаркетами на многопроцессорных серверах, с которыми соединяются простые машины клиентов. Все это очень напоминает замысел системы MULTICS.

Несмотря на неудачу с точки зрения коммерции, система MULTICS значительно повлияла на последующие операционные системы. Системе MULTICS также посвящен все еще активный web-сайт www.multicians.org, с большим количеством информации о системе, ее проектировщиках и пользователях.

Еще одним важным моментом развития во времена третьего поколения был феноменальный рост мини компьютеров, начиная с выпуска машины PDP-1 корпорацией DEC в 1961 году. Компьютеры PDP-1 обладали оперативной памятью, состоящей всего лишь из 4К 18-битовых слов, но стоили они по 120 тысяч долларов за штуку (это меньше 5% от цены IBM 7094) и поэтому расхватывались как горячие пирожки. На некоторых видах нечисловой работы они работали почти с такой же скоростью, как IBM 7094, что дало толчок к появлению новой индустрии. За этой машиной последовала целая серия других PDP (в отличие от семейства IBM, полностью несовместимых), и как кульминация — PDP-11.

Кен Томпсон (Ken Thompson), один из специалистов из Bell Labs, работавший над проектом MULTICS, впоследствии воспользовался PDP-7 для написания усеченной однопользовательской версии системы MULTICS. Эта работа позже развилась в ОС UNIX®, ставшую популярной в академическом мире, в правительственных управлениях и во многих компаниях.

Достаточно сказать, что по причине широкой доступности исходного кода различные организации создали свои собственные (несовместимые) версии, что привело к хаосу. Были разработаны две главные версии:

System V корпорации AT&T;

BSD (Berkeley Software Distribution) Калифорнийского университета Беркли.

Эти системы, в свою очередь, распадаются на отдельные разновидности. Чтобы стало возможным писать программы, работающие в любой UNIX-системе, Институт инженеров по электротехнике и электронике IEEE разработал стандарт системы UNIX, называемый POSIX, который теперь поддерживают большинство версий UNIX. Стандарт POSIX определяет минимальный интерфейс системного вызова, который должны поддерживать совместимые системы UNIX. Некоторые другие ОС теперь тоже поддерживают интерфейс POSIX.

Желание иметь свободно распространяемую рабочую (в противоположность образовательной) версию MINIX подвигло финского студента Линуса Торвальдса (Linus Torvalds) к написанию системы Linux. Эта система была разработана на основе MINIX и первоначально обладала ее характерными особенностями (например, поддерживала ту же файловую систему). С тех пор система Linux была значительно расширена, но она все еще сохраняет большую часть структуры, общей как для системы MINIX, так и для системы UNIX (на которой и была основана система MINIX). Большая часть того, что будет сказано о UNIX, применимо к System V, BSD, MINIX, Linux, а также к другим версиям и клонам UNIX.

Компьютеры третьего поколения потребляли меньше электроэнергии и были более компактными. Основная их особенность – унификация программных и аппаратных узлов и устройств . Появились семейства компьютеров. Семейство ЭВМ — это серия,

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

В ОС появились драйверы устройств. Появились правила разработки драйверов , а

также внесения в систему новых драйверов. Развитие получили концепции виртуальных устройств, управляющие программы которых имели унифицированный интерфейс.

Что нужно запомнить о компьютерах третьего поколения:

Аппаратная унификация узлов и устройств. Создание семейств компьютеров.

Унификация компонентов программного обеспечения.

Четвертое поколение (с 1980 года по наши дни): персональные компьютеры

Следующий период в эволюции операционных систем связан с появлением Больших Интегральных Схем (LSI, Large Scale Integration) — кремниевых микросхем, содержащих тысячи транзисторов на одном квадратном сантиметре. С точки зрения архитектуры персональные компьютеры (первоначально называемые микрокомпьютерами) были во многом похожи на мини-компьютеры класса PDP-11, но, конечно, отличались по цене. Если появление мини-компьютеров позволило отделам компаний и факультетам университетов иметь собственный компьютер, то с появлением микропроцессоров каждый человек получил возможность купить свой собственный персональный компьютер.

С середины 80-х годов начали расти и развиваться сети персональных компьютеров, управляемых сетевыми и распределенными ОС. В сетевой операционной системе

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

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

Распределенная ОС, напротив, представляется пользователям традиционной single-CPU системой, хотя она и составлена из множества CPU (находящихся на удаленных компьютерах). При этом пользователи не должны беспокоиться о том, где работают их программы или где расположены файлы; все это автоматически и эффективно обрабатывается самой ОС.

Чтобы создать настоящую распределенную ОС, недостаточно просто добавить несколько страниц кода к single-CPU ОС, так как распределенные и централизованные системы имеют существенные различия. Сейчас активно развивается направление кластеризации – организации нескольких отдельных компьютеров через высокопроизводительный сетевой интерфейс в сеть и представляющих, с точки зрения пользователя, единый вычислительный ресурс [ 6 ]. Распределенные системы, например, часто позволяют прикладным задачам одновременно обрабатываться на нескольких CPU, поэтому требуется более сложный алгоритм загрузки CPU для оптимизации распараллеливания.

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

Появились стандарты аппаратных интерфейсов.

Появились персональные компьютеры, а также встраиваемые системы (компьютеры, встраиваемые в бытовое и технологическое оборудование).

Произошла революция в области программного обеспечения, и, в частности, в области ОС:

Появилась ОС Unix. При создании Unix был разработан и включен в нее язык C,

что дало возможность создание переносимого программного обеспечения ;

позднее, большая часть ядра Unix была переписана на C, что сделало переносимой и саму Unix.

Были разработаны персональные ОС , предназначенные для работы непрофессиональных пользователей с компьютером.

ОС развивались и унифицировались, происходила дальнейшая стандартизация программных интерфейсов и увеличение их «дружественности».

Получили развитие сетевые технологии, появились открытые сетевые технологии. Был создан Интернет. Появились принципиально новые задачи, связанные с безопасностью хранения и передачи данных.

Что нужно запомнить о компьютерах четвертого поколения:

«Дружественность» пользовательских интерфейсов Сетевые технологии Безопасность хранения и передачи данных

В соответствии с условиями применения различают три режима ОС:

пакетной обработки; разделения времени; реального времени.

В режиме пакетной обработки ОС последовательно выполняет собранные в пакет задания. В этом режиме пользователь не имеет контакта с ЭВМ, получая лишь результаты вычислений. В режиме разделения времени ОС одновременно выполняет несколько задач, допуская обращение каждого пользователя к ЭВМ. В режиме реального времени ОС обеспечивает управление объектами в соответствии с принимаемыми входными сигналами. Время отклика ЭВМ с ОС реального времени на возмущающее воздействие должно быть минимальным.

Ниже остановимся на классификации ОС, согласно задачам, которые решают ОС.

Источник

Эта запись у меня в блоге

Операционная система UNIX — прародитель многих современных операционных систем, таких как Linux, Android, Mac OS X и многих других была создана в стенах исследовательского центра Bell Labs — подразделении компании AT&T. Вообще говоря, Bell Labs — настоящий рассадник питомник ученых, которые совершили открытия, буквально изменившие технику. Например, именно в Bell Labs работали такие ученые, как Уильям Шокли, Джон Бардин и Уолтер Браттейн, впервые создавшие биполярный транзистор в 1947 году. Можно сказать, что именно в Bell Labs был изобретен лазер, хотя к тому времени уже были созданы мазеры. Клод Шеннон, основатель теории информации также работал в Bell Labs. Там же работали создатели языка C Кен Томпсон и Денис Ритчи (о них мы еще вспомним), а также работает автор C++ — Бьярн Страуструп.

Bell Labs

На пути к UNIX

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

Разработка UNIX была не первая работа в области операционных систем, проводимых в Bell Labs. В 1957 году в лаборатории начали разрабатывать операционную систему, которая получила название BESYS (сокращение от Bell Operating System). Руководителем проекта был Виктор Высотский — сын русского астронома, эмигрировавшего в Америку. BESYS был внутренний проект, который не выпускался как законченный коммерческий продукт, хотя всем желающим BESYS рассылалась на магнитных лентах. Эта система была предназначена для выполнения на компьютерах серии IBM 704 — 709x (IBM 7090, 7094). Хочется называть эти штуковины допотопным словом ЭВМ, но, чтобы не резало слух, будем их называть дальше все-таки компьютерами.

IBM 704

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

В 1964 году в Bell Labs произошел апгрейд компьютеров, в результате которого на новых компьютерах от IBM BESYS уже не могла быть запущена, о кроссплатформенности тогда не было и речи. Компьютеры в то время IBM поставляла без операционных систем. Разработчики из Bell Labs могли бы начать писать новую операционку, но они поступили по-другому — присоединились к разработке операционной системы Multics.

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

А задумки у проекта были очень амбициозными. Во-первых, это должна была быть операционная система с полноценным разделением времени. Во-вторых, Multics писался не на ассемблере, а на одном из первых языков высокого уровня — PL/1, который был разработан в 1964 году. В-третьих, Multics могла работать на многопроцессорных компьютерах. В этой же операционной системе была иерархическая файловая система, имена файлов могли содержать любые символы и быть довольно длинными, также в файловой системе были предусмотрены символьные ссылки на директории.

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

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

Рождение UNIX

UNIX появился почти случайно, и виновата в этом была компьютерная игра «Space Travel» — космическая леталка, которую написал Кен Томпсон. Шел далекий 1969 год, игра «Space Travel» была рассчитана сначала на ту самую операционную систему Multics, а после того, как для Bell Labs был отрезан доступ к новым версиям Multics, то Кен переписал игру на Fortran и портировал ее на операционную систему GECOS, которая прилагалась к компьютеру GE-635. Но тут закрались две проблемы. Во-первых, у этого компьютера была не ахти какая хорошая система для вывода на дисплей, а, во-вторых, играть на этом компьютере было дороговато — что-то около $50-75 в час.

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

PDP-7

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

Кен Томпсон

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

Чуть позже, в 1970 году, когда была реализована многозадачность, операционку переименовали в UNIX и перестали считать сокращением. Именно этот год считается официальным годом рождения UNIX, и именно от первого января 1970 года отсчитывается системное время (количество секунд, начиная с этой даты). Эту же дату называют более пафосно — начало эры UNIX (по-английски — UNIX Epoch). Помните, нас все пугали проблемой 2000-го года? Так вот подобная проблема нас ждет еще в 2038 году, когда для представления времени не будет хватать 32-битных целых чисел, которые часто используются для определения даты, и время с датой станут отрицательными. Хочется верить, что к этому времени весь жизненно важный софт будет использовать для этой цели 64-битные переменные, чтобы отодвинуть эту страшную дату еще на 292 миллиона лет, а там уж что-нибудь придумаем.

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

PDP-11

Параллельно с разработкой Unics/UNIX Кен Томпсон и Денис Ритчи, начиная с 1969 года, разрабатывали новый язык B (Би), который был основан на языке BCPL, а тот, в свою очередь, можно считать потомком языка Algol-60. Ритчи предложил переписать UNIX на B, который был переносимый, хотя и интерпретируемый, после чего он продолжил модифицировать этот язык под новые нужды. В 1972 году вышла вторая версия UNIX — Second Edition, которая была написана практически полностью на B, на ассемблере оставался довольно небольшой модуль примерно в 1000 строк, так что перенос UNIX на другие компьютеры теперь давался сравнительно легко. Так UNIX стал портируемым.

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

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

Начиная с 1974-1975 годов UNIX начал распространяться за пределы Bell Labs. Томпсон и Ритчи публикуют описание ОС UNIX в «Communications of the ACM», а компания AT&T предоставляет UNIX образовательным учреждениям как средство для обучения. В 1976 году можно сказать, что произошло первое портирование UNIX на другую систему — на компьютер Interdata 8/32. Кроме того, в 1975 году вышла 6-я версия UNIX, начиная с которой появились различные реализации этой операционки.

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

Появление BSD

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

Одним из таких вузов, имевших доступ к телу исходникам был Калифорнийский университет в Беркли, а если есть чужие исходники, то невольно возникает желание подправить в программе что-нибудь под себя, тем более, что лицензия это не запрещала. Таким образом, через несколько лет (в 1978 году) появилась первая UNIX-совместимая система, созданная не в стенах AT&T. Это был BSD UNIX.

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

BSD — это сокращение от слов Berkeley Software Distribution, специальная система распространения программ в исходных кодах с очень мягкой лицензией. Лицензия BSD была создана как раз для распространения новой UNIX-совместимой системы. Эта лицензия разрешает повторное использование исходного кода, распространяющегося под ней, и, кроме того, в отличие от GPL (которого тогда еще не было), не накладывает каких-либо ограничений на производные программы. Кроме того, она очень короткая и не оперирует большим количеством нудных юридических терминов.

Первая версия 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

Однако первой от BSD отпочковалась операционная система SunOS, детище, как вы понимаете из названия, компании Sun Microsystems, к сожалению, ныне покойной. Это произошло в 1983 году. SunOS — это операционка, которая прилагалась к компьютерам, собранным самой фирмой Sun. Вообще говоря, у Sun за год до этого, в 1982 году, появилась операционка Sun UNIX, которая в своей основе имела кодовую базу Unisoft Unix v7 (Unisoft — это компания, основанная в 1981 году, и занимавшаяся портированием Unix на различное железо), но именно SunOS 1.0 основана на коде 4.1 BSD. SunOS регулярно обновлялась вплоть до 1994 года, когда вышла версия 4.1.4, а затем была переименована в Solaris 2. Откуда взялась двойка? Тут немного получилась запутанная история, потому что Solaris’ом сначала стали называть SunOS версии 4.1.1 — 4.1.4, разрабатывавшиеся с 1990 по 1994 годы. Считайте, что это был своеобразный ребрендинг, который прижился только, начиная с версии Solaris 2. Затем, вплоть до 1997 года выходили Solaris 2.1, 2.2 и т.д. до 2.6, а вместо Solaris 2.7 в 1998 году вышел просто Solaris 7, затем стала наращиваться только эта цифра. На данный момент последняя версия Solaris — 11, вышедшая 9 ноября 2011 года.

Логотип OpenSolaris

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

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

А теперь настала очередь рассказать про наиболее известную из реализаций UNIX — Linux. История Linux замечательна тем, что в ней сошлись сразу три интересных проекта. Но прежде чем говорить о создателе Linux — Линусе Торвальдсе, нужно упомянуть еще двух программистов, один из которых — Эндрю Таненбаум, сам того не ведая, подтолкнул Линуса на создание Linux, а второй — Ричард Столлман, чьими инструментами пользовался Линус при создании своей операционной системы.

Эндрю Таненбаум является профессором Амстердамского свободного университета и занимается в первую очередь разработкой операционных систем. Его перу совместно с Альбертом Вудхаллом принадлежит такая известная книга, как «Операционные системы: разработка и реализация», именно она вдохновила Торвальдса заняться написанием Linux. В этой книге рассматривается такая UNIX-подобная система, как Minix. К сожалению, Таненбаум долгое время рассматривал Minix только как проект для обучения навыкам создания операционных систем, но не как полноценную рабочую ОС. У исходников Minix была довольно ограниченная лицензия, когда можно изучать ее код, но нельзя распространять свои измененные версии Minix, да и сам автор долгое время не хотел применять патчи, которые ему слали.

Эндрю Таненбаум

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

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

Ричард Столлман

Про Столлмана можно рассказывать довольно долго, например, то, что он получил диплом с отличием по физике в Гарвардском университете. Кроме того, Столлман работал в Массачуссетском Технологическом Институте, где и начал писать свой знаменитый редактор EMACS в 1970-ых годах. При этом исходники редактора были доступны всем желающим, что не являлось какой-то особенностью в MIT, где долгое время держалась в некотором смысле дружеская анархия, или, как это называл Стивен Леви, автор замечательной книги «Хакеры. Герои компьютерной революции», «хакерская этика». Но чуть позже, в MIT начали заботиться о безопасности компьютеров, пользователям раздали пароли, неавторизованные пользователи не могли получить доступ к компьютеру. Столлман был резко против такой практики, он сделал программу, которая могла бы позволить узнать любой пароль любого пользователя, пропагандировал оставлять пароль пустым. Например, он рассылал пользователям вот такие сообщения: «Я вижу, что вы выбрали пароль [такой-то]. Я предполагаю, что вы можете переключиться на пароль «возврат каретки». Его гораздо легче набирать, и это соответствует принципу, по которому здесь не должно быть паролей». Но его усилия ни к чему не привели. Более того, новые люди, которые приходили в MIT уже начали заботиться о правах на свою программу, о копирайте и тому подобной мерзости.

Позже Столлман говорил (цитата из той же книги Леви): «Я не могу поверить в то, что у программного обеспечения должны быть владельцы. То, что происходило, саботировало в целом все человечество. Оно не давало людям извлечь максимум возможностей из существования программ». Или вот еще одна его цитата: «Машины начали ломаться, а чинить их было некому. Никто не делал нужные изменения в программном обеспечении. Нехакеры реагировали на это просто – они начинали пользоваться покупными коммерческими системами, принося вместе с ними фашизм и лицензионные соглашения».

В результате Ричард Столлман ушел из MIT и решил создать свою свободную реализацию UNIX-совместимой операционной системы. Так 27 сентября 1983 года появился проект GNU, что переводится как «Gnu is Not UNIX». Первой программой, относящейся к GNU стал EMACS. В рамках же проекта GNU в 1988 году была разработана собственная лицензия GNU GPL — GNU General Public License, которая обязывает авторов программ на основе исходников, распространяющихся под этой лицензией, также открывать исходники под лицензией GPL.

До 1990-го года в рамках GNU (уже не только Столлманом) писался разнообразный софт для будущей операционной системы, но у этой ОС не было своего ядра. За ядро взялись только в 1990-м году, это был проект под называнием GNU Hurd, но он «не выстрелил», последняя его версия вышла в 2009 году. Зато «выстрелил» Linux, к которому мы, наконец-то, подошли.

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

Линус Торвальдс

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

Когда операционная система стала более-менее вырисовываться, первой программой, которую Линус запустил на ней, была bash. Правильнее было бы сказать даже, что он подправлял свою операционную систему таким образом, чтобы bash, наконец, смог работать. После этого он стал постепенно запускать под своей операционной системой другие программы. А операционная система должна была называться совсем не Linux. Вот цитата из автобиографии Торвальдса, которая вышла под названием «Just for Fun»: «Про себя я называл ее Linux. Честное слово, я никогда не собирался выпускать ее под именем Linux, потому что это казалось мне слишком нескромным. Какое имя я приготовил для окончательной версии? Freax. (Поняли? Freaks — фанаты — и на конце х от Unix)».

25 августа 1991 года в конференции comp.os.minix появилось следующее историческое сообщение: «Привет всем пользователям minix! Я тут пишу (бесплатную) операционную систему (любительскую версию — она не будет такой большой и профессиональной, как gnu) для 386-х и 486-х AT. Я вожусь с этим с апреля, и она, похоже, скоро будет готова. Напишите мне, кому что нравится/не нравится в minix, поскольку моя ОС на нее похожа (кроме всего прочего, у нее — по практическим соображениям — то же физическое размещение файловой системы). Пока что я перенес в нее bash (1.08) и gсс (1.40), и все вроде работает. Значит, в ближайшие месяцы у меня получится уже что-то работающее, и мне бы хотелось знать, какие функции нужны большинству. Все заявки принимаются, но выполнение не гарантируется »

Обратите внимание, здесь уже упоминается GNU и программа gcc (на тот момент эта аббревиатура расшифровывалась как GNU C Compiler). И вспомните про Столлмана и его GNU, которые начали разрабатывать операционную систему с другого конца. Наконец, произошло слияние. Поэтому Столлман обижается, когда операционную систему называют просто Linux, а не GNU/Linux, все-таки Linux — это именно ядро, а многие обвески были взяты из проекта GNU.

17 сентября 1991 года Линус Торвальдс впервые выложил на публичный FTP-сервер свою операционную систему, которая на тот момент имела версию 0.01. С тех пор все прогрессивное человечество отмечает этот день, как день рождения Linux. Особо нетерпеливые начинают отмечать его еще 25 августа, когда Линус признался в конференции, что пишет операционку. Дальше пошло развитие Linux, и само название Linux укрепилось, потому что адрес, куда была выложена операционная система выглядела как ftp.funet.fi/pub/OS/Linux. Дело в том, что Ари Лемке — преподаватель, который выделил Линусу место на сервере, показалось, что Freax выглядит не очень презентабельно, и он назвал директорию «Linux» — как смесь имени автора и «x» на конце от UNIX.

Tux. Логотип Linux

Есть еще такой момент, что хотя Торвальдс и написал Linux под влиянием Minix, между Linux и Minix есть принципиальное с точки зрения программирования различие. Дело в том, что Таненбаум — сторонник микроядерных операционных систем, то есть таких, когда у операционной системы есть небольшое ядро с некоторым небольшим количеством функций, а все драйвера и сервисы операционной системы выступают в виде отдельных независимых модулей, а у Linux ядро монолитное, туда включены многие возможности операционной системы, поэтому под Linux, если нужна какая-то особая возможность, может понадобиться перекомпилировать ядро, внося туда какие-то изменения. С одной стороны у микроядерной архитектуры плюсы — это надежность и простота, в то же время, при небрежном проектировании микроядра, монолитное ядро будет работать быстрее, так как ему не надо обмениваться большими объемами данных со сторонними модулями. После появления Linux, в 1992 году, между Торвальдсом и Таненбаумом, а также их сторонниками в конференции comp.os.minix разгорелся виртуальный спор на тему, какая архитектура лучше — микроядерная или монолитная. Таненбаум утверждал, что за микроядерной архитектурой будущее, и Linux, не успев выйти, уже устарел. С того дня прошло уже почти 20 лет… Кстати, GNU Hurd, который должен был стать ядром операционной системы GNU, разрабатывался тоже как микроядро.

Мобильный Linux

Итак, с 1991 года Linux постепенно развивается, и хотя на компьютерах простых пользователей доля Linux пока не велика, на серверах и суперкомпьютерах он уже давно пользуется популярностью, и Windows пытается оттяпать свою долю в этой области. Кроме того, сейчас Linux занял хорошие позиции на телефонах и планшетах, ведь Android — это тоже Linux.

Логотип Andriod

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

Но Android — не единственный мобильный представитель Linux, кроме него есть еще операционная система MeeGo. Если за спиной Android стоит такая мощная корпорация, как Google, то у MeeGo одного сильного попечителя нет, она разрабатывается сообществом под эгидой The Linux Foundation, которому помогают такие компании как Intel, Nokia, AMD, Novell, ASUS, Acer, MSI и другие. В данный момент основная помощь идет от компании Intel, что не удивительно, так как сам проект MeeGo вырос из проекта Moblin, который был инициирован Intel. Moblin — это такой дистрибутив Linux, который должен был работать на портативных устройствах, управляемыми процессором Intel Atom. Упомянем еще один мобильный Linux — Openmoko. Linux довольно резво пытается укрепиться на телефонах и планшетах, Google c Android за дело взялся серьезно, перспективы же остальных мобильных версий Linux пока туманные.

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

Mac OS X

Теперь переключимся на другую операционную систему, также являющейся UNIX-совместимой — Mac OS X. Первые версии Mac OS, вплоть до 9-й, не были основаны на UNIX, поэтому не будем на них останавливаться. Самое интересное для нас началось после изгнания Стива Джобса из Apple в 1985 году, после чего он основал компанию NeXT, которая занималась разработкой компьютеров и софта к ним. В компанию NeXT попал программист Аветис Теванян, который до этого занимался разработкой микроядра Mach для UNIX-совместимой операционной системы, разрабатываемой в Carnegie Mellon University. Ядро Mach должно было заменить собой ядро BSD UNIX.

Логотип компании 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, поэтому на данный момент она нас не интересует, хотя сама по себе эта операционная система была очень интересной, и жалко, что ее развитие прервалось.

Через год, когда Джобс вернулся в Apple, при нем продолжилась политика приспособления NeXTSTEP для компьютеров Apple, а еще через несколько лет эта операционная система была портирована на процессоры PowerPC и Intel. Таким образом, серверная версия Mac OS X (Mac OS X Server 1.0) вышла в 1999 году, а в 2001 вышла операционная система для конечных пользователей — Mac OS X (10.0).

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

Заключение

После всего вышесказанного, у вас может возникнуть вопрос, какую же операционную систему можно считать UNIX? На этот счет нет однозначного ответа. С формальной точки зрения существует Единая Спецификация UNIX — стандарт, которому должна удовлетворять операционная система, чтобы ее можно было называть UNIX. Не путайте со стандартом POSIX, которому может удовлетворять и не UNIX-подобная операционная система. Кстати, название POSIX было предложено все тем же Ричардом Столлманом, а формально стандарт POSIX имеет номер ISO/IEC 9945. Получение единой спецификации — дело дорогое и долгое, поэтому не многие операционные системы с этим связываются. Из операционных систем, получивших такой сертификат можно назвать Mac OS X, Solaris, SCO и еще несколько менее известных операционных систем. Сюда не входят, ни Linux, ни *BSD, но ведь никто не сомневается в их «ЮниксОвости». Поэтому, например, программист и писатель Эрик Реймонд, предложил еще два признака для определения, является ли та или иная операционная система UNIX-подобной. Первый из таких признаков — это «неследственность» исходного кода от первородного UNIX, разрабатываемого в AT&T и Bell Labs. Сюда попадают BSD-системы. Второй признак — «UNIX по функциональности». Сюда попадают операционные системы, которые ведут себя близко к тому, как описано в спецификации UNIX, но не получили формальный сертификат, и, кроме того, никак не связаны с исходниками исходного UNIX. Сюда относится Linux, Minix, QNX.

На этом мы, пожалуй, остановимся, а то получилось и так слишком много букв. В этот обзор попали в основном истории появления наиболее известных операционных систем — вариаций BSD, Linux, Mac OS X, Solaris, за бортом остались еще некоторые UNIX-ы, такие как QNX, Plan 9, Plan B и некоторые другие. Как знать, может быть в будущем и про них еще вспомним.

Ссылки

  • Как это всё начиналось
  • Unix History
  • Just for fun
  • Хакеры, герои компьютерной революции
  • Google Buys Android for Its Mobile Arsenal
  • Руководство FreeBSD

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

Today, the people using UNIX and other UNIX-like systems typically think of those systems as being free and open source systems as they use BSD, Linux, SerenityOS, or Open Indiana. While macOS/Darwin is a UNIX system and Darwin is mostly open source, the majority of people using it either do not know that or they at least do not think of it in that way. I find this association of UNIX with free and open source software fascinating because it is rather at odds with the majority of the history of such systems. Let’s dig in to that history a bit.

In the 1930s, two men were responsible for starting research into computation at the Massachusetts Institute of Technology. These were Vannevar Bush and Claude Shannon. These two guys each came at the topic from both ends of computation. They were interested in the organization of information and in numerical computation. Vannevar Bush, together with Harold Locke Hazen, built the first practical general-purpose differential analyzer. This was a mechanical analogue computer comprising six integrators, and it was capable of solving differential equations. Claude Shannon was employed in Bush’s lab at MIT running this machine.

the MIT campus, image from WikiPedia

In Bush’s famous essay, “As We May Think,” Bush envisioned an electro-mechanical machine for the storing, sorting, linking, and searching of information. This was monumental in making many different ideas popular.

Bush’s name is a little more well-known than Claude Shannon’s (probably because Vannevar Bush dreamed up the memex, and also likely because he founded Raytheon). This is tragic, because Claude Shannon is responsible for perhaps the largest breakthrough in in the history of the last century. In 1937, his master’s thesis proved that Boolean algebra could be used to arrange electro-mechanical relays in telephone exchanges, and further that such arrangements of relays could be used to solve all Boolean algebraic problems. As if this wasn’t enough, the guy then designed a 4-bit full adder. This thesis became the basis for digital circuit design.

Bush left MIT for the Carnegie Institution of Washington in 1938, and later worked within the government during WWII among other endeavors. Shannon left MIT after getting his PhD in 1940, and he also ended up doing WWII research work within the halls of government and elsewhere.

With people like Bush and Shannon having established the relationship between MIT and the US government/military, the US Navy and the US Air Force reached out to MIT in 1944 to build a digital flight simulator for bomber crews. This resulted in Project Whirlwind and thereby in MIT’s first digital computer. In the course of this endeavor, the focus shifted entirely from the flight simulator to the computer itself. Slightly off topic, but this machine resulted in the invention of magnetic core memory by Jay W. Forrester. This was vital for the development of later computers. Whirlwind was announced publicly as operational in 1951, and the machine was shutdown in 1959. Projects carried out using Whirlwind created a community of computer researchers and computer enthusiasts within MIT. This was unusual at the time as most people viewed computers merely as a tool. Any notion of computer science as its own field of study would have been considered a bit absurd before this.

IBM, naturally, contributed funds to build the MIT Computation Center in 1955, and this was completed by 1957. The center had an IBM 704 owned and maintained by IBM, but use of this computer was not billed, which was rather unique for Big Blue. MIT was able to use the machine part of the time, other colleges and universities in New England for another part of time, and IBM for another part of time. Any unused time was MIT’s. In the years that followed, more computers would be added to center, but the issue of computer time usage remained. This led to the creation of the Compatible Time Sharing System, which would allow many users to make use of a single machine at the same time.

Outside of MIT, the world was shaken. The Soviet Union launched Sputnik in 1957. That this was accomplished by the Soviets and not be the Americans struck many as a sign that the United States was falling behind both in science and in engineering. As a direct result of this, Dwight Eisenhower appointed then President of MIT James Killian as the Presidential Assistant for Science. Again, the relationship established by Vannevar and Claude came into play. To advance the USA’s efforts in science in engineering, Eisenhower also created the Advanced Research Projects Agency. The first ARPA director was a VP of General Electric. The director of ARPA in 1962 was one Jack Ruina. He created a computing focused arm of ARPA called IPTO (Information Processing Techniques Office). He was later a professor at MIT and eventually the President of the University. Joe Licklider was the first director of the IPTO, and he had a mission to create an interactive computer time sharing system.

In 1961, MIT purchased machines from DEC. The first was a PDP-1. On these DEC machines, early hacker culture developed; a culture of playful creativity and code sharing with cheap time sharing as the medium in which that culture lived. Just a few years later, they would get a PDP-10. On the PDP-10, MIT would make ITS (the Incompatible Time Sharing System). The first LISP compiler written in LISP was written in ‘62 at MIT as well.

Again the world was shaken. This time, it was 1962 and the Cuban Missile Crisis. The Pentagon was having trouble with their computer systems. Specifically, the systems were crashing under extreme demand (according to Fernando Corbató). A meeting was held in Hot Springs, Virginia to discuss solutions. Present at this meeting were members of the military, MIT, and IPTO. This was Licklider’s chance to pitch his system, and his pitch was successful.

In 1963 Project MAC (Project on Mathematics and Computation) was started with 2 million dollars in funding from ARPA. Fernando Corbató joined Project MAC from the MIT Computation Center, and brought CTSS with him. He arranged for the project to use an IBM 7090. With these two items, Project MAC began working on MULTICS in 1965.

The broad goal of Project MAC is the experimental investigation of new ways in which on-line use of computers can aid people in their individual intellectual work, whether research, engineering design, management, or education. One envisions an intimate collaboration between man and computer system in the form of a real-time dialogue where both parties contribute their best capabilities. Thus, an essential part of the research effort is the evolutionary development of a large, multiple-access computer system that is easily and independently accessible to a large number of people, and truly responsive to their individual needs.
— Project MAC Progress Report I

As of 1964, there were multiple players in this project: MIT, GE, ARPA, Bell Labs. Bell was the first to drop out in ‘69 but not before allowing the MULTICS project to extend to PDP-7 and to PDP-11 computers within Bell Labs. With Bell out, MIT took over the leadership of the project. MULTICS (Multiplexed Information and Computing Service) became available internally at MIT to Information Processing Center customers around that same time. The operating system was designed to be computing as a utility, similar in nature to electrical, to telephone, or to water. So, you’d have many terminals connected to the computer, and in the minds of General Electric, every minute of every terminal’s access to the computer would be billable… not unlike access to Amazon’s or Microsoft’s clouds.

In 1970, GE exited the computer business entirely. They sold that arm of their company to Honeywell, and that sale included Multics.

MULTICS was a mixed success. It was designed to support hundreds of users on a machine only slightly more powerful than an Intel 386-based PC, although it had much more I/O capacity. This is not quite as crazy as it sounds. since in those days people knew how to write small, efficient programs, a skill that has subsequently been completely lost. There were many reasons that MULTICS did not take over the world, not the least of which is that it was written in the PL/I programming language, and the PL/I compiler was years late and barely worked at all when it finally arrived. In addition, MULTICS was enormously ambitious for its time, much like Charles Babbage’s analytical engine in the nineteenth century.
— Andrew Tanenbaum

In the end, only about 85 sites had MULTICS installations, and the system was a failure commercially. Honeywell sold its computing arm to Groupe Bull in ‘87. The need for MULTICS waned by the mid ‘70s as UNIX took over the operating system market for large/powerful computers.

Given that MULTICS was a Bell Labs endeavor at one point, many AT&T employees were exposed to the system. One of the employees who experienced MULTICS was Ken Thompson. MULTICS had been derided as overly complex, overly large, and just generally bad and bloated. Ken wanted to write his own leaner system (potentially because he had also written a game, Space Travel, which needed a leaner system) and while he had access to MULTICS, he designed the new file system and new paging system for his new OS. Using a PDP-7, he continued his work. By August of ‘69, Ken Thompson, Dennis Ritchie, and Doug McIlroy had a self-hosting operating system that featured processes, device files, a hierarchical file system, an assembler, an editor, and an interactive command-line shell. By 1970, Brian Kernighan had given the system the name UNICS (Uniplexed Information and Computing Service) as a pun on MULTICS. The spelling was later changed to UNIX. Eventually, others within Ma Bell caught on to what was developing, and departments within Bell had started requesting UNIX for the systems they used. This caused a bit of heartache for the group of developers since everything was written in assembly language. UNIX had compilers for B (BCPL but smaller, made by Ken Thompson) and PL/I (TMG compiler made by McIlroy), but the system itself was written in neither, just assembly.

Due to memory constraints, CPU power, and other limitations of early computers nearly all system software was written in assembly language. By the ‘70s, computers were more powerful but prior limitations had created a bit of a cultural predilection for systems software being written in assembly. With the PDP-11 and UNIX, Dennis Ritchie began the process of improving B. With an improving B, Ken Thompson began writing the kernel in this evolving language. Requirements of the kernel created language requirements. The new language was called C, and UNIX version 2 included a C compiler.

In 1973, UNIX version 4 was released, and v4 was written almost entirely in C with only about a quarter of the code being truly machine dependent parts written in assembly. Version 5 was licensed to educational institutions later in ‘73. In 1975, UNIX made its commercial debut with UNIX version 6. As the system’s source code and documentation were included with licenses, the system was widely studied. This made UNIX a common system for educational study. In 1977, AT&T began purchasing various computers for the explicit purpose of porting UNIX to them. The fact that almost the entire system was written in C made this porting effort far easier than it would otherwise have been. UNIX was also starting to be sold by resellers. Despite being licensed, UNIX versions 1 through 10 are referred to as Research UNIX. UNIX 7 was the last widely released/licensed version of Research UNIX, and it is upon this version that the Berkley Software Distribution (BSD) was based. Internally, UNIX had other flavors, among which was PWB (Programmers Workbench). Version 7 and PWB were eventually combined to create UNIX System III in 1981.

By 1983, versions of UNIX with varying features and compatibility were being sold by Onyx Systems, Microsoft, Sun Microsystems, SCO, Interactive Systems Corporation, and others. The intense rivalry between all these different versions created a demand for standardization from within the UNIX market. To answer this demand, AT&T created UNIX System V which was a blend of PWD, System III, and improvements ported over from BSD. AT&T tried to push System V as a standard. In 1984, this pressure created the X/Open Consortium that aimed at creating compatible open systems. In 1985, AT&T released the System V Interface Definition with the same aim. In 1988, IEEE released the POSIX specification. AT&T then collaborated with SCO to merge System V and Xenix into System V/386, and thereafter with Sun Microsystems to merge System V, BSD, SunOS and Xenix into UNIX System V release 4. By 1993, things had settled down a bit with most systems being System V.4 with some BSD enhancement.

The guys at Berkley weren’t idle during any of this time. They had made BSD both POSIX compliant and largely free of original AT&T code (efforts starting in ‘88 as far as I can tell). When Berkley started selling this system commercially, the legal validity of BSD came into question and AT&T came after them. Lynne Jolitz and William Jolitz left around that time to start 386BSD which is the ancestor of FreeBSD, OpenBSD, and NetBSD.

On September 27th of 1983 at 13:35:59 EST, Richard Stallman posted the following to usenet groups net.unix-wizards and net.usoft with the subject: “new Unix implementation”

Free Unix!

Starting this Thanksgiving I am going to write a complete Unix-compatible software system called GNU (for Gnu’s Not Unix), and give it away free to everyone who can use it. Contributions of time, money, programs and equipment are greatly needed.

To begin with, GNU will be a kernel plus all the utilities needed to write and run C programs: editor, shell, C compiler, linker, assembler, and a few other things. After this we will add a text formatter, a YACC, an Empire game, a spreadsheet, and hundreds of other things. We hope to supply, eventually, everything useful that normally comes with a Unix system, and anything else useful, including on-line and hardcopy documentation.

GNU will be able to run Unix programs, but will not be identical to Unix. We will make all improvements that are convenient, based on our experience with other operating systems. In particular, we plan to have longer filenames, file version numbers, a crashproof file system, filename completion perhaps, terminal-independent display support, and eventually a Lisp-based window system through which several Lisp programs and ordinary Unix programs can share a screen. Both C and Lisp will be available as system programming languages. We will have network software based on MIT’s chaosnet protocol, far superior to UUCP. We may also have something compatible with UUCP.

Who Am I?

I am Richard Stallman, inventor of the original much-imitated EMACS
editor, now at the Artificial Intelligence Lab at MIT. I have worked
extensively on compilers, editors, debuggers, command interpreters, the
Incompatible Timesharing System and the Lisp Machine operating system.
I pioneered terminal-independent display support in ITS. In addition I
have implemented one crashproof file system and two window systems for
Lisp machines.

Why I Must Write GNU

I consider that the golden rule requires that if I like a program I must share it with other people who like it. I cannot in good conscience sign a nondisclosure agreement or a software license agreement.

So that I can continue to use computers without violating my principles, I have decided to put together a sufficient body of free software so that I will be able to get along without any software that is not free.

How You Can Contribute

I am asking computer manufacturers for donations of machines and money. I’m asking individuals for donations of programs and work.

One computer manufacturer has already offered to provide a machine. But we could use more. One consequence you can expect if you donate machines is that GNU will run on them at an early date. The machine had better be able to operate in a residential area, and not require sophisticated cooling or power.

Individual programmers can contribute by writing a compatible duplicate of some Unix utility and giving it to me. For most projects, such part-time distributed work would be very hard to coordinate; the independently-written parts would not work together. But for the particular task of replacing Unix, this problem is absent. Most interface specifications are fixed by Unix compatibility. If each contribution works with the rest of Unix, it will probably work with the rest of GNU.

If I get donations of money, I may be able to hire a few people full or part time. The salary won’t be high, but I’m looking for people for whom knowing they are helping humanity is as important as money. I view this as a way of enabling dedicated people to devote their full energies to working on GNU by sparing them the need to make a living in another way.

For more information, contact me.
Arpanet mail:
R…@MIT-MC.ARPA

Usenet:
…!mit-eddie!RMS@OZ
…!mit-vax!RMS@OZ

US Snail:
Richard Stallman
166 Prospect St
Cambridge, MA 02139

By June of 1987, the system had a working kernel, an assembler, compilers, and basic utilities. The system could be used for further development of itself. However, GNU was failing to attract enough development to make the system practical for daily usage. The user land application count grew, and the utilities and applications got better, but not the kernel. GNU Hurd was stalled. With the UNIX wars raging and subsequent announcement of a free version of BSD, GNU languished.

As noted, the fact that UNIX source code and documentation were issued with each license, UNIX was often used as the basis for the educational study of operating systems. Andrew Tanenbaum at Vrije Universiteit Amsterdam in Amsterdam Netherlands created an operating system called MINIX in 1987. MINIX version 1 was system call compatible with UNIX v7, but was intended to be run on the IBM PC and compatibles (16-bit x86). This was used with his course’s textbook Operating Systems: Design and Implementation. The source and binaries were on a floppy disk that came with the book.

Minix 3, image from WikiPedia

Linus Torvalds was born in Helsinki Finland on the 28th of December in 1969. Linus apparently loved computers at an early age. He had a Commodore VIC-20 when he was 11. It’s on that VIC-20 that he learned to program using Commodore BASIC. He also had a Sinclair QL. He attended the University of Helsinki and earned his master’s degree in computer science there (‘88 — ‘96). His university life was interrupted due to mandatory military service in Finland (Linus earned the rank of 2nd lieutenant). Along the way, he bought a copy of Andrew Tanenbaum’s book. In 1991, Linus bought a 386 machine and together with Andrew Tanenbaum’s book and OS he began using MINIX and developing his operating system kernel: Linux.

He posted this to usenet in comp.os.minix on August 26th of 1991 at 02:14:

Hello everybody out there using minix —

I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones.  This has been brewing since april, and is starting to get ready.  I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I’ll get something practical within a few months, and I’d like to know what features most people would want.  Any suggestions are welcome, but I won’t promise I’ll implement them :-)

                Linus (torva…@kruuna.helsinki.fi)

PS.  Yes — it’s free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that’s all I have :-(.

This was followed up on October 4th of 1991 with this post:

Free minix-like kernel sources for 386-AT

Do you pine for the nice days of minix-1.1, when men were men and wrote their own device drivers? Are you without a nice project and just dying to cut your teeth on a OS you can try to modify for your needs? Are you finding it frustrating when everything works on minix? No more all-nighters to get a nifty program working? Then this post might be just for you :-)

As I mentioned a month(?) ago, I’m working on a free version of a minix-lookalike for AT-386 computers. It has finally reached the stage where it’s even usable (though may not be depending on what you want), and I am willing to put out the sources for wider distribution. It is just version 0.02 (+1 (very small) patch already), but I’ve successfully run bash/gcc/gnu-make/gnu-sed/compress etc under it.

Sources for this pet project of mine can be found at nic.funet.fi (128.214.6.100) in the directory /pub/OS/Linux. The directory also contains some README-file and a couple of binaries to work under linux (bash, update and gcc, what more can you ask for :-). Full kernel source is provided, as no minix code has been used. Library sources are only partially free, so that cannot be distributed currently. The system is able to compile «as-is» and has been known to work. Heh. Sources to the binaries (bash and gcc) can be found at the same place in /pub/gnu.

ALERT! WARNING! NOTE! These sources still need minix-386 to be compiled (and gcc-1.40, possibly 1.37.1, haven’t tested), and you need minix to set it up if you want to run it, so it is not yet a standalone system for those of you without minix. I’m working on it. You also need to be something of a hacker to set it up (?), so for those hoping for an alternative to minix-386, please ignore me. It is currently meant for hackers interested in operating systems and 386’s with access to minix.

The system needs an AT-compatible harddisk (IDE is fine) and EGA/VGA. If you are still interested, please ftp the README/RELNOTES, and/or mail me for additional info.

I can (well, almost) hear you asking yourselves «why?». Hurd will be out in a year (or two, or next month, who knows), and I’ve already got minix. This is a program for hackers by a hacker. I’ve enjouyed doing it, and somebody might enjoy looking at it and even modifying it for their own needs. It is still small enough to understand, use and modify, and I’m looking forward to any comments you might have.

I’m also interested in hearing from anybody who has written any of the utilities/library functions for minix. If your efforts are freely distributable (under copyright or even public domain), I’d like to hear from you, so I can add them to the system. I’m using Earl Chews estdio right now (thanks for a nice and working system Earl), and similar works will be very wellcome. Your (C)’s will of course be left intact. Drop me a line if you are willing to let me use your code.

Linus

PS. to PHIL NELSON! I’m unable to get through to you, and keep getting «forward error — strawberry unknown domain» or something.

Version 0.11 was released in December of 1991 and was already self-hosting.

In January of 1992, there was a bit of a kerfuffle with Professor Tanenbaum, as Tanenbaum posted a message to comp.os.minix titled “LINUX is obsolete”:

I was in the U.S. for a couple of weeks, so I haven’t commented much on LINUX (not that I would have said much had I been around), but for what it is worth, I have a couple of comments now.

As most of you know, for me MINIX is a hobby, something that I do in the evening when I get bored writing books and there are no major wars, revolutions, or senate hearings being televised live on CNN. My real job is a professor and researcher in the area of operating systems.

As a result of my occupation, I think I know a bit about where operating are going in the next decade or so. Two aspects stand out:

1. MICROKERNEL VS MONOLITHIC SYSTEM
Most older operating systems are monolithic, that is, the whole operating system is a single a.out file that runs in ‘kernel mode.’ This binary contains the process management, memory management, file system and the rest. Examples of such systems are UNIX, MS-DOS, VMS, MVS, OS/360, MULTICS, and many more.

The alternative is a microkernel-based system, in which most of the OS runs as separate processes, mostly outside the kernel. They communicate by message passing. The kernel’s job is to handle the message passing, interrupt handling, low-level process management, and possibly the I/O. Examples of this design are the RC4000, Amoeba, Chorus, Mach, and the not-yet-released Windows/NT.

While I could go into a long story here about the relative merits of the two designs, suffice it to say that among the people who actually design operating systems, the debate is essentially over. Microkernels have won. The only real argument for monolithic systems was performance, and there is now enough evidence showing that microkernel systems can be just as fast as monolithic systems (e.g., Rick Rashid has published papers comparing Mach 3.0 to monolithic systems) that it is now all over but the shoutin`.

MINIX is a microkernel-based system. The file system and memory management are separate processes, running outside the kernel. The I/O drivers are also separate processes (in the kernel, but only because the brain-dead nature of the Intel CPUs makes that difficult to do otherwise). LINUX is a monolithic style system. This is a giant step back into the 1970s. That is like taking an existing, working C program and rewriting it in BASIC. To me, writing a monolithic system in 1991 is a truly poor idea.

2. PORTABILITY
Once upon a time there was the 4004 CPU. When it grew up it became an 8008. Then it underwent plastic surgery and became the 8080. It begat the 8086, which begat the 8088, which begat the 80286, which begat the 80386, which begat the 80486, and so on unto the N-th generation. In the meantime, RISC chips happened, and some of them are running at over 100 MIPS. Speeds of 200 MIPS and more are likely in the coming years. These things are not going to suddenly vanish. What is going to happen is that they will gradually take over from the 80×86 line. They will run old MS-DOS programs by interpreting the 80386 in software. (I even wrote my own IBM PC simulator in C, which you can get by FTP from ftp.cs.vu.nl = 192.31.231.42 in dir minix/simulator.) I think it is a gross error to design an OS for any specific architecture, since that is not going to be around all that long.

MINIX was designed to be reasonably portable, and has been ported from the Intel line to the 680×0 (Atari, Amiga, Macintosh), SPARC, and NS32016. LINUX is tied fairly closely to the 80×86. Not the way to go.

Don`t get me wrong, I am not unhappy with LINUX. It will get all the people who want to turn MINIX in BSD UNIX off my back. But in all honesty, I would suggest that people who want a **MODERN** «free» OS look around for a microkernel-based, portable OS, like maybe GNU or something like that.

Andy Tanenbaum (a…@cs.vu.nl)

P.S. Just as a random aside, Amoeba has a UNIX emulator (running in user space), but it is far from complete. If there are any people who would like to work on that, please let me know. To run Amoeba you need a few 386s, one of which needs 16M, and all of which need the WD Ethernet card.

When Linus chimed in, it was in the true Linus fashion we’ve all come to know and love and hate:

Well, with a subject like this, I’m afraid I’ll have to reply. Apologies to minix-users who have heard enough about linux anyway. I’d like to be able to just «ignore the bait», but … Time for some serious flamefesting!

In article <12…@star.cs.vu.nl> a…@cs.vu.nl (Andy Tanenbaum) writes:
>

>I was in the U.S. for a couple of weeks, so I haven’t commented much on
>LINUX (not that I would have said much had I been around), but for what
>it is worth, I have a couple of comments now.
>
>As most of you know, for me MINIX is a hobby, something that I do in the
>evening when I get bored writing books and there are no major wars,
>revolutions, or senate hearings being televised live on CNN. My real
>job is a professor and researcher in the area of operating systems.

You use this as an excuse for the limitations of minix? Sorry, but you loose: I’ve got more excuses than you have, and linux still beats the pants of minix in almost all areas. Not to mention the fact that most of the good code for PC minix seems to have been written by Bruce Evans.

Re 1: you doing minix as a hobby — look at who makes money off minix, and who gives linux out for free. Then talk about hobbies. Make minix freely available, and one of my biggest gripes with it will disappear. Linux has very much been a hobby (but a serious one: the best type) for me: I get no money for it, and it’s not even part of any of my studies in the university. I’ve done it all on my own time, and on my own machine.

Re 2: your job is being a professor and researcher: That’s one hell of a good excuse for some of the brain-damages of minix. I can only hope (and assume) that Amoeba doesn’t suck like minix does.

>1. MICROKERNEL VS MONOLITHIC SYSTEM

True, linux is monolithic, and I agree that microkernels are nicer. With a less argumentative subject, I’d probably have agreed with most of what you said. From a theoretical (and aesthetical) standpoint linux looses. If the GNU kernel had been ready last spring, I’d not have bothered to even start my project: the fact is that it wasn’t and still isn’t. Linux wins heavily on points of being available now.

> MINIX is a microkernel-based system. [deleted, but not so that you
> miss the point ] LINUX is a monolithic style system.

If this was the only criterion for the «goodness» of a kernel, you’d be right. What you don’t mention is that minix doesn’t do the micro-kernel thing very well, and has problems with real multitasking (in the kernel). If I had made an OS that had problems with a multithreading filesystem, I wouldn’t be so fast to condemn others: in fact, I’d do my damndest to make others forget about the fiasco.

[ yes, I know there are multithreading hacks for minix, but they are
hacks, and bruce evans tells me there are lots of race conditions ]

>2. PORTABILITY

«Portability is for people who cannot write new programs» -me, right now (with tongue in cheek)

The fact is that linux is more portable than minix. What? I hear you say. It’s true — but not in the sense that ast means: I made linux as conformant to standards as I knew how (without having any POSIX standard in front of me). Porting things to linux is generally /much/ easier than porting them to minix.

I agree that portability is a good thing: but only where it actually has some meaning. There is no idea in trying to make an operating system overly portable: adhering to a portable API is good enough. The very /idea/ of an operating system is to use the hardware features, and hide them behind a layer of high-level calls. That is exactly what linux does: it just uses a bigger subset of the 386 features than other kernels seem to do. Of course this makes the kernel proper unportable, but it also makes for a /much/ simpler design. An acceptable trade-off, and one that made linux possible in the first place.

I also agree that linux takes the non-portability to an extreme: I got my 386 last January, and linux was partly a project to teach me about it. Many things should have been done more portably if it would have been a real project. I’m not making overly many excuses about it though: it was a design decision, and last april when I started the thing, I didn’t think anybody would actually want to use it. I’m happy to report I was wrong, and as my source is freely available, anybody is free to try to port it, even though it won’t be easy.

Linus

PS. I apologise for sometimes sounding too harsh: minix is nice enough if you have nothing else. Amoeba might be nice if you have 5-10 spare 386’s lying around, but I certainly don’t. I don’t usually get into flames, but I’m touchy when it comes to linux :)

The entire thing is available for your reading pleasure with all of the rejoinder both vituperative and otherwise.

In February of 1992, Linux hit version 0.12 and adopted the GPLv2. Version 0.95 was released on the 8th of March in 1992, and this version enabled the use of X Windows. March of 1994 brought the world version 1.0.0. This was when Linux was considered ready for production environments. Version 2 was a big deal as well. SMP came to Linux with version 2, as did the make config series of commands.

In August of 1992, the Softlanding Linux System was released. This was the first Linux distribution that resembles what we currently think of as a Linux operating system. This was a buggy and poorly supported system and was superseded by Slackware in short order. In July of 1993, the first release of Slackware Linux was made. Ian Murdock was also frustrated with SLS, and he released the first version of Debian GNU/Linux in September of 1993. The first public release of Red Hat Linux was made on October 31st of 1994.

Linux exploded in popularity throughout the 90s, and it began to take market share from the BSDs and other UNICES in the server space. It also started taking market share away from UNIX and other systems in the super computer space. It was taking market share away from the UNICES and other systems in the educational space as well (servers, desktops, mainframes) which meant it was taking minds with it.

In June of 1998 the Avalon Cluster was completed. This was a super computer running Linux and it was the first super computer that was intended to run Linux from the start. AC was built at Los Alamos National Laboratory for $152k and comprised of 68 531MHz EV56 CPU cores of DEC Alpha awesomeness. Within two years, the number of super computers running Linux would reach 50 of the top 500. By 2006, Linux would claim over 80% of the super computer market.

Also in 1998, but in October, the first Halloween document was leaked to Eric S Raymond. He immediately published an annotated version on his website. This document was an internal Microsoft memo that was intended to help set the strategy to compete with open source software (and especially Linux) within Microsoft. The document makes note that Linux and open source developers had made high quality software, and also that Linux and open source software had gained a notable foothold in the market. It stated that Microsoft would need to “de-commoditize protocols” in order to effectively compete against Linux and other open source software. The Halloween Documents served Linux as exceptionally good marketing. Microsoft was the x86 software market at the time, and if they feared Linux, then Linux must have been good, right? There had to be something to fear.

Linux went on to completely dominate the server market over the course of the 2000s and 2010s. In the super computer market, Linux reached 100% market dominance. Due to being free of financial cost, highly configurable, and modular, Linux also spread to embedded computers in the early days of the 21st century. With the introduction of Android and ChromeOS, Linux became one of the single most common end-user operating systems on Earth.

Like gossamer dotted with dew, we can see threads crossing from MIT, to corporate-governmental-university work at ARPA, to a few software engineers at AT&T, and then to a disgruntled engineer back at MIT who really wanted a libre system, and to a professor in Netherlands who wanted something hands-on for his students, and finally to young man in Finland who just wanted to build a system as a hobby. A web of ideas hopping from place to place, from person to person. The impression, if you look at this causal domain too long, is that Linux is somehow the end of the earliest work; somehow the outcome of Vannevar’s dream of the memex. In the sense that Linux runs the internet which is Vannevar’s vision of a repository of linked data made manifest, I suppose that that is exactly what happened.

Discussion about this post

Изучение истории развития результатов творчества всегда интересно. Показательным в этом отношении является пример такого сложного и динамичного технологического объекта, как операционные системы. Подобные программные комплексы создаются годами и включают миллионы строк исходного кода. Они постоянно изменяются, а для успешной конкуренции их разработчикам приходится пополнять свои продукты новыми возможностями. Еще один важный момент из жизни операционных систем заключается в том, что аппаратура, для которой создаются эти программы, постоянно модернизируется и «обрастает» новыми функциями.
Предшественниками современных операционных систем можно назвать системы пакетной обработки, когда выполняемые задания вводились для выполнения поочередно. Сначала это ис¬полнялось вручную, а затем появились средства автоматизации операций. Так возникли предпосылки разработки программных средств управления набором (пакетом) заданий. Важной вехой в этом развитии стал 1964 год, когда IBM анонсировала, а затем и выпустила OS/360. Естественным развитием идей более эффективного использования возможностей вычислительных машин стало появление систем разделения времени. Список операционных си¬стем имеет более чем 200 наименований, и они классифицируются по 9-ти типам. Среди них есть и такие, которые уже не существуют (вернее, уже не поддерживаются разработчиками). Там приводится даже более десятка вымышленных систем, упоминаемых в книгах, фильмах, шутках и т.д. Хронология операционных систем начина¬ется с BESYS (Bell System, 1967 год). Но в связи с этим следует упомянуть еще и операционную систему для ЭВМ типа «мэйнфрейм», разработанную для модели IBM 704 в 1954 году. Ее создатель Жене Амдаль стал основателем компании Amdahl – мощного конкурента IBM на рынке мэйнфреймов.
Многие из представленных в хронология операционных систем программные продукты относятся к двум классам: проприетарные и свободные. Первые получили название от английского proprietary – «собственнические», т.е. относятся к программному обеспечению, которое имеет собственника. Такое программное обеспечение находится не в «общественном использовании», а в монопольном.
В монографии анализируются пути развития двух представителей операционных систем: семейства UNIX/Linux и продуктов фирмы Microsoft. Первое из них имеет как проприетарные, так и свободно распространяемые версии. Вторые же являются антагонистом свободных программ.
1.1. Операционные системы фирмы Microsoft
Microsoft – крупнейшая (прибыль за 2008 год – 17,7 млрд долл. при обороте в 60,4 млрд долл.) транснациональная компания по производству программного обеспечения для различного рода вычислительной техники – персональных компьютеров, игровых приставок, КПК, мобильных телефонов и прочего, разработчик наиболее широко распространенной на данный момент в мире программной платформы – семейства операционных систем Windows. Подразделение компании также производит некоторые аксессуары для персональных компьютеров (клавиатуры, мыши и т. д.). Продукты Microsoft продаются более чем в 80-ти странах мира, про¬граммы переведены более чем на 45 языков.
Фирма Microsoft была основана двумя студентами: Биллом Гейтсом и Полом Алленом в 1975 году. Они прочитали статью о персональном компьютере Altair 8800 и разработали для него ин¬терпретатор языка Basic. Его приобрел производитель аппаратуры. С этого началась компания, а ее учредители вместо учебы занялись бизнесом и значительно преуспели в этом.
История операционных систем для персональных компьютеров IBM PC начинается в 1981 году, когда на этом оборудовании была установлена MS DOS 1.0. Правда, эта операционная система не вполне может считаться разработанной в Microsoft. Ее прототип был разработан вне фирмы Microsoft в Seattle Computer Production и дополнен интерпретатором для Бейсика Била Гейтса.
Первая операционная система Microsoft была построена после покупки лицензии у American Telephone and Telegraph (АТ&Т) на UNIX. Так появилась операционная система Xenix, которую фирма разрабатывала несколько лет, но далее решила избавиться от нее, отдав предпочтение MS DOS.
Фирма Microsoft разработала и выпустила несколько десят¬ков операционных систем для разной аппаратуры, но в основном для персональных компьютеров IBM PC. Их можно разделить на такие группы:

  1. MS DOS. Серия операционных систем, поддерживающих только командную строку как интерфейс пользователя. Выпущены версии от 1.0 (1981 год) до 6.22 (1994 год). Многие компании (в числе которых IBM, DEC и даже МФТИ) создавали свои версии этой системы.
    2 . Windows 1, 2, 3 и 3.11. Надстройки над операционными системами MS DOS, обеспечи¬вающими режим графического интерфейса пользователя. Они не были полноценными операцион¬ными системами, а являлись оболочками, обеспечивающими стандартизацию использования ап¬паратного обеспечения и единообра¬зие интерфейсов для пользовательских программ. Первая их версия появились в 1985 году, а последняя – в 1995 году.
    Следует заметить, что имелся предшественник Windows – графическая оболочка компании Visi Corp под названием Visi On. Приведем пример интерфейса этой оболочки 1983 года (рис. 1).
Пример интерфейса графической оболочки Visi On
Рис. 2. Пример интерфейса гра-фической оболочки Windows1

А вот как выглядел для пользователей экран среды Windows 1.0, выпущенной два года спустя в 1985 году (рис. 2).

  1. Windows 9X. Эта серия операционных систем представлена такими версиями: Windows 95, Windows 98 и Windows Me. Они были предназначены для работы пользователей на персональ¬ных компьютерах IBM PC. Графический интерфейс этих систем оказал большое влияние на стан¬дарты работы пользователей с персональным компьютером. Вид экрана пользователя приводится на рис. 3.
  2. Windows NT. Сокращение в NT ее названии образовано от New Technology. Первая ее версия, созданная к 1993 году, должна была вытеснить MS DOS, чего не произошло. Следующие версии должны были потеснить на рынке Windows 95, что случилось только в начале 2000 годов. Создавались варианты этой системы как для работы пользователя на локальном компьютере, так и для управления локальной сетью. Версии этого направления до определенного времени называ¬лись NT, а с 2000 года получала разные имена: NT 5.0 – Windows 2000, NT 5.2 – Windows 2003, NT 6.0 – Windows Vista и Windows 2008, NT 6.1 – Windows 7.
  3. Windows СЕ. Эти операционные системы начали разрабатываться в 1996 году. В насто¬ящий момент они созданы для разнообразных мобильных устройств. Последняя версия в этой линейке – Windows mobile 6.
    Можно отметить, что фирма Microsoft является монополистом на производство программ¬ного обеспечения для персональных компьютеров. Под ее эгидой создается самое разнообразное ПО – операционные системы, офисные приложения, средства разработки, системы управления фирмами и предприятиями (корпоративные системы). Попытки завоевать другие аппаратные плат¬формы не увенчались успехом (кроме мобильных и переносных аппаратов). Есть определенные достижения у фирмы и на рынке суперкомпьютеров.
Рис. 3. Интерфейс операционной си-стемы Windows95

В последнее время компания стала ответчицей в исках антимонопольной комиссии ЕС и конкурентов. Приведем два примера.
В марте 2004 года Еврокомиссия признала американскую компанию виновной в использо¬вании своего доминирующего положения на европейском рынке программного обеспечения и наложила на компанию штраф в размере 497 млн евро, потребовав от Microsoft предоставить сто¬ронним разработчикам информацию о своих продуктах, чтобы они смогли беспрепятственно вы¬пускать совместимые программы. После того, как Microsoft не подчинилась данному решению, в июле 2006 года она вновь была оштрафована – на этот раз на 280,5 млн евро, после чего испол¬нила решение Еврокомиссии.
13 декабря 2007 года норвежская компания Opera Software ASA, разработчик веб-браузера Opera, заявила, что подала жалобу на Microsoft в Еврокомиссию. В жалобе Opera Software просит Microsoft дать пользователям «по-настоящему выбирать» браузер, поставляя с Windows браузеры конкурентов или отделив Internet Explorer от основной поставки. Кроме того, компания требует встроить поддержку открытых веб-стандартов в Internet Explorer.
1.2. История семейства операционных систем UNIX/Linux
Семейство операционных систем UNIX уникально по нескольким причинам:
• оно является долгожителем и, претерпев многочисленные изменения, «завоевало» разнооб¬разную аппаратуру;
• при переходе UNIX на другие аппаратные платформы возникали интересные задачи, реше¬ние которых принесло много нового в компьютерные технологии;
• на одной из версий UNIX были реализованы протоколы обмена данными в компьютерных сетях с разной аппаратной платформой, что позволяет считать UNIX предвестницей сегодняшнего Интернета, а также основой для широкого развития локальных сетей;
• авторы ее первых версий создали язык программирования высокого уровня С, который можно назвать (с учетом его последующего совершенствования) самым распространенным среди разработчиков;
• использование этого языка дало возможность принять участие в разработке операционной системы тысячам специалистов;
• появившиеся в семействе UNIX свободно распространяе¬мые операционные системы внесли много нового в пред¬ставление о том, как разрабатывать и распространять про-граммы для компьютеров.
Очень большое влияние на все стороны информационных технологий оказала и продолжает оказывать операционная система Linux, первоначально являвшаяся лишь вариантом UNIX. Она заво¬евала широкую популярность и сегодня перенесена на разные ап-паратные платформы, как и ее предшественница. В дальнейшем будем использовать термин «операционные системы семейства UNIX/Linux». Отметим, что часто Linux отделяют от UNIX, сравнивая достижения этой операционной системы со всеми остальными конкретными версиями этого семейства.
Рассмотрение истории и генеалогии UNIX/Linux интересно само по себе, но ее знание необходимо специалистам в области компьютерных технологий. Вот, например, что пишет по этому по¬воду автор книги, в которую вошли две программы подготовки системных администраторов операционной системы Solaris: «Как системный администратор Вы должны понимать историю операционной системы UNIX – откуда она произошла, как создавалась и чего достигла на сегодняшний день». Но в материале данной книги поднимаются и другие вопросы, что делает ее полезной и другим специалистам. В первую очередь, это – разработчики программного обеспечения.
Имя UNIX возникло позже и имеет интересную историю. А началось с МULTICS (МULTiplexed Information аnd Computing Service), проекта, ориентированного на распространенные в 60-е и 70-е годы прошлого века компьютеры класса «мейнфрейм» (mainframe). Его авторы первоначально обратились к IBM, но фирма не согласилась на затраты. Разработки МULTICS велись для вычислительной машины GE-645 (Gеnегаl Еlесtric). Для создания операционной системы в середине 60-х годов прошлого века объединились три фирмы: Gеnегаl Еlесtric Соmраnу, Massachusetts Institute of Technology (МIТ, Массачусетский технологический ин¬ститут) и American Telephone and Telegraph (АТ&Т). Последняя была представлена в проекте несколькими сотрудниками подразделения Веll Laboratories. Среди них были Кен Томпсон (Kеn Tompson) и Дэннис Ритчи (Dennis M. Ritchie). По завершении проекта должна была появиться многозадачная, многопользовательская операционная система.
Работа над программным комплексом МULTICS затянулась, и сотрудники Веll Labs вышли из проекта. Но в отличие от других Томсон продолжил работу по написанию операционной системы в своей компании. Позже к нему присоединился сначала Ритчи, а затем и другие сотрудники отдела. Можно сказать, что UNIX начиналась группой программистов, но основную роль среди разработчиков первых версий играл Кен Томпсон. Сначала, правда, в ближайшем окружении Кена родилось другое название системы – UNICS (Uniplexed Information and ComputingSystem). Оно напоминало об участии в проекте МULTICS, но не ориентировалось на многопользовательскую систему (МULTICS – МULTiplexed, но UNICS – Uniplexed). В скором времени UNICS превратилось в UNIX.
Первые версии UNIX были написаны на языке программирования ассемблер для компьютеров PDP. Она содержала подсистемы управления процессами и файлами, а также небольшой набор утилит.
В эти годы Томпсон работал над транслятором для FORTRAN’а. Но у него получился новый язык программирования B. Последний был интерпретатором, и, как следствие этого, не очень эффективным. Переработав его, Деннис Ритчи создал язык C, транслирующий исходный текст в машинный код, что повысило эффективность разрабатываемых программ. Этот язык программирования занимает промежуточное положение между языком, близким к машинным командам и позволяющим разрабатывать «быстрые» программы, и языком программирования высокого уровня (более удобным в использовании).
Язык C приобрел широкую известность как язык разработки операционной системы UNIX. Сегодня фактически все новые операционные системы написаны на С или на С++.
Возможно, UNIX так и не развилась бы, если бы ей не нашлось реального применения. Но в 1971 году в патентном отделе Bell была установлена именно она. Система стала решать реальные задачи для пользователей, а не ее разработчиков. Она была переписана на более мощный компьютер PDP 11. Со временем UNIX стала распространяться и в другие отделы Bell Labs. Появление первых версий системы сопровождалось выпуском документации с соответствующим номером. Они получили название «редакции» (Edition).
Начиная с 1971 года таких редакций было выпущено 10, а последняя датируется 1989 годом. Семь первых из них были разра¬ботаны в Веll Labs. В таблице после названия утилит в круглых скобках приводится номер, позволяющий точнее и быстрее найти информацию о ней (номер раздела стандартной для UNIX системы помощи man).

Таблица 1. Характеристика редакций UNIX AT&T

Обратим внимание на то, что операционная система с самой первой версии содержит команды обслуживания файловой системы с каталогами (mkdir, rmdir, chdir), многих пользователей (w, who), а также средства обмена информацией между последними (mail). Утилита mount позволяет включать в систему (монтировать) внешние носители информации. Эти команды «живут» и в современных версиях UNIX. Также обратите внимание, что с 1971 года в системе присутствуют средства работы с текстом. В частности, кроме ре¬дактора ed была разработана утилита форматирования текстов roff. Ее аналоги также используются и поныне.
В соответствии с законами США фирма AT&T, подразделе¬нием которой была Bell Labs, не имела права продавать программное обеспечение. Но с 1974 года система в виде исходных текстов стала передаваться разным организациям, в том числе университе¬там. Во время своего академического отпуска 1976 года Томпсон принял участие в проводимых в университете г. Беркли исследова¬ниях по разработке UNIX. В этом ему активно помогали Билл Джой (Bill Joy) и Чак Халей (Chack Haley).
Джой сформировал собственный дистрибутив UNIX, названный BSD (Berkeley Software Distribution – дистрибутив про¬граммного обеспечения Беркли). С его именем связано появление текстового редактора vi, командного интерпретатора c (она выпол¬няла функции оболочки операционной системы, а не компилятора языка программирования), использование виртуальной памяти (позволяющей загружать программы большего размера, чем сво¬бодная физическая память). Позже он стал одним из основателей Sun Microsystems, ныне одной из крупнейших компьютерных фирм.
Распространяемая в виде исходных текстов UNIX стала быстро завоевывать популярность. Многие компьютерные фирмы начали разрабатывать свои версии этой операционной системы. Например, в 1977 году было уже более 500 работающих экземпля-ров UNIX.
Важным в истории UNIX является 1980 год, когда фирма BBN (Bolt, Berenek и Newman) подписала контракт с DARPA (Department of AdvancedResparch Projects Agency – Управление перспективных исследований и разработок, являющееся подразде¬лением Министерства обороны США) на разработку и реализацию протоколов TCP/IP в BSD UNIX. Это можно считать началом раз¬работок, явившихся предвестником технологий, которые приняты в Интернете и сегодня. Версия системы, поддерживающая TCP/IP, также способствовала широкому распространению локальных се¬тей.
Популярность UNIX, поддержка передовых технологий, простота переноса на разные аппаратные платформы привели к тому, что создатели разных вариантов операционной системы начали вести настоящую конкурентную борьбу. В 1988 году фирмы AT&T и Sun объединились для разработки новой системы. В про¬тивовес этому несколько крупных фирм (IBM, DEC, HP и другие) основали альтернативный проект, назвав его OSF (Open Software Foundation). В результате появилась ОС с названием OSF/1.
В 1991 году финский студент Линус Торвальдс (Linus Tordvalds) написал первую версию операционной системы, назван¬ной Linux и распространяемой бесплатно. Тогда она представляла собой вариант UNIX для компьютеров IBM PC, но сегодня перене¬сена на многие аппаратные платформы. Свою разработку он начал будучи студентом, изучая учебные курсы по программированию на С и UNIX. Он занимался, используя операционную систему MINIX, созданную Эндрю С. Танэнбаумом. Такая система была описана в книге «Проектирование и реализация операционных систем». Она представляла собой миниатюрную UNIX-систему для IBM PC. Студента просто захватила концепция UNIX, ее простота и мощь. Свои разработки он обсуждал в Интернете со многими программи¬стами. Можно сказать, что Linux является продуктом программи¬стов всего мира, но руководящую роль в этом играет один человек – Линус Торвальдс.
Линус Тровальдс – нетрадиционный человек. Достигнувшая успеха операционная система, как кажется, должна была принести ему хорошие условия жизни. Но он отказался от сотрудничества и с представителями крупного бизнеса, и, что удивительно, со своими коллегами по разработке свободно распространяемых программ. Он имеет свой взгляд на развитие операционных систем и не часто идет на компромиссы.
Будучи не первой системой подобного класса, Linux быстро завоевала популярность, потеснив коммерческие операционные системы. Сам Торвальдс до сих пор занимается только основой си¬стемы – ядром. Доводят ее до пользователей фирмы, выпускающие инсталляторы. Первый имел имя SLS. Но успешно распространяе¬мый и называемый старейшим был создан фирмой Slackware в 1993 году. Версия Linux, поддерживающая графический интерфейс, была разработана в 1992 году. Такой режим стал возможным бла-годаря усилиям, прежде всего, Ореста Зборовски (Orest Zborowski).
1.3. Генеалогия семейства операционных систем и некоторые известные версии UNIX
Продолжим рассмотрение истории UNIX, описывая, как по¬являлись различные варианты системы. Следует отметить, что среди них нет «эталона», который можно объявить «чистым» или наибольшим образом впитавшим ее достоинства. Но все они имеют много общего: среду программирования, архитектуру и интерфейс пользователя. Объясняется это достаточно просто – все эти опера¬ционные системы «из одного племени». Одни системы впитывали свойства других, как бы являясь их «дочерними» версиями. То об¬щее, что есть у них – это заложенные в ядре возможности и методы их реализации.
Приведенные схемы имеют один вид соединения отдельных версий (элементов схем). Но это не означает, что все такие связи равнозначны. Некоторые версии просто изучались разработчиками на уровне исходных текстов, а другие включили в себя, возможно, без изменений, большие фрагменты исходных текстов программ.
Для понимания приведенного далее материала важно знать, как получали свои названия версии UNIX на первом этапе. Как было отмечено выше, выпускаемые в АТ&Т до 1979 года системы сопровождались созданием документации соответствующего но¬мера. Они назывались «редакции», а на первой схеме, называются VERSION 1, …, VERSION 6. Последняя явилась предшественницей трех дочерних: 2.0, BSD и ХЕNIX.
ЗАМЕЧАНИЕ. Многие источники вводят в рассмотрение еще одну версию – VERSION 7, считая, что от нее надо вести ис¬торию разделения на три упомянутых или некоторых из них.
AT&T 2.0 развивается и появляющиеся со временем новые версии получили названия System III, System V, а далее SVR2, SVR3, SVR4 (видимо S – System, V – 5, R – Release). Заметим, что версия System IV не была выпущена.
Как отмечалось ранее, название BSD связанно с Berkeley Software Distribution (дистрибутив программного обеспечения Беркли). Сокращенные имена версий этого ключевого направления имеют такой вид V.RBSD (видимо V – Version, R – Release).
Фирма Microsoft, купив лицензию UNIX, создает ХЕNIX. Попытка перенести UNIX VERSION 6 AT&T на персональный компьютер была предпринята в 1980 году, т.е. раньше выхода MS DOS. В дальнейшем она была продана фирме SCO (Santa Cruz Operation).
Следующая схема подтверждает тот факт, что многие вари¬анты UNIX связаны между собой. Разрабатываемые в разных орга¬низациях версии объединяются, впитывая все лучшее не только от своих предшественников, но и от систем, разработанных парал¬лельно другими производителями. Купив права на VERSION 6 (по некоторым источникам – VERSION 7), фирма Microsoft создала вариант операционной системы для аппаратной платформы Intel. Параллельно она разрабатывала MS DOS, которая коммерчески оказалась более успешной. Видимо, из-за этого Xenix была продана SCO. К этому времени в Bell Labs продолжалось совершенствова¬ние своих версий. Две фирмы (АТ&Т Bell Labs и SCO), объеди¬нившись, выпустили версию, названную SVR3.2 (рис.5).

Рис. 4. Когда UNIX покинула Bell Labs, она распалась на три ключе-вых компонента
Рис. 5. Объединение лучших харак-теристик SCO Unix c AT&T SVR3 создало версию SVR3.2

Фирма IBM часто удивляет принимаемыми решениями. В свое время она отказалась от участия в проекте, предшествовавшем UNIX. Но со временем сама создает собственный вариант операци¬онной системы AIX. Как видно из схемы, последняя объединяет достигнутое в SVR3 и 4.3BSD (рис. 6).
Представленная далее схема (рис. 7) демонстрирует истоки появления операционной системы SVR4, ставшей одним из стан¬дартов UNIX.
На последней схеме отмечено, что после прекращения раз¬вития UNIX в университете Беркли ее последняя версия распада¬ется на две ветви. Университет практически объявил о прекраще¬нии разработки версии BSD. На сегодняшний день развиваются две фракции – Mach (основа NeXT) и V1. Также подчеркнем факт по¬явления так называемой микроядероной архитектуры (Mach).

Рис. 6. Объединение 4.3BSD с SVR3 привело к созданию операционной системы AIX
Рис. 7. Объединение SVR3.2 и V1 послужило со-зданию SVR4

Прежде чем продолжить изложение материала, еще раз за¬метим, что история UNIX пересказана многократно. При этом не¬которые факты в разных источниках противоречат друг другу. Например, в разных источниках по-разному сообщается, на основа¬нии какой версии были реализованы варианты BSD и Xenix или в каком году фирма АТ&Т потеряла права на UNIX. Есть и другие примеры противоречий. Но нам кажется, что все они не могут «смазать» общего представления об интересной и богатой событи¬ями истории UNIX.
Следующая схема (рис. 8) демонстрирует этапы появления основных правопреемников исходных текстов программ АТ&Т UNIX.
Стоявший у истоков создания версий BSD Билл Джой стал соучредителем фирмы Sun, выпускающей UNIX сначала с именем Sun OS, а теперь Solaris (рис. 9). В отличие от других фирм Sun гор¬дится, среди прочего, еще и тем, что она одна из немногих круп¬нейших фирм компьютерной индустрии разрабатывает свою опера¬ционную систему для собственной аппаратной платформы (Solaris для процессоров SPARC).
Изучая MINIX, Линус Торвальдс пришел к разработке соб¬ственной системы, названной Linux (рис. 10). Во время разработки последней ее автор активно использовал Интернет для обсуждения возникающих проблем, принимаемых решений и перспектив разви¬тия.

Рис. 8. Правопреемники исходных текстов UNIX
Рис. 9. Появление Solaris
Рис. 10. Предшествен-ницей Linux является Minix
Рис. 11. Истоки
Mac OS X

На начальных этапах фирма Apple, основанная Стивом Джобсом (Steve Jobs), применяла операционную систему с общим именем System. Эта же фирма выпустила UNIX-подобную ОС AUX для процессоров Motorolla. Покинув фирму, Джобс создавал опера-ционную систему NeXTSTEP, а вернувшись в Apple – собственную ОС, названную Mac OS X. Она использовала исходные коды 4.4BSD UNIX. В новой системе применены идеи макроядра Mach 3.0. Естественно, Mac OS X создавалась с учетом опыта предыду¬щих разработок, в которых принимал участие Джобс (рис. 11).
Пожалуй, каждая из упомянутых здесь версий имеет не од¬ного непосредственного «предка», а впитала в себя все лучшее из многих разработок, созданных к моменту ее появления. Например, генеалогическое дерево версии UNIX содержит около 60 элементов со множеством соединений. Отметим, что в этой схеме Xenix ведет свое начало от VERSION 7. А вот первая версия 1BSD происходит от VERSION 6, а 3BSD имеет такую «наследственность»: сначала VERSION 7 и потом 32V. Видимо, это вносит путаницу в то, какая система является прямым наследником систем с именем BSD.
Приведем часть генеалогического дерева UNIX (рис. 12) с другого интернет — ресурса. Отметим, что, на наш взгляд, название 4-го столбца (AT&T/USL) следует изменить, как минимум, на AT&T/USL/Novell.
Но самым полным генеалогическим, видимо, является де¬рево, опубликованное по адресу http://www.levenez.com/unix/. Оно располагается более чем на 20 страницах формата А4, каждый из которых объединяет несколько десятков элементов.
Приведем краткую информацию о нескольких известных версиях рассматриваемой операционной системы, продолжая по¬пытку дать более полный ответ на вопрос: «Что представляет собой UNIX?». Решить, какие конкретные системы подпадают под «самые известные», трудно, а перечислить все – невозможно. Далее приво¬дим те из них, которые чаще упоминаются в приведенном в конце пособия списке литературы.

Рис. 12. Пример генеало-гического дерева версии UNIX

В интернете приводятся такие
варианты UNIX-подобных операционных систем:

AUX AIX BSD Dynix FreeBSD
GNU GNU/Linux HP-UX IRIX
Mac OS X Minix NetBSD NeXTSTEP
OpenBSD PC-BSD Plan 9 Plan B QNX
SCO OpenServer Solaris System V Tru64 Xenix

AT&T – самая первая версия операционных систем семей¬ства UNIX. Сначала она создавалась в Bell Labs, а затем в других организациях, образованных AT&T. В этой версии по мере разви¬тия опробованы и реализованы многие идеи, используемые в раз¬ных программных комплексах и сегодня. Удивляет, как уже с пер¬вых шагов в UNIX были выбраны решения, применяемые сегодня во многих операционных системах, и не только этого семейства. UNIX AT&T является преемницей MULTICS. Как сказано в мате¬риале С. Кузнецова, MULTICS стал «… неудачей с положитель¬ными последствиями».
Десять версий этого направления операционных систем со¬здавались около 20 лет. Переданные в разные организации исход¬ные тексты системы положили начало всем другим направлениям и версиям UNIX. Хотя работы над ней начались в Bell Labs AT&T, сейчас эта фирма не имеет к системе прямого отношения, продав права на нее.
Дадим краткую характеристику широко известных версий Unix-систем.

  1. USL, Unixware.
    Название этой версии связано с компанией USL, созданной AT&T после того, как она решила, что UNIX отвлекает ее от основ¬ного бизнеса. Из десяти версий UNIX AT&T только семь разраба¬тывались непосредственно в этой организации, а последние свя¬заны с USL. Само название компании менялось, и она даже полу¬чала новых хозяев. Последняя версия является стандартом для опе¬рационных систем UNIX и называется System V Release 4.2. Она впоследствии была приобретена фирмой Novell, известной выпус¬ком сетевой операционной системы для IBM PCс именем NetWare. На основе последней версии системы усилиями Novell и USL со¬здается система UnixWare. Но и эта система поменяла хозяина и далее некоторое время распространялась фирмой SCO.
  2. BSD.
    Вторая и очень важная ветвь операционных систем UNIX. Имеет такую историю: находясь в творческом отпуске, Кэн Томп¬сон установил UNIX в Калифорнийском университете в городе Беркли. Заметим, что он закончил его в свое время. Как было ска¬зано выше, два аспиранта, Билл Джой и Чак Халей, заинтересовав¬шиеся внутренним устройством UNIX, под его руководством стали дорабатывать систему, в результате чего появилась самостоятель¬ная ветвь в семействе UNIX – BSD. Билл Джой (как было сказано выше, в дальнейшем один из соучредителей фирмы Sun Microsystems), разработал для системы много интересных новинок. Уже во второй дистрибутив BSD была добавлена поддержка вирту¬альной памяти, позволяющая выполнять программы большего раз¬мера, чем оперативная память.
    Важным моментом в развитии этого варианта UNIX явля¬ется тот факт, что именно на ней (впервые в версии 4.1) был реали¬зован стек протоколов TCP/IP в исследовательской сети ARPANET. Таким образом, последняя приобрела все основные свойства, кото¬рыми обладает сегодняшний Интернет. Но реализация этого прото¬кола в BSD сделала все версии сетевыми.
    Создатели оригинальной ВSD UNIX после прекращения де¬ятельности Университета Беркли по разработке программного ком¬плекса выпустили версии для аппаратной платформы Intel, среди которых, пожалуй, наиболее известна FrееВSD, еще существуют OpenBSD и NetBSD. Если Вы интересуетесь историей и версиями хВSD, то обратитесь к источнику.
  3. Xenix.
    Фирма Microsoft известна как разработчик операционной системы для аппаратной платформы IBM PC. В конце 70-х и начале 80-х годов на основе лицензии, купленной у AT&T, была создана система Xenix. Она не получила такого распространения, как дума¬лось при ее создании. После выпуска делались заявления, что именно эта система является стратегическим курсом компании. Но впоследствии она была переделана так, что могла работать на раз¬нообразном оборудовании. Отметим, что разработчики первых вер¬сий MS DOS были, по-видимому, знакомы с идеями UNIX, прелом¬ляя их для условий работы на аппаратуре IBM PC. Исходные тек¬сты Xenix были проданы SCO, которая некоторое время поддержи¬вала их, а затем прекратила. Некоторая часть исходных текстов Xenix перекочевала в программные комплексы, в частности, SCO Open Server. Заметим, что Microsoft постоянно обращала свой взор на UNIX с разных сторон: как на систему, где возникают новые ин¬тересные идеи, как на конкурента, как на возможность на основе этой системы объединиться с другими компаниями для развития нового направления бизнеса.
  4. SCO.
    Версия с таким названием сегодня не распространяется. Но она была популярной. Компания Santa Crus Operation (сокращенно SCO) купила у AT&T лицензию на UNIX. В 1988 году три фирмы (SCO, Microsoft и Interactive System) выпустили версию операцион¬ной системы для платформы Intel 386. В это время фирма SCO уже купила права на торговую марку UNIX. Сейчас фирма потеряла свою самостоятельность, и права на торговую марку принадлежат The Open Group.
    Последние версии системы, поддерживаемые SCO, носили название SCO Open Server. Эта фирма разрабатывала операционные системы с разными названиями. Например, UnixWare она создавала совместно с Novell.
  5. Sun OS, Solaris.
    Вариант операционной системы с таким названием выпус¬кается фирмой Sun Microsystems. Одним из ее основателем явля¬ется Билл Джой, начавший разработку операционных систем в Ка¬лифорнийском университете после знакомства с Кеном Томпсоном. Solaris работает на разных аппаратных платформах и прежде всего – на SPARC (собственных процессорах фирмы Sun). Но эта опера¬ционная система перенесена и на компьютеры IBM PC и РоwerРС. До Solaris фирма Sun выпускала UNIX с названием Sun OS. Появ¬ление системы с новым именем было связано со стремлением обес¬печить стандарты операционных систем на разной аппаратуре.
    Среди других достижений фирмы Sun Microsystems отме¬тим разработку Java и в дальнейшем представление компьютер¬ному сообществу его исходных кодов.
  6. OSF/1.
    Появление системы OSF/1 связано со стремлением ведущих компьютерных производителей создать противовес альянсу АТ&Т и SunМicrosystems. Название OSF является сокращением от Open Software Foundation. В OSF вошли IBM, HP, Digital Equipment Cor¬poration (DEC) и другие. Фирма DEC, ныне уже не существующая, известна, прежде всего, как производитель компьютеров PDP, на которых начинались обе важнейшие версии AT&T и BSD. Фирмы IBM и HP выпускают и поныне успешные версии UNIX. Альянс OSF объединился c X/Open для организации The Open Group, кото¬рая сегодня является, видимо, основным хранителем UNIX как та¬ковой.
    Видимо, система OSF/1 должна была претендовать на роль третьей важной ветви UNIX (в противовес AT&T и BSD). Трудно сказать, случилось ли это, но вклад в стандарты мира UNIX был, несомненно, сделан. К примеру, принятый альянсом стандарт на графический интерфейс Motif(разработанный в МТИ) победил в конкуренции с разработкой Sun Open Look.
  7. AIX.
    Собственно история операционных систем начинается с платформы IBM. В 1955 году для вычислительной машины IBM701 была создана развитая операционная система. Сама фирма сделала очень много для развития операционных систем и в дальнейшем. Скажем, к примеру, о легендарных операционных системах для мейнфреймов IBM 360/370, на которых были реализованы многоза¬дачность и многопользовательский терминальный режим.
    Сегодня вариант UNIX, разрабатываемый фирмой IBM для собственных аппаратных платформ, имеет название AIX. Оно про¬исходит от Advanced Interactive Executive – улучшенная интерак¬тивная операционная система. Первая версия AIX появилась в 1986 году на основе SVR3.2 AT&T, а последняя имеет название AIX 6. Эта система объединила в себе лучшие черты версий AT&T, BSD и OSF/1.
    Справедливости ради отметим, что в последние годы на своей аппаратуре IBM кроме AIX активно поддерживает и Linux. Но сегодня это только фрагмент, а несколько лет назад в категории «Программные продукты» Linux занимала верхнюю строчку.
    Приведем несколько фактов из истории этой компании. Пожалуй, рассказывая об истории IBM, надо на первое место по¬ставить перепись населения США в 1886 году, на которых был применен «электрический табулятор» Германа Холлерита, благо¬даря чему данные переписи были обработаны всего за 3 месяца вместо ожидаемых 24. Он основал фирму, которая в 1911 году объ¬единилась с другими, образовав CTR(Computing Tabulating Recording). Для ее руководства в 1914 году был приглашен Томас Уотсон (Thomas Watson). Компания стала специализироваться на создании больших табуляционных машин и в 1921 году поменяла название на International Business Machines (IBM). Приведем не¬сколько знаменательных для мира компьютерных технологий фак¬тов, связанных с этой компанией.
    • В 1943 году началась история компьютеров IBM – был со¬здан «Марк I» весом около 4,5 тонн.
    • Но в 1952 году появляется «IBM 701», первый большой компьютер на лампах.
    • В 1957 году IBM ввела в обиход язык FORTRAN («FORmula TRANslation»), применявшийся для научных вычислений и ставший одним из основных источников «проблемы 2000 года».
    • В 1959 году появились первые компьютеры IBM на транзи¬сторах.
    • В 1964 году было представлено семейство IBM System/360, являвшееся первыми универсальными компьютерами, пер¬вым спроектированным семейством компьютеров, первыми компьютерами с байтовой адресацией памяти и т. д.
    • В 1971 году компания представила гибкий диск, который стал стандартом для хранения данных.
    • 1981 год прочно вошел в историю человечества как год появ¬ления персонального компьютера «IBM PC».
    • Далее представлены фрагменты из раздела «Научные и технические разработки», указанного ранее источника Ин¬тернета об IBM.
    • Фортран (Fortran) – первый реализованный язык программи¬рования высокого уровня. Создан в период с 1954 по 1957 год группой программистов под руководством Джона Бэк¬уса в IBM.
    • Хранение данных на жестком магнитном диске. В 1956 году IBM анонсировала первую в мире систему хранения данных на магнитных дисках (305 RAMAC).
    • Фрактал. Фрактальная геометрия позволяет математически описывать различные виды неоднородностей, встречаю¬щихся в природе. Впервые введен ученым из исследова¬тельского центра IBM имени Томаса Джона Уотсона Бенуа Мандельбротом в 1967 году в его статье в журнале Science.
    • Кремний на изоляторе (КНИ) (англ. Silicon on insulator, SOI) – технология изготовления полупроводниковых приборов, основанная на использовании трехслойной подложки со структурой кремний-диэлектрик-кремний вместо обычно применяемых монолитных кремниевых пластин.
    • Магнитная головка на эффекте гигантского магнитного со¬противления. Менее чем через 20 лет после открытия явле¬ния ГМС IBM разработала технологию производства маг¬нитных головок с его использованием, что привело к рево¬люции в технологиях хранения данных.
    • Высокотемпературная сверхпроводимость. Двое ученых IBM Йоханнес Георг Беднорц и Карл Александр Мюллер получили в 1987 году Нобелевскую премию по физике за их открытие в 1986 году сверхпроводимости керамических ма¬териалов на основе оксидов медилантана-бария.
    • DES (Data Encryption Standard) – симметричный алгоритм шифрования, в котором один ключ используется как для шифрования, так и для расшифрования данных. DES разра¬ботан IBM и утвержден правительством США в 1977 году как официальный стандарт (FIPS 46-3).
    • Реляционные базы данных. Концепция впервые опублико¬вана в 1970 году Эдгаром Франком Коддом из Алмаден¬ского исследовательского центра IBM в работе «A Relational Model of Data for Large Shared Data Banks».
    • Суперкомпьютеры.
    • DRAM (Dynamic Random Access Memory) – один из видов компьютерной памяти с произвольным доступом (RAM), наиболее широко используемый в качестве ОЗУ современ¬ных компьютеров. Эта концепция была впервые предло¬жена Робертом Деннардом в 1966 году в исследовательском центре IBM имени Томаса Джона Уотсона и запатентована в 1968 году.
    • Архитектура RISC (англ. Reduced Instruction Set Computing) – вычисления с сокращенным набором команд. Первые ра¬боты были начаты в 1975 году в исследовательском центре IBM имени Томаса Джона Уотсона, прототип был готов в 1980 году.
    Отметим и еще один замечательный факт – фирма была ос¬новным исполнителем в разработке процессоров Power PC (микро¬процессором RISC-архитектуры, разработанным 1991 Apple, IBM и Motorola).
  8. HP-UX.
    Второй по величине в мире компьютерный гигант разраба¬тывал систему с таким именем как серверную систему, управляю¬щую вычислительными сетями. Она поддерживается до настоящего времени. Создавалась операционная система в основном для соб¬ственной серверной аппаратной платформы HP9000. Ее первая вер¬сия родилась на основе VERSION 7 AT&T в 1992 году, а последняя имеет номер 11.
  9. IRIX.
    Фирма Silicon Graphics известна как производитель обору¬дования для графических работ на компьютере. С момента созда¬ния в начале 80-х годов долгое время фирма занимала лидирующее положение в области машинной графики. Перейдя в сектор подго¬товки компьютерных эффектов для кино и телевидения, она, можно сказать, участвовала в создании многих известных кинокартин. В выпускаемых компьютерах Silicon Graphics соединены процессоры фирмы MIPS с RISC архитектурой и собственная операционная си¬стема IRIX (клон UNIX). Ее последняя версия была выпущена в 2006 году и имеет номер 6.5. Кроме того, Silicon Graphics разрабо¬тала библиотеку для моделирования трехмерной графики OpenGL, программный комплекс MAYA. Помимо программных комплексов, фирма разрабатывает и аппаратную часть графических станций.
  10. AUX и Mac OS.
    Версии с таким названием выпущены фирмой Apple. Ее ос¬нователь легендарный Стив Джобс (Steve Jobs), на наш взгляд, вполне заслуживает звания автора первого коммерчески успешного персонального компьютера. Хотя к 1977 году, моменту выпуска компьютеров Apple, уже существовали такие приборы нескольких фирм, в том числе Atari и IBM, но эту модель можно считать пер¬вой наиболее успешной коммерческой моделью персонального компьютера. Далее был выпущен компьютер Lisa (Local Integrated Software Architecture) с реализацией того, что называют GUI. Этот проект был представлен в январе 1983 года. Для фирмы Apple сле¬дующим этапом стало появление компьютеров Macintosh, выпуска¬емых со своей операционной системой. Все перечисленные модели строились на процессорах Motorola 68000, которые по своим воз¬можностям долгое время превосходили IBM PC с графическим ин¬терфейсом Windows. Параллельно с основной операционной систе¬мой в Apple создается UNIX-подобная система AUX.
    После ухода из Apple Джобс разрабатывал собственную операционную систему NeXTSTEP. Вернувшись в Apple в 2000 году, он сделал своей основной операционной системой Mac OS. Она является преемницей операционных систем, созданных под руководством Стива Джобса, и строится на основе микроядра Mach 3.0 и элементов UNIX BSD 4.4. Система активно развивается, и ее последняя версия имеет номер 10.6.
  11. Версии UNIX для IBM PC.
    До 1991 года было выпущено несколько версий UNIX для аппаратной платформы IBM PC. Но, пожалуй, только версия Linux смогла составить серьезную конкуренцию продуктам фирмы Microsoft – Windows. Прежде всего, Linux используется на серве¬рах, но постепенно завоевывает рынок программ и для автоматиза¬ции деятельности в офисе, для графических работ на персональных компьютерах. Отметим, что кроме этой операционной системы на IBM PC применяются ОС Solaris (с апреля 2010 года принадлежа¬щей Oracle). Последняя была разработана для аппаратной плат¬формы Sun, но была адаптирована для процессоров Intel. Также на такой аппаратной платформе распространены продукты компаний, вышедших из BSD. Они называются Free BSD, OpenBSD, NetBSD.
    Операционная система Linux создавалась для персональных компьютеров с процессорами Intel. Но постепенно она «перешла» и на другие аппаратные платформы (SPARC, Alpha, Power PC). В по¬следние годы Linux получает распространение и на карманных пер¬сональных компьютерах.
    Необычность операционной системы Linux заключается в том, что ее основу до настоящего времени создает Линус То¬рвальдс. А вот продукт для потребителей разрабатывают многие фирмы, формируя дистрибутивы (инсталляторы). Мы уже отме¬чали, что первый успешный инсталлятор Slackware был выпущен Патриком Фолькердингом. Сделаем оговорку. Уже в 1992 году по¬явился дистрибутив SLS (Softlanding Linux System) Питера Мак-Дональда, включавший в себя оконную систему X – то есть, теоре¬тически, пригодный для конечного пользователя.
    Интересную классификацию множества инсталляторов Linux предложил А. Федорчук в своей статье, положив в ее основу следующие признаки:
    • программа инсталляции;
    • средства установки пакетов программ;
    • структура файловой системы;
    • состав прикладных программ и утилит в инсталляторе.
    По данной классификации дистрибутивы делятся на три группы, сходные с RedHat, Debain и Slackware.
    Приведем наиболее популярные дистрибутивы этой опера¬ционной системы.
    В последние годы среди многих версий операционных си¬стем семейства Linux одной из самых популярных является Ubuntu. Адрес русскоязычного ресурса – http://ubuntu.ru. На ресурсе Интер¬нета http://www.distrowatch.com, одном из источников, учитываю¬щих показатели популярность разновидностей Linux, дистрибутив Ubuntu занимает первое место. Его варианты выпускаются каждые 6 месяцев. Можно послать заявку, и дистрибутив будет доставлен по почте. Также можно скачать дистрибутив с бесплатных ресурсов Интернета. Финансирует развитие Ubuntu Марк Ричард Шаттлворт (Mark Richard Shuttleworth) – миллионер и второй космический ту¬рист, родившийся в ЮАР.
    Самый древний дистрибутив Slackware – до сих пор в строю, хотя на сегодняшний день не входит в десятку самых попу¬лярных. На его основе созданы другие дистрибутивы.
    Red Hat долгое время была одной из наиболее распростра¬ненной системой Linux. В рамках дистрибутивов американской компании опробованы многие технологии. Но с 2003 года фирма Red Hat сменила политику выпуска дистрибутивов. Свободно рас¬пространяемой версией стала Fedora, а система Red Hat Enterprise Linux является корпоративным решением, который продается.
    SUSE – этот дистрибутив имеет корни от самого первого дистрибутива SLS, не имевшего широкого распространения. В свое время он был очень распространен в Европе. Но в 2003 году этот дистрибутив был куплен американской фирмой Novell.
    Дистрибутив с именем Debian находится в списке пионеров. Его создание началось в 1993 году. На его основе строились многие дистрибутивы, один из них – ubuntu.
    Отдельно скажем о русифицированных дистрибьюторах. Это Fedora (фирмы Red Hat раннее выпускавшую версию с назва¬нием Red Hat Cyrillic Edition), SuSe и Mandriva (долгое время имевший имя фирмы Mandrake), но как наиболее распространенные российские разработки следует отметить ASP Linux и Alt Linux.
    1.4. Отличия семейства UNIX/Linux от операционных систем Windows и MS DOS
    В этой книге мы ориентировались, в основном, на читате¬лей, которые до настоящего времени использовали только операци¬онные системы Windows. Хотим отметить, что до появления в 1981 году MS DOS система UNIX уже прошла значительный путь своей истории. Был момент, когда сама Microsoft стояла перед выбором: разрабатывать один из вариантов UNIX для IBM PC или продол¬жить собственную систему. Даже была куплена соответствующая лицензия и выпущен вариант UNIX – XENIX. Но потом выбор остался все же за MS DOS. В работе UNIX и MS DOS, а теперь UNIX в графическом режиме и современных версий Windows, есть много общего, иногда даже в мелочах. Сделав это вступление, при¬ведем несколько пунктов, где семейство ОС UNIX/Linux суще¬ственно отличается от операционных систем фирмы Microsoft. Да¬лее везде, где встречается термин «система», подразумевается се¬мейство UNIX/Linux.
  12. Исходные тексты компонентов системы доступны для про¬смотра и модификации. Чаще всего они располагаются в под¬каталоге с именем source, который подчинен каталогу /usr.
  13. Модифицировать систему можно перекомпилировав ядро – основу системы, которая непрерывно развивается и настраива¬ется на конфигурацию вычислительной установки.
  14. Существует несколько уровней настройки параметров работы системы:
     работа с утилитами, в том числе в режиме графического интерфейса;
     корректировка файлов конфигурации;
     внесение изменений в исходные тексты и их дальнейшая перекомпиляция.
  15. Первоначально загружается командный режим, а графический интерфейс требует дополнительного вызова. Последний имеет несколько методов реализации.
  16. В инсталляторы системы Linux включается полный набор про¬граммного обеспечения, необходимый для работы как в каче¬стве офисного или домашнего компьютера, так и сервера.
  17. Интересной особенностью работы системы является возмож¬ность одновременной регистрации нескольких пользователей на виртуальных терминалах.
  18. В системе существует множество оболочек (аналог команд¬ного интерпретатора comand.com в MS DOS). В процессе ра¬боты можно получить их полный список (команда chsh – listshell) и выбрать любую (команда chsh).
  19. Помимо работы с основной файловой системой, можно полу¬чить доступ к информации, подготовленной в других опера¬ционных системах.
  20. Файловая система Linux на жестком диске может располо¬житься на нескольких разделах диска, а для области подкачки всегда выделяется отдельный дисковый раздел с типом файло¬вой системы, отличной от основной. Также в отдельных раз¬делах диска можно разместить следующую информацию (при¬водится список, доступный в ASli Linux):
     данные о загрузке (/boot);
     области диска, куда заносится постоянно изменяемая си¬стемная информация, например, системные файлы, поч¬товые сообщения, (/var);
     области диска выделяемые для работы обычным пользователям (/home);
     информация предназначенная для всех пользователей (/usr).
  21. Доступ к данным, получаемым с разнообразного оборудова¬ния, осуществляется не в одной из вершин верхнего уровня файловой системы, а в одной из вершин, подчиненных един¬ственному корню иерархической файловой системы (ее имя /).

  • Первые цифровые вычислительные машины без ОС. Организация вычислительного процесса решается программистом с пульта управления.

  • GM-HAA

    GM-НАА была первой операционной системой для компьютеров. Она была создана в 1955 году Робертом Патриком с General Motors и Оуэном Моком с North American Aviation. Она была основана на системном мониторе и работала на больших машинах. Основная функция GM-НАА — автоматическое выполнение новой программы, когда старая программа завершилась.

  • Транзисторы и системы пакетной обработки
    В основном программы для них составлялись на языке Фортран и ассемблере, а типичными ОС были FMS (Fortran Monitor System) и IBSYS

  • Появилась OS/36/, примерно на два или три порядка превышающая по объему FMS. Самым важным достижением явилась многозадачность (разбиение памяти на несколько частей). Система MULTICS не получила распространения, но оказала влияние на последующие ОС.

    Был разработан стандарт системы UNIX, названный POSIX, который в настоящее время поддерживается большинством версий UNIX. В 1987 году Таненбаум выпустил в образовательных целях небольшой клон системы UNIX — MINIX.

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

  • Первая система UNIX была разработана в 1969 году в подразделении Bell Labs компании AT & T. С тех пор было создано большое количество различных UNIX-систем.
    Идеи, заложенные в основу UNIX, оказали огромное влияние на развитие компьютерных операционных систем. В настоящее время UNIX-системы признаны одними из самых исторически важных ОС. Эта операционная система популяризирует идею иерархической файловой системы с произвольной глубиной вложенности.

  • В 1972 году была разработана система PLATO, которая имела ряд инноваций, таких как оранжевая плазменная панель. Она включала в себя память и функции растровой графики. Плазменный дисплей PLATO поддерживал возможность быстрой отрисовки векторных линий.Многие инноваций, ввела ОС PLATO, стали в дальнейшем фундаментом для разработки других компьютерных систем. Например, некоторые технологии были заимствованы и усовершенствованные компанией Apple.

  • Следующий период в эволюции операционных систем связан с появлением больших интегральных схем (БИС). В эти годы произошло резкое возрастание степени интеграции и удешевление микросхем. Компьютер стал доступен отдельному человеку, и наступила эра персональных компьютеров.

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

  • MS-DOS

    Коммерческая операционная система фирмы Microsoft для IBM PC-совместимых персональных компьютеров. MS-DOS работает в режиме реального времени процессора x86. Обеспечивается единовременное выполнение только одной программы. MS-DOS была спроектирована так, чтобы пользователи могли легко заменить встроенный интерпретатор посторонними интерпретаторами командной строки, например 4DOS

  • Microsoft Windows 1.0 — графический интерфейс, разработанный корпорацией Microsoft для MS-DOS, использующий принцип фреймового менеджера окон. Интерфейс был создан для облегчения работы с MS-DOS, унификации внешнего вида приложений и оптимизации работы с периферийными устройствами.

  • LINUX

    Linux была создана в 1991 году Линусом Торвальдсом, финским студентом. Тот факт, что Линус сразу после создания ОС выложил исходный код своей ОС в Интернет, был решающим в дальнейшей судьбе Linux. В силу того, что исходные коды Linux распространяются свободно и общедоступно, к развитию системы с самого начала подключилось большое число независимых разработчиков.

  • Windows 95

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

  • Разработанная «специально для потребителей», Windows 98 включала в себя поддержку DVD-дисков и USB-устройств, имела утилиту Windows Update, которая автоматически устанавливала обновления операционной системы.

  • Windows 2000 Professional

    Windows 2000 — операционная система семейства Windows NT корпорации Microsoft, предназначенная для работы на компьютерах с 32-битными процессорами.

  • В отличие от предыдущей системы Windows 2000, которая поставлялась как в серверном, так и в клиентском вариантах, Windows XP является исключительно клиентской системой.

  • Операционная система семейства Windows NT корпорации Microsoft.

  • Мобильная операционная система для смартфонов, электронных планшетов, носимых проигрывателей и некоторых других устройств, разрабатываемая и выпускаемая американской компанией Apple. Была выпущена в 2007 году; первоначально — для iPhone и iPod touch, позже — для таких устройств, как iPad.

  • Основана на ядре Linux и собственной реализации виртуальной машины Java от Google. Android позволяет создавать Java-приложения, управляющие устройством через разработанные Google библиотеки. Android Native Development Kit позволяет портировать библиотеки и компоненты приложений, написанные на Си и других языках.

  • Windows 7 научилась правильно работать с различными сетями, самостоятельно устанавливать драйвера к подключаемым устройствам, получила такую совершенную систему безопасности, которая снимает необходимость устанавливать сторонний антивирус. Также в Windows 7 появилась поддержка сенсорных экранов

  • Операционная система Windows 8 получила полностью переработанный «плиточный» интерфейс Metro, задачей которого было привести мобильные устройства с сенсорным экраном и компьютеры к схожему пользовательскому опыту. Для удобства работы с ПК без сенсорного экрана в систему был встроен и «классический» рабочий стол. Кнопку «Пуск» убрали, заменив ее «активным углом», нажатие на который открывало стартовый экран с «плитками».к.

  • Windows 10

    Oперационная система для персональных компьютеров и рабочих станций, разработанная корпорацией Microsoft в рамках семейства Windows NT.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Перенос windows xp на virtualbox
  • Исчезла надпись активация windows
  • Bitrix приложение для windows
  • Брандмауэр защитника windows заблокировал некоторые функции этого приложения что выбрать
  • Windows server 2008 r2 nic team