В начале была командная строка
Шрифт:
Не трудно представить себе, на что мир должен выглядеть похожим, для кого-то, кто был воспитан контрагентами и кто никогда не использовал другой дрели, кроме «Дыроверта». Такой человек, обеспеченный наилучшими и наиболее дорогими дрелями из инструментальных магазинов, даже не признает их за таковые. Он мог взамен принять это за детские игрушки, или некоторый тип моторизованной отвертки. Если продавец или сбитый с толку домовладелец сошлются на это, как на дрель, он в натуре посмеется и сообщит им, что они попутали — у них просто была неверная терминология. Его крыша съедет от раздражения, и вероятно он почувствует желание отгородиться от поставок, полных дешевых, опасных, кричащих, красочных инструментов.
«Юних» — «Дыроверт» среди операционных систем, и хакеры «Юниха», типа Дага
Изустная традиция
«Юниху» не просто научиться. Процесс его изучения — одно из многочисленных небольших боевых крещений. Обычно у ваши руки доходят до запуска некоторого необходимого средства или утилиты, когда вам ясно, что кто-то другой уже изобрел это, и построил, и этим объясняются некоторые странные файлы или директории или команды, которые вы обнаружили, но никогда реально не понимали прежде.
Например, существует команда (небольшая программа, часть ОпСистемы), которая называется whoami (аглютинация англ. выражения «Кто я» — Прим. перев.), которая позволяет вам спрашивать компьютер, кем вы по его мнению являетесь. В машине под управлением Unix, вы всегда входите в систему под некоторым именем — возможно, даже под вашим собственным! То, с какими файлами вы можете работать, и какие софтинки вы можете использовать, зависит от вашего отождествления. Когда я начал использовать «Линух», я «зависал» на не подключенной к сети машине, в своей берлоге, только с одной учетной записью пользователя, и поэтому, когда я узнал о команде whoami, она показалась мне смешной. Но как только вы вошли в систему, в качестве одного человека, вы можете временно переключиться на другой псевдоним, чтоб иметь доступ к другим файлам (предположительно, имеются в виду не заумные для обычного пользователя манипуляции со значениями переменных EUID и EGID, а обычное переключение псевдотерминалов, когда с одной клавиатуры можно работать так, будто несколько человек подключены к одной машине: в мире «юнихов» и других современных сетевых ОС возможны и более «дикие» варианты виртуального клонирования и шизофрении — Прим. перев.). Если ваша машина находится в Интернете, вы можете зарегистрироваться на других компьютерах, если у вас есть понятные им имя пользователя и пароль. С этого момента, удаленная машина становится практически неотличима от той, что непосредственно перед вами. Эти изменения тождественности и местоположении могут легко стать вложенными в друг друга, на много слоев глубины, даже если бы вы не делаете чего-нибудь гнусного (вероятно, имеется в виду фальсификация личности, — прим. перев.). Как только вы забыли кто вы и где вы, — команда whoami незаменима. Я использую ее все время.
Файловые системы машин под управлением Unix все имеют ту же общую структуру. В своих домашних ОпСистемках, вы можете создавать директории (папки для файлов) и давать им имена типа «Фродя» или «Мое барахло» и поместить их куда угодно. Но под Unix самый верхний уровень — корень файловой системы (каталог «слэш», так называемый ROOT, полную власть над содержимым которого имеет обычно только одноименный пользователь — прим. перев.) всегда обозначается единственным символом «/» и он всегда содержит одинаковый комплект директориев верхнего уровня: /usr /etc /var /bin /proc /boot /home /root /sbin /dev /lib /tmp (По умолчанию, по крайней мере, — в разных версиях «Юнихов» состав каталогов немного варьируется и… не следует забывать о прихотях пользователя root) и каждый из этих каталогов, естественно, имеет собственную четкую структуру подкаталогов. Имейте в виду, что одержимое использование сокращений и исключение заглавных букв; — это система изобретенная людьми, для которых повторяющийся беспорядок так же напрягает и является тем же, чем для шахтеров — черные легкие.
Здесь не то место, чтобы попытаться объяснить, почему все вышеуказанные директории существуют, и что в них содержится. Сначала все кажется смутным; худшим, кажется умышленно замутненным. Когда я начал использовать Linux, я был привычен к возможности создавать каталоги, где бы я ни захотел и давать им по-любому те имена, какие волнуют мое воображение. Под Unix вы свободны делать это, конечно (вы свободны, чтобы делать что угодно), но когда вы приобретаете опыт общения с системой, вы начинаете понимать, что директории, указанные выше, были созданы не просто так и, что ваша жизнь будет значительно легче, если вы оставите их в покое (в пределах /home, между прочим, вы имеете даже слишком неограниченную свободу).
После того, как этого рода вещи случатся несколько сот или тысяч раз, хакер понимает, почему Unix именно таков, какой он есть — и не возражает, что он не будет таким же в любом другом случае. Это своего рода «аккультурация», которая дает хакерам Unix их осведомленность о состоянии дел в системе, и отношение тихого, непоколебимого, раздражающего превосходства, так захватившего Дильберта в мультике. «Окна» 95 и MacOS — продукты, изобретенные инженерами в службах специфических компаний. Unix, по контрасту, не столько продукт, как тщательно составленная изустная история хакерской субкультуры. Это — наш эпос о Гильгамеше.
Что сделало старые эпосы, подобно Гильгамешу, такими мощным и долговечными, так это то, что они жили в повествованиях, которые многие люди знали наизусть, и рассказывали снова и снова — создавая своих собственные личные прикрасы всякий раз, когда им это приходило в голову. Корявые украшения были отстрелены, удачные были восприняты другими, отшлифованные, улучшенные, и, со временем, включенные в историю. Аналогично, «Юних» известен, любим, и понят столь многими хакерами, что он может восстанавливаться с листа всякий раз, когда кому-то это нужно. Очень трудно понять это людям, которые привыкли думать об Осях, как о вещах, которые должны быть полностью куплены.
Многие хакеры создавали более или менее успешное перевоплощение идеала Unix. Каждый привносил новые финтифлюшки. Некоторые из них быстро угасли, некоторые объединяются с аналогичным, параллельными новшествами, созданными другими хакерами, атакующими ту же проблему, другие все еще увлечены и восприимчивы к эпосу. Таким образом Unix медленно разросся вокруг простого ядра и достиг того типа сложности и асимметрии в этом, что они теперь органичны, подобно корням дерева, или ветвям венечной артерии. Понимание этого — скорее анатомия, чем физика.
По крайней мере за год до моего принятия Linux, я услышал о нем. Заслуживающие доверия, хорошо осведомленные люди, продолжали сообщать мне, что кучка хакеров забацала реализацию «Юниха», который мог бы загружаться, бесплатно, из Интернета. Долгое время Я не мог заставить себя обращать на это внимание. Было похоже на расхожие слухи, что группа энтузиастов ракетного моделирования создала полностью функциональный «Сатурн V» обмениваясь планами по Сети и посылая по электронной почте клапаны и фланцы друг другу.).
Но это правда. Вся честь за Linux обычно достается его человеческому тезке, некому Линусу Торвальдсу (Linus Torvalds), финну по национальности, который заставил законченную штуку вертеться в 1991, когда он использовал некоторые инструментальные средства ГНУ (Эмблема сообщества открытых софтин Ричарда Столлмана — голова голубого гну, аббревиатура представляет собой обычную среди юниксоидов рекурсивную шутку «ГНУ это вам не ЮНИХ», так как аналоги «Юниха» не могут напрямую использовать защищенный законом торговый знак Unix (TM)), чтобы написать начало ядра Unix, которое могло бы работать на PC-совместимом «железе». И на самом деле Торвальдс заслуживает всю честь, которая ему когда-либо воздавалась, и много того более. Но он не мог заставить это случиться сам, во всявом случае так, как мог Ричард Столлман. Для того чтобы писать код вообще, Торвальдсу нужны были дешевые, но мощные инструментальные средства разработки, и он их получил из проекта ГНУ Столлмана.