2 года наза 28 декабря 2015 года при доконца не выясненных обстоятельствах ушел из жизни Ян Мердок — основатель проекта Debian. Я мог бы распространиться на эту тему, но считаю более позитивным именно в день его смерти опубликовать свой перевод его истории по названием How I came to find Linux. Я постарался сделать этот перевод одновременно и максимально близким к тексту, и максимально читаемым. Получилось или нет судить не мне. Этот текст, как мне кажется, несмотря на его небольшой размер и простоту, очень важен. Важен для понимания того времени, той розовой эпохи, плодами которой мы (и не только мы) пользуемся до сих пор. Покойся с миром, Ян!
Оригинал статьи на debian.net
Как я пришел в Linux.
Cвою первую рабочую станцию компании Sun я увидел зимой 1992 года, будучи молодым студентом Университета Пурду. В то время, когда я еще был студентом Краннерсткой школы менеджмента и моя детская любовь к компьютерам была заново пробуждена обязательным курсом программирования, который я изучал во время осеннего семестра (нам дали на выбор языки КОБОЛЬ и ФОРТРАН, оба даже в 1992 кажется уже сильно устарели — я выбрал КОБОЛЬ, поскольку он казался более “рабочим” из этих двух языков).
Десять лет или более тому назад, мой отец, профессор энтомологии в Пурду сменил свою печатную машинку на работе на Apple II+. Полагая, что его девятилетний сын может извлечь пользу из этого, он принес компьютер домой в один из выходных дней вместе с игрой в стиле Space Invaders, которую до этого он купил в местном магазине ComputerLand. Я просидел много часов за компом в тот уикенд. После этого я стал сопровождать отца в лабораторию при любой возможности для того, чтобы проводить как можно больше времени за компьютером.
Будучи девятилетним парнем, я был предсказуемо увлечен вначале играми и этот мой интерес к играм привел меня к первой встречи с программированием: компьютерные журналы публиковали образцы кода очень простых игр, которые я в свою очередь тщательно вбивал в Apple, надеясь, после часов упорного труда, что я не сделал ни одной ошибки (Apple II, по крайней мере из коробки, предлагал примитивный построчный редактор так, что возврат и внесение изменений были очень утомительными, не говоря уже о такой роскоши, как поиск ошибок).
Вскоре после этого я познакомился с Ли Садлоу, шатаясь по лаборатории по выходным. Ли был одним из папиных выпускников, начавший использовать Apple в помощь своим экспериментам. Ли всегда был рад объяснить мне что он делает когда я нависал над его плечом наблюдая; его доброта без сомнения была оправдана, по меньшей мере частично еще и тем, что девятилетний сопляк, следивший за каждым его шагом, был отпрыском декана его факультета. Не задумываясь об этом, я с восхищением смотрел на то, как он выписывал код в Apple — код, который он придумывал сам, а не списывал из компьютерного журнала.
Между обучением посредством изучения исходников из компьютерных журналов и случайными “уроками” от Ли, я вскоре стал писать игры и другие простые программы, поначалу на Applesoft BASIC, а позже на языке ассемблера 6502. Чтобы поощрить мой растущий интерес, отец, в конечном счете, купил Apple IIe домой и мое увлечение компьютером продолжилось в течении еще нескольких лет. Однако, когда я стал подростком, компьютер был постепенно вытеснен более насущными вещами: такими как бейсбол, музыка и девочки, и уже к середине 1980-х Apple стал собирать пыль в моем комоде вместе с коллекцией повестей Харди Бойза и фигурок из Звездных Войн.
Моя страсть к компьютерам находилась в спячке в течении последующей пол-дюжины лет до тех пор пока не была случайно разбужена во время курса по языку COBOL осенью 1992. Когда курс закончился, я естественно лишился своего аккаунта на мейнфрейме IBM 3090, на котором мы выполняли свои задания и лабораторные работы. К счастью, как студент, я был прикреплен к персональному аккаунту на одной из машин университетского компьютерного центра то ли к IBM, то ли к одному из трех миникомпьютеров Sequent Symmetry под управлением DYNIX — варианта операционной системы UNIX. Друг убедил меня в том, что UNIX более интересен и у него более яркое будущее, нежели чем у IBM’s VM/CMS, и я последовав его совету, подал заявку на доступ к одной из машин Sequent. Следующую неделю я был гордым обладателем аккаунта на sage.cc, в комплекте с по-королевски щедрым местом на диске в 500 кб. (Да, это сарказм, поскольку 500 кб было мизерным количеством даже для 1992 года. Кстати, со временем я нашел способы обойти это).
Той зимой у меня был волчий аппетит к UNIX. Я провел большинство вечеров в подвале математического корпуса, греясь в лучах зеленого фосфоресцирующего сияния терминалов Z-29, исследуя каждый уголок на этажах системы UNIX. Было устрашающе тихо в тех комнатах с терминалами, где единственным звуком было клац-клац-клац нескольких десятков клавиатур и случайный шепот вроде: “Эй, глянь на это..”. Часто, после вечера открытий, я выходил из здания по длинному пути, проходя мимо стеклянной стены, за которой компьютерный центр держал свои машины, взирая с трепетом на Sequent Symmetry размером с холодильник, за которым я только что работал, смотря на мигающие огоньки и осознавая, что сотни людей все еще внутри, пусть только виртуально, благодаря магии совместного использования, которую технически продвинутые компьютеры использовали для разделения своей вычислительной мощи среди многих пользователей, создавая иллюзию того, что каждый из них единственный. Но более всего я с завистью смотрел на системных администраторов, крутых настолько, чтобы иметь право сидеть по ту сторону стекла, наделенных всемогущей властью “суперпользователя” в системной консоли.
Недовольный Z-29, я начал рыскать по кампусу с наступлением темноты вместе с другом Джейсоном Балики (Jason Balicki) и идеей найти чего-нибудь еще. Джейсон уже несколько лет был участником научной компьютерной программы, так что он знал где искать (хотя и тут не обошлось без нашего вклада в науку — это было отчасти развлечением — входить в здания ночью и дергать дверные ручки комнат, которые могли иметь компьютеры, на предмет: а не открыты ли они?
Лучшие лаборатории, как я узнал, были в инженерном административном здании (называемые по кампусу неудачным сокращением ENAD) в котором несколько комнат с Х-терминалами предлагали черно-белые графические интерфейсы к Sequent и другим UNIX-машинам, разбросанным по кампусу. Вскоре мною выбранная “точка взлома” (термин, который мне презентовал Джейсон) оказалась в одной из лабораторий с X терминалами, которые были по-сути предназначены только для студентов-инженеров, — запрет, не подкрепленный паролями, и поэтому скромно проигнорированный.
Но золотую жилу корпуса ENAD следовало искать в его лабораториях с рабочими станциями Sun. В отличие от скромных Z-29 и даже сравнительно продвинутых Х-терминалов, компьютеры Sun были образцом искусства с их блестящими корпусами и цветными дисплеями высокого разрешения. Более того, Джейсон объяснил, что они работали на лучшем UNIX’e того времени, на SunOS, правда “Саны” были значительно сильнее “залочены”, чем Х-терминалы, требуя аккаунта местной локальной сети для доступа к ним, так что у меня не было шанса в действительности потрогать SunOS не иначе как много позже.
Я также имел доступ к UNIX посредством моего домашнего Intel 286-го PC и 2400-baud модема, который спасал меня от путешествия через весь кампус до компьютерной лабы, особенно в холодные деньки. Было круто обладать возможностью добраться до Sequent’a из дома, но я не хотел потерять свой опыт работы на Х-терминалах корпуса ENAD, так что однажды в январе 1993 года я отправился искать Х-сервер, который бы заработал на моем ПК. Поскольку я искал похожую штуку в Usenet, то я и столкнулся с чем-то под названием “Linux”.
Linux не был Х сервером конечно же, но он был чем-то много лучше: полностью UNIX-подобной операционной системой для PC; тем, что я не мог себе и представить, чтобы оно существовало. К несчастью, он требовал 386 процессор или выше, а мой РС был тогда 286-м. Так что я начал откладывать свои пенни на машину достаточно мощную, чтобы он работал на ней, а в то же время, пока я занимался этим, я поглощал все что мог достать по предмету своей мечты. Несколько недель спустя, я отправил сообщение в Пурдскую компьютерную группу сети Usenet, спрашивая есть ли кто-нибудь в кампусе, у кого работает Linux — и получил один ответ от студента информатики по имени Майк Дики (Mike Dickey), который с радостью пригласил меня к себе показать свою установку Linux’a. Ошарашенный, я купил коробку с 30-ю флоппи-дисками и начал медленный процесс закачивания Linux’a на них из компьютерной лаборатории здания Краннерт, однако понадобился бы еще месяц, чтобы я смог купить необходимый компьютер для его установки. В конечном счете я не мог уже ждать больше, так что мы с Джейсоном нашли незапертую лабу в одной из общаг с одним единственным компом и поздним февральским вечером проникли туда, чтобы установить Linux на этот лабораторный РС. Мне до сих пор временами интересно: что же должен был подумать тот несчастный студент, первым пришедший на следующее утро туда?
Linux был создан года за полтора до этого Линусом Торвальдсом — 21-летним студентом Хельсинского университета по информатике. Давний компьютерный энтузиаст Торвальдс прошел путь, скажем так, похожий на мой, но он начал свою карьеру программиста с Commodore Vic-20 и не подпортил ее более традиционными увлечениями подростков, популярными в 80-е. Первое знакомство Торвальдса с UNIX’ом произошло в 1990 году во время его курса в универе и, как у меня, это была любовь с первого взгляда.
Осенью того же года Торвальдс начал посещать курсы по операционным системам, которые использовали учебник “Операционные Системы: разработка и внедрение” Эндрю Таненбаума (Andrew Tanenbaum) — профессора информатики в Амстердамском Университете Врае. Книга Таненбаума обучала операционным системам на примере UNIX-клона для ПК под названием MINIX, который он и написал, а также включала полноценные исходники — то есть читабельный и редактируемый исходный код MINIX’а на комплекте из флоппи-дисков так, что читатели могли на деле устанавливать, использовать и изменять эту операционную систему. Заинтригованный Торвальдс купил ПК в начале 1991 года и присоединился к растущему сообществу MINIX — к десяткам тысяч участников, собранных вместе новостной конференцией comp.os.minix сети Usenet. Он начал экспериментировать не только с MINIX, но также с новыми возможностями многозадачности процессора Intel 80386, который стоял на его РС. (Многозадачность упрощает запуск одной и более программы на процессоре в одно и то же время, что есть одно из условий систем совместного доступа, подобных Sequent Symmetry, с которой мне предстояло познакомиться в Пурду в следующего году.) К лету 1991 года эксперименты Торвальдса с многозадачностью начали эволюционировать в полноценное ядро операционной системы — основной программной части операционной системы, которая является посредником между ЦП, памятью, дисками и другими девайсами в компьютере и обеспечивает упрощенный интерфейс к этим основным вычислительным функциям, позволяя значительно легче писать сложные приложения.
MINIX был не только дружественной операционной системой для программистов-любителей, проектом, существовавшим в 1991 году, но он был одним из немногих готовых к использованию и чуть ли не единственным, который мог работать на недорогих PC. Наиболее известным проектом операционной системы до тех пор был GNU под предводительством Ричарда Столмана. Столман, программировавший с середины 1960-х, будучи системным программистом в MIT (Массачуcетский Технологический Университет) с 1971 по 1983 года, был олдскульным хакером, одним из тех, которые занимаются компьютерами по собственному почину и в некоторых случаях рьяно (включая и случай Столмана) верят, что вся информация должна быть свободно распространяема.
Целью проекта GNU было создать свободную операционную систему (свободную не только по цене, но также свободную в смысле свободно модифицируемую), которая была бы совместима с UNIX (GNU являлся так называемым обратным акронимом, означающим “Gnu’s Not Unix”, “так-называемым” из-за того, что он использовал мощную фишку, часто используемую программистами вызывающими рекурсию, которая включает вычисление, использующее себя в качестве одного из своих вводных данных. Столман запустил проект GNU в 1983 году как ответ на растущий рынок проприетарного софта, софта — в котором исходники нельзя менять, а чаще они и вовсе не доступны.
Проприетарные программы стали откровенно новым течением в начале 1980-х и очень беспокоящим Столмана. До тех пор программы широко и свободно распространялись вместе с железом и хакеры часто делились копиями их исходников вкупе со своими собственными изменениями и улучшениями. Столман рассматривал растущий тренд по направлению к проприетарным программам не менее, чем первый шаг к цифровой утопии 1984, в которой компьютерные пользователи, а в конечном счете и все общество будут захвачены жадными корпоративными интересами и намерился остановить это.
К середине 1991 года Столман и разрозненная группа волонтеров собрали большую часть операционной системы GNU — компилятор, дебагер, редактор, командный интерпретатор (или иначе оболочку), множество утилит и программных библиотек, которые были как в UNIX, только лучше — версии GNU повсеместно считались совершеннее своих тезок. Единственно, чего не доставало — это было ядро и вскоре была создана небольшая команда в Столмановском фонде свободного ПО (некоммерческой организации, которую тот создал в 1985 году для наблюдения за разработкой GNU и защиты свободного ПО), чтобы и написать этот последний элемент. Программеры по всему миру полагали, что это будет просто вопрос времени — завершение и доступность GNU, и что они наконец-то получат операционную систему, свободную от корпоративных обременений.
В другой половине мира собственное ядро операционной системы Торвальдса становилось готовым настолько, чтобы выпустить его в мир. В ныне известном посту в Usenet comp.os.minix 25-го августа 1991 года он написал:
“Привет всем там, кто использует minix. Я делаю (свободную) операционную систему (лишь как хобби, она не будет большой и профессиональной как gnu) для 386(486) АТ-совместимых. Она уже варится с апреля и вот-вот будет готова. Я бы хотел какого-либо фидбэка на тему, что народу нравится-не нравится в minix’е, так как моя ОС похожа на него в некотором роде (то же физическое расположение файловой системы (из практических соображений) среди прочих вещей).”
Ответ был немедленный и ошеломляющий. В то время как все ожидали, что GNU будет сделана в ближайшее время, она еще не была готова, по крайней мере в том виде, в котором она могла быть использована без подпорок из UNIX. И в то время как MINIX был популярным, он оставался не бесплатным, хотя и был, безусловно, недорогим в сравнении с другими UNIX’ами. Возможно более важным, однако, было то, что MINIX рассматривался в основном как учебное пособие, а не софт для продакшена, так как Таненбаум не любил включать множество патчей и изменений в свою операционную систему, которые бы расширили ее возможности кои текли ежедневно от толпы энтузиастов-пользователей по всему миру, боясь, что их дополнения сделали бы MINIX слишком сложным и поэтому более трудным для изучения студентами.
Приманка из UNIX-подобной операционной системы для ПК, не важно насколько она несовершенна, которая была свободна и могла эволюционировать со скоростью с которой сообщество само желало этого, была слишком хороша для многих пользователей MINIX’a чтобы противостоять ей, так что они начали стекаться толпами к новой ОСи Торвальдса, которая осенью 1991 года, кажется, уже превратилась в “Linux”. Однако Linux был лишь ядром — он требовал множество тулзов и приложений, установленных поверх, чтобы заставить делать его действительно что-нибудь полезное. К счастью, большинство из них уже существовало благодаря проекту GNU Столмана.
К 1992 году несколько бесстрашных пользователей начали собирать наборы образов для флоппи-дисков, которые совмещали Linux с рядом инструментов GNU, чтобы облегчить установку и запуск новыми пользователями. Эти коллекции (позже названные “дистрибутивами”) становились с каждым разом лучше и ко времени, когда я наконец-то обрел свой PC в марте 1993 года, дистрибутив Softlanding Linux System (или SLS) уж вырос до 30-ти дискет и включал множество приложений и, да, почти все те программы, которые работали в Х-терминалах здания ENAD.
Я никогда не пробовал приконнектить линуксовый X-сервер, который в то время стоял на моем компьютере к Sequent, что по-видимому также было бы еще и болезненно медленно при скорости 2400 baud — в несколько тысяч раз медленнее, чем современные скорости в любом случае. Поскольку теперь у меня был свой личный UNIX, который можно было изучать прямо здесь, за собственным столом. А изучение я проводил в прямом смысле: “сломай свой UNIX”. Раз преодолев волнение от факта, что я являюсь “cуперпользователем”, — неописуемая сила, которую я до этого лицезрел лишь за стеклянной стеной, я стал восхищаться не столько самим Linux’ом, сколько процессом которым он создавался: сотни людей, кодящих в своем собственном закоулке системы и использующих Интернет, чтобы обновить код, медленно, но уверенно делая систему лучше с каждым изменением, — я начал вносить свой собственный вклад в растущее сообщество: новый дистрибутив, названный Debian, который было бы легче использовать и который был бы более надежным, поскольку строился и поддерживался бы сообща его пользователями, как и сам Linux.
Ian Murdock
Перемещено Aceler из debian