Unix: операционная система, устанавливающая новые стандарты

Развитие Unix, без сомнения, является одной из самых важных вех в истории вычислительной техники. Эта операционная система не только ввела некоторые из самых элементарных понятий в информационных технологиях, таких как иерархически структурированная файловая система, но и послужила основой для множества других систем, таких как macOS и iOS от Apple или Linux с открытым исходным кодом. В свою очередь, это привело к появлению многочисленных производных, таких как Ubuntu, Debian или мобильный Android. Но как именно Unix стал одним из самых влиятельных приложений для управления компьютером, и почему команда его разработчиков изначально записывала идеи исключительно на досках и блокнотах?

Совместный проект Multics заложил основы

В 1965 году рабочая группа представила свою идею новой операционной системы на Объединенной компьютерной конференции. В состав группы входили сотрудники Массачусетского технологического института (MIT), General Electric и Bell Laboratories (Bell Labs) или AT&T (с 2016 года входит в состав отдела исследований и разработок Nokia). Они назвали операционную систему Multiplexed Information and Computing Service, или сокращенно Multics. Они использовали совершенно новые подходы, уделяя особое внимание разделению времени. Multics была одной из первых систем, позволяющих нескольким пользователям одновременно работать на одном компьютере за счет совместного использования вычислительного времени базового процессора.

Для реализации проекта рабочей группе Multics требовался компьютер с особыми требованиями: с одной стороны, он должен был иметь четко отформатированные инструкции, чтобы можно было использовать высший язык программирования PL/I от IBM, предназначенный для разработки. С другой стороны, он должен был поддерживать запланированную многопользовательскую работу и работать асинхронно, чтобы минимизировать потери производительности при управлении памятью. По этой причине был выбран GE-635, а позже GE-645 от General Electric. Разработка велась на базе многопользовательской системы CTSS, которая была разработана MIT еще в 1960-х годах и уже была запущена. Задержки в разработке компилятора PL/I, финансовые трудности, внутренние разногласия и растущее внешнее давление в конечном итоге заставили Bell Labs выйти из проекта в 1969 году.

Multics становится Unix

Multics получил дальнейшее развитие в Массачусетском технологическом институте и позже распространялся на коммерческих условиях на машинах Honeywell 6180 компанией Honeywell International Inc. после ее приобретения General Electric (до 1986 года). Однако компьютерный ученый Кен Томпсон, который в то время был сотрудником Bell Labs, не мог расстаться с многопользовательской системой: вместе с Деннисом Ритчи и небольшой командой в AT&T он начал планировать собственную систему, основанную на принципах Multics. Но поиски подходящего компьютера поначалу оказались бесплодными — и поскольку Bell Labs сопротивлялась покупке подходящего экземпляра, разработчики начали записывать свои заметки и ход работы над планируемой файловой системой на тетрадных листах и досках.

Наконец, для запланированного проекта был приобретен подержанный мини-компьютер PDP-7 от Digital Equipment Corporation (DEC). Эта компьютерная система, которая была «всего лишь» размером со стену, работала под управлением GECOS (General Electric Comprehensive Operating System), которая с тех пор служила платформой для разработки. Ценные программные инструменты, такие как командная строка (SH) и редактор (ED), а также уже существующая файловая система в бумажном виде были быстро разработаны — первоначально еще на языке ассемблера (ориентированном на аппаратное обеспечение, но упрощенном для человека). Поскольку новая операционная система позволяла одновременно работать над одним процессом только двум пользователям (в отличие от Multics), команда назвала ее Unics по шаблону. Из-за ограничений на длину имен файлов в GECOS было принято окончательное название Unix.

Сначала B, потом C: Unix получает свой собственный язык программирования более высокого уровня

После того, как команда Bell Lab написала Unix и некоторые другие элементарные программы, пришло время заменить использовавшийся для этого язык ассемблера на менее сложную вариацию. Однако план по разработке уже существовавшего языка Фортран компании IBM был отвергнут через некоторое время. Вместо этого началась работа над собственным языком, который был сильно ориентирован на PL/I — язык Multics — и BCPL (базовый комбинированный язык программирования), разработанный в MIT. Впоследствии Ритчи и его коллеги переписывали некоторые системные инструменты на этом языке, пока в 1970 году они не получили новый компьютер PDP-11 и снова были вынуждены пересмотреть свою методику. Это произошло потому, что новая архитектура системы не была ориентирована на слова, как компьютер PDP-7 и язык программирования B, а вместо этого была ориентирована на байты.

В течение следующих двух лет Bell Labs разработала преемника языка C, синтаксис и другие особенности которого можно найти в многочисленных современных языках программирования, таких как c++, JavaScript, PHP или Perl. Когда в 1973 году язык стал достаточно зрелым, команда разработчиков начала переписывать полное ядро Unix на C. Результат был опубликован командой Unix в середине 1970-х годов. Поскольку в то время AT&T не разрешалось продавать программное обеспечение, поскольку телекоммуникационная отрасль контролировалась государством, Unix (версия 6), которая представляла собой многопользовательскую систему, допускающую одновременное выполнение нескольких процессов, была предоставлена всем заинтересованным университетам бесплатно — включая компилятор языка Си, что сделало систему пригодной для использования практически на всех платформах.

Дружественная к аппаратному обеспечению и с открытым исходным кодом: Unix завоевывает сцену для разработчиков

С выпуском программного обеспечения Unix для учебных заведений успех новой операционной системы быстро становился все более очевидным, сначала как игрушка в кругах программистов. Обычные рабочие процессы на мэйнфреймах IBM и машинах PDP в то время продолжали выполняться на родных системах, таких как RSX-11, RT-11 или IST. Однако для разработчиков ценность исходного кода, предоставляемого ядром и отдельными приложениями, заключалась не только в обучающем эффекте: низкие требования Unix к аппаратному обеспечению и его высокая практичность стимулировали эксперименты и дальнейшее развитие, что было особенно хорошо воспринято в Калифорнийском университете Беркли (бывшем родном университете Томсона) — хотя тот факт, что в 1976 году он занял должность приглашенного профессора на недавно созданном факультете информатики, вероятно, сыграл важную роль.

Билл Джой и Чак Хейли, два аспиранта того времени, усовершенствовали систему Pascal, разработанную Томсоном, и запрограммировали совершенно новый текстовый редактор ex — предшественник vi, который и сегодня можно найти в стандартных установках юниксоидной системы. В 1977 году под руководством Джоя появился модифицированный вариант Unix, который содержал усовершенствования и дальнейшие разработки, сделанные к тому времени. Berkeley Software Distribution (BSD), который позже интегрировал сетевой протокол TCP/IP во вселенную Unix, впервые смог соответствовать требованиям свободной операционной системы (благодаря собственной лицензии BSD) и считается одной из самых важных модификаций Unix на сегодняшний день.

1980-е годы: коммерциализация и Unix-войны

В последующие годы разрабатывалось все больше и больше модификаций, в том числе и те, которые фокусировались на других аспектах, например, на финансах. Например, компания Microsoft приобрела лицензию на Unix V7 в 1979 году, чтобы разработать порты для процессоров Intel и Motorola, среди прочего. В следующем году они выпустили Xenix, которая изначально планировалась как стандартная операционная система для ПК, но в итоге предъявила слишком высокие требования к оборудованию. В итоге Microsoft передала дальнейшие разработки в руки производителя программного обеспечения SCO (Santa Cruz Operation), чтобы сосредоточиться на OS/2 и дальнейшем развитии MS-DOS.

Билл Джой также вскочил на волнорез в 1982 году со своей недавно основанной компанией Sun Microsystems, используя проприетарную систему SunOS на базе BSD (предшественник Solaris), которая была специально разработана для использования на серверах и рабочих станциях.

Однако настоящая битва за поклонников Unix развернулась между AT&T, которая к этому времени получила разрешение на коммерческое распространение, и университетом Беркли, который смог выделить ценные инновации, благодаря большому количеству поддерживающих их программистов. AT&T сначала попыталась завоевать рынок с помощью System III (1981) и новой оптимизированной версии System V (1983), обе из которых были основаны на Unix V7. Затем Университет Беркли одновременно выпустил 4.3BSD, на которую в течение 18 месяцев было выдано 1 000 лицензий. Это сделало ее гораздо более популярной, чем платную System V, в которой отсутствовала файловая быстрая система (FFS) и сетевые возможности (благодаря интегрированному TCP/IP) варианта Беркли.

В четвертом выпуске System V (1988) AT&T реализовала эти две и многие другие возможности BSD, а также для Xenix и SunOF, что привело к переходу многих пользователей на коммерческий вариант.

Спасибо, Пингвин: Unix становится серверным решением

В то время как различные системы Unix сначала конкурировали друг с другом за продажи и лояльность, Apple и Microsoft начали свое соперничество в секторе персональных компьютеров, а затем и в области серверов. В то время как Microsoft выиграла гонку, когда дело дошло до домашних ПК, система, основанная на концепциях Unix, неожиданно появилась на сцене в 1991 году с Linux, которая в последующие годы завоевала серверную среду. Благодаря свободно лицензируемому ядру и свободно распространяемому программному обеспечению GNU, разработчик Линус Торвальдс удовлетворил желание иметь конкурентоспособную операционную систему с открытым исходным кодом и завоевал рынок того времени.

До сегодняшнего дня многочисленные производные Unix Linux, такие как Debian, CentOS, Red Hat или Ubuntu, используются в качестве системного программного обеспечения для всех видов серверов. В частности, Ubuntu становится все более популярной для домашних ПК. Linux, о котором у нас есть статья, далеко не единственный важный преемник Unix в современном мире программного обеспечения: начиная с Mac OS X 10.0 или Mac OS X Server 1.0, операционная система Apple использует Darwin, свободный вариант BSD, в качестве подструктуры. Сам Berkeley Unix даже несколько раз представлен множеством других свободных производных, таких как Free BSD, Open BSD или Net BSD.

iOS (на той же системной базе, что и macOS) и Android (на базе ядра Linux), две наиболее широко используемые операционные системы для мобильных устройств, также принадлежат к семейству Unix.

Что такое Unix? Наиболее важные основные характеристики системы

В момент своего появления многие отличительные особенности Unix были абсолютными новинками, которые не просто повлияли на развитие юниксоидных систем и дистрибутивов, но и были взяты на вооружение конкурентами Apple и Microsoft в их операционных системах. Особенно если принять во внимание следующие характеристики, Ричи, Томпсон и их коллеги, занимавшиеся Unix, были пионерами современных операционных систем того времени:

Иерархическая, универсальная файловая система

Элементарной частью Unix с самого начала была иерархически организованная файловая система, которая позволяет пользователю структурировать файлы в папки. Корневому каталогу, который обозначается символом «/», может быть назначено любое количество подкаталогов. Следуя основному принципу «Все есть файл», Unix также обозначает дисководы, жесткие диски, терминалы или другие компьютеры как файлы устройств в файловой системе. Некоторые производные системы, включая Linux, даже обозначают процессы и их свойства как файлы в виртуальной файловой системе procfs.

Многозадачность

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

Многопользовательская система

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

Сетевые возможности

С 4.2BSD, Unix от Berkeley стала одной из первых операционных систем, в которую в 1983 году был интегрирован стек интернет-протоколов, обеспечивая основу для интернета и простой конфигурации сети, а также возможность выступать в качестве клиента или сервера. В конце 1980-х годов четвертая версия System V (уже упоминавшаяся) также стала разновидностью коммерческой системы AT&T, которая добавила ядро к легендарному семейству протоколов. Windows должна поддерживать TCP/IP только с версией 3.11 (1993) и соответствующим расширением.

Независимость платформы

В то время как другие операционные системы и их приложения на момент создания Unix все еще были заточены под конкретный тип процессора, команда Bell Labs с самого начала придерживалась подхода переносимой системы. Хотя первым языком был язык ассемблера, в рамках проекта был создан новый, более высокий язык программирования, как только была создана базовая структура системного программного обеспечения. Этот язык был предшественником исторического языка C. Хотя компоненты, написанные на C, все еще были сильно привязаны к архитектуре машины PDP, которую Ричи и его коллеги использовали в качестве основы для своей работы, несмотря на включенный компилятор. Однако в последнее время, с появлением сильно переработанной версии Unix V7 (1979), операционная система по праву заслужила репутацию переносимой системы.

Принцип инструментария Unix и оболочка

Unix-системы объединяют множество полезных инструментов и команд, которые обычно предназначены только для нескольких специальных задач. Например, в Linux используются инструменты GNU. Для решения общих задач принцип заключается в том, чтобы найти ответы в комбинации стандартных инструментов вместо разработки новых специфических программ. Самым важным инструментом всегда была оболочка (SH), текстово-ориентированный командный интерпретатор, предоставляющий широкие возможности программирования. Этот классический пользовательский интерфейс можно использовать и без графического интерфейса, даже если такой вид интерфейса естественным образом повышает удобство пользователя. Тем не менее, оболочка предлагает некоторые существенные преимущества для опытных пользователей:

  • Упрощенное управление благодаря интеллектуальному автозавершению
  • Функции копирования и вставки
  • Возможность использования интерактивных (прямой доступ) и неинтерактивных (выполнение скриптов) состояний
  • Повышенная гибкость, поскольку отдельные приложения (инструменты, команды) можно комбинировать практически свободно
  • Стандартизированный и стабильный пользовательский интерфейс, что не всегда гарантируется при использовании графического интерфейса пользователя
  • Рабочие пути сценариев автоматически документируются
  • Быстрая и простая реализация приложений

Вывод: если вы хотите понять, как работают операционные системы, посмотрите на Unix.

Взлет компаний Microsoft и Apple, напрямую связанный с их создателями Биллом Гейтсом и Стивом Джобсом, несомненно, не имеет аналогов. Однако фундамент этих двух гигантских историй успеха был заложен новаторской работой Денниса Ричи, Кена Томпсона и остальных членов команды Unix в период с 1969 по 1974 год. Unix не только производит свои собственные производные, но и влияет на другие операционные системы такими концепциями, как иерархически структурированная файловая система, мощная оболочка или высокая переносимость. Для реализации последнего был разработан самый влиятельный язык программирования в истории компьютеров — C, почти мимоходом.

Чтобы осознать возможности языка и общей функциональности операционной системы, нет лучшего иллюстративного объекта, чем система Unix. При этом даже не обязательно использовать один из классических вариантов: дистрибутивы Linux, такие как Gentoo или Ubuntu, адаптировались к современным требованиям, не отказываясь от основных возможностей, таких как максимальный контроль над системой. Вы несколько более ограничены в своих возможностях с дружественной к новичкам macOS, которая прекрасно справляется с балансировкой между мощной базой Unix и хорошо продуманным графическим пользовательским интерфейсом.

Оцените статью
cdelat.ru
Добавить комментарий