Краткая история Unix — CloudSavvy IT

Баш Shell

Несмотря на то, что сегодня на базе более 90% облачных рабочих нагрузок, Unix (и Linux с ним) начинали скромно. Джим Холл рассказывает, как Unix от Bell Labs в 1970-х годах стала основой многих современных операционных систем.

Истоки Unix

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

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

В середине-конце 1960-х годов MIT, Bell Labs и GE совместно работали над новой системой под названием MULTICS, Multiplexed Information and Computing Service. MULTICS должна была произвести революцию в вычислительной технике. Но по мере своего развития MULTICS становилась все более сложной. Разочарованные проектом, Bell Labs отказалась от него, оставив других, чтобы позже продвигать проект, хотя и очень поздно.

Тем временем Кен Томпсон вернулся из MULTICS в Bell Labs для работы над другими проектами. Одна из попыток заключалась в создании особенно быстрого дисковода, подключенного к миникомпьютеру DEC PDP-7. Томпсон хотел оптимизировать пропускную способность этого накопителя и, соответственно, любого устройства хранения. Итак, он начал работу над планировщиком дисков.

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

Unix разработки

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

Одна из моих любимых историй раннего Unix — это то, как исследователям Unix удалось приобрести новую компьютерную систему, чтобы продолжить свою работу, и в то же время создать новую стандартную команду Unix. Патентный отдел планировал приобрести новую специализированную компьютерную систему для написания патентных заявок от имени Bell Labs. Команда Unix предложила отделу патентов купить новый миникомпьютер DEC PDP-11, а команда Unix установила на нем Unix и напишет собственное программное обеспечение, чтобы помочь отделу патентов писать заявки на патенты. Это новое программное обеспечение для написания патентов? Новая реализация системы форматирования документов Roff, являющаяся производным от более ранней программы CTSS под названием RUNOFF. Сегодня «Нью Рофф» или nroff, является основной частью Unix.

Сами команды Unix получили очень короткие имена. В ls, rm, mv, и другие стандартные команды Unix были настолько короткими, потому что первые терминалы Teletype Model 33, используемые в Bell Labs, требовали значительных усилий для ввода каждой буквы. Было легче печатать rm чем более информативное имя команды, например remove, или cp чем copy.

Одна из определяющих функций Unix, «конвейер», который позволял одной команде отправлять свой вывод другой команде для дополнительной обработки, также был добавлен по указанию другого исследователя Bell Labs, Дугласа Макилроя. До этого момента команды работали с отдельными файлами за раз. Но с конвейерами вы можете связать несколько команд вместе, чтобы получить более интересные результаты. Например, ls команда выводит список файлов в каталоге, а wc команда считает строки своего ввода. Если вы соедините две команды вместе как ls|wc , вы получите количество файлов в каталоге.

Другие команды были добавлены аналогичным образом, потому что кто-то их просил. Томпсон написал grep команда, основанная на предложении Макилроя, что в Unix должна быть утилита для поиска текста в файлах. Томпсон повторно использовал код из Unix ed редактор для создания утилиты для выполнения «печати глобального регулярного выражения» любого текста, который соответствует пользовательскому регулярное выражение. Эта команда «печати глобального регулярного выражения» была названа просто grep, теперь это стандартная команда Unix.

Unix везде

Unix продолжал развиваться, в основном как исследования и как платформа для проектов внутри Bell Labs до середины 1980-х годов. Примерно в то же время множество различных поставщиков начали продавать свои собственные версии Unix, в том числе HP-UX от Hewlett Packard, AIX от IBM, Xenix от Microsoft, SunOS от Sun (позже переименованный в Solaris) и другие. В 1983 году Ричард Столлман начал новый проект по созданию бесплатной версии Unix под названием GNU (a рекурсивный акроним, означающий «GNU’s Not Unix»).

Все дистрибутивы Unix немного отличались и несовместимы друг с другом. Некоторые из них были заимствованы из оригинальной Unix от AT&T Bell Lab, например HP-UX и AIX. Другие версии Unix произошли от популярного университетского варианта Калифорнийского университета в Беркли, который назывался BSD для «распространения программного обеспечения Беркли». Многие команды были одинаковыми или похожими в разных версиях Unix, но детали в том, как вы управляли системой, обычно сильно различались. Одно из ключевых отличий заключалось в том, как Unix загружался: AT&T «System V» использует Unix уровни бега контролируется центральным /etc/inittab файл, а BSD Unix запускает все, используя управление бегом скрипты, начинающиеся с /etc/rc сценарий.

Другие системы Unix появились и исчезли в 1980-х и 1990-х годах. Стив Джобс, будучи свергнутым с поста генерального директора Apple в 1985 году, основал NeXT, которая производила свой собственный вариант Unix, заимствованный из BSD. NeXT привнес в Unix несколько нововведений, включая микроядро на основе Mach. Графический рабочий стол NeXT, NeXTSTEP, добавил другие новые идеи, такие как Display PostScript для создания экранной графики, «стыковку» с доступными и работающими приложениями, а также уровень объектно-ориентированного приложения с наборами инструментов.

В 1991 году финский студент по имени Линус Торвальдс начал работу над проектом, который позже стал ядром Linux. 25 августа 1991 года Торвальдс опубликовал в дискуссионной группе Usenet краткое объявление о своем хобби-проекте и пригласил других принять в нем участие. Торвальдс выпустил Linux под Стандартной общественной лицензией GNU, что означало, что любой мог модифицировать Linux для исправления ошибок или добавления новых функций. Эта модель «открытого исходного кода» или «свободного программного обеспечения» быстро подтолкнула разработку новой Linux.

Сообщества возникли вокруг Linux, портируя инструменты GNU и другие команды Unix для работы в Linux. В 1992 году разработчики портировали систему X Window, дав Linux первый графический пользовательский интерфейс. Результат — это то, о чем думает большинство людей, когда мы говорим «Linux», хотя Linux на самом деле это просто ядро, которое запускает все.

Современный Unix

Хотя проприетарные системы Unix все еще существуют, большинство систем Unix — это Linux. По крайней мере, на веб-серверах доминирует Linux. Linux также широко используется для многих корпоративных рабочих нагрузок, включая серверы приложений и серверы баз данных. Трудно точно подсчитать, на скольких серверах Linux что-то запущено, но многие оценки предполагают, что на Linux работает более двух третей веб-серверов и другой инфраструктуры Интернета. Даже Microsoft поддерживает Linux; платформа Azure работает под управлением Linux, как и подсистема Windows для Linux на настольных компьютерах Windows.

На настольных компьютерах Linux так и не смог прочно закрепиться. В сообществе Linux постоянно звучит прикол: «В следующем году будет Год рабочего стола Linux. » Но Windows безраздельно властвует на рабочем столе. Однако, если вы ищете Unix для настольных ПК, рассмотрите MacOS от Apple. В 1996 году, когда Стив Джобс вернулся в Apple в качестве генерального директора, Apple приобрела NeXT и использовала NeXT в качестве основы для операционной системы следующего поколения на новых компьютерах Mac. MacOS — это действительно Unix под капотом; откройте окно терминала, и вы найдете оболочку Unix со стандартными утилитами Unix. Фактически, macOS — это официальный Unix, признанный Open Group.

Куда движется Unix дальше? Я не уверен, что «Unix» больше подходит. В то время, когда Linux-систем значительно больше Unix серверов, возможно, мы уже прошли точку, в которой «Unix» имеет большое значение. Это уже не «Unix как платформа», а «Linux как платформа». И так же, как Unix вышла за рамки своего первоначального дизайна, добавляя новые функции там, где это необходимо, Linux продолжает развиваться для удовлетворения новых потребностей. По крайней мере, в обозримом будущем речь идет о «Linux», а не о «Unix».

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.