воскресенье, 13 декабря 2020 г.

Брайан Керниган. Время Unix. A History and a Memoir

Недавно в издательстве "Питер" вышел перевод книги "Время Unix" Брайана Кернигана, не нуждающегося в представлении. Керниган работал в исследовательских лабораториях Белла компании American Telephone & Telegraph - американского монополиста в области телефонной и телеграфной связи. При участии Брайана Кернигана было написано несколько книг, которые без преувеличения стали культовыми для программистов и поклонников операционной системы Unix.

Например, в моей домашней библиотеке есть такие книги, написанные специалистами Bell Labs, большинство из которых написано в соавторстве с Брайаном Керниганом:
Историю Unix в общих чертах и имена ключевых участников я знал и до этой книги. В основном мои знания были почерпнуты из книги "Unix: Программное окружение". Эту книгу я прочитал ещё в советском издании, взяв её в университетской библиотеке. Тот её перевод назывался "Unix: Универсальная среда программирования". В частности, я знал, что язык Си придумал Денис Ритчи, язык этот развивал идеи языка Би Кена Томпсона, а язык Би в свою очередь был основан на языке BCPL, автора которого я не знал. Кен Томпсон является автором операционной системы Unix. Автором идеи конвейеров был Дуг МакИлрой. Первая буква фамилии Брайана Кернигана фигурирует в названии языка AWK, наряду с Ахо и Вайнбергером.

Операционная система Unix была создана в качестве ответа на более раннюю и более сложную систему Multics, разработкой которой руководил Виктор Высоцкий. Система Multics разрабатывалась совместно в Bell Labs и General Electrics, писалась система на языке PL/1. AT & T решили выйти из проекта, т.к. разработка системы Multics затягивалась и перспективы её становились всё менее понятными.

Первые версии Unix были написаны на ассемблере для компьютера PDP-7 и использовались в Bell Labs для подготовки к печати патентных заявок. Под эти нужды руководство согласилось приобрести новый, более мощный компьютер PDP-11. Четвёртая редакция Unix была переписана для новых компьютеров уже на языке Си. Первой редакцией, вышедшей за пределы Bell Labs, стала шестая редакция. Официально AT & T не занималась разработкой программного обеспечения, поэтому исходные тексты передавались университетам за символическую плату, а индивидуальным покупателям - по договорной цене 20000 долларов.

В книге рассказано об истории возникновения многих известных инструментов: diff, grep, sed, awk, make, yacc, lex. Рассказано об одном из первых портирумых компиляторов Си - pcc, об инструменте проверки программ lint, о языках разметки roff, troff, nroff, eqn, pic, рассказано об истории появления в интерпретаторе shell условного оператора if, операторов цикла for и while, оператора выбора case.

Когда Unix приобрела популярность в университетах, недавние выпускники устраивались на работу и хотели продолжать пользоваться привычной системой. Так появился коммерческий спрос на Unix. После этого AT & T передала разработку Unix в отдельное подразделение и некоторое время в компании велась разработка сразу двух версий операционной системы. Одна из них разрабатывалась в Bell Labs и более известна как исследовательская Unix, вторая была коммерческой и разрабатывалась в специально созданном подразделении Unix System Laboratories. Последней редакцией исследовательской Unix стала 10.5, вышедшая в конце 80-х годов. После этого авторы Unix переключились на разработку новой операционной системы Plan 9, развивавшей идеи Unix.

Об этом не написано в книге, но мне кажется, что инициатива разработки Unix была перехвачена у их авторов задолго до коммерциализации Unix. Основные новации в Unix стали вноситься разработчиками из Калифорнийского Университета в Беркли, самым известным из которых был Билл Джой. В системе 3BSD появилась поддержка виртуальной памяти на компьютерах VAX. В 4.2BSD появилась поддержка сети TCP/IP, которую и сейчас часто называют сокетами BSD. Реализация сокетов BSD распространялась в исходных текстах отдельно от самой системы под названием Net/1, т.к. для использования всей операционной системы BSD по-прежнему требовалась лицензия от AT & T. Кейт Бостик организовал переписывание компонентов всей операционной системы, чтобы избежать необходимости приобретать лицензию у AT & T. Получившаяся система была выпущена под названием Net/2. Вильям Джолиц перенёс Net/2 на компьютеры с процессором Intel 386 и выпустил операционную систему 386BSD, внеся в неё ряд собственных доработок. На основе этой системы двумя независимыми группами была начата разработка систем NetBSD и FreeBSD. Последней системой, выпущенной в Беркли в 1994 году, стала 4.4BSD-Lite Release 2. От систем NetBSD и FreeBSD отделились проекты OpenBSD и DragonFly BSD соответственно.

Комментариев нет:

Отправить комментарий