Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie, которые обеспечивают правильную работу сайта. Благодаря им мы улучшаем сайт!
Принять и закрыть

Читать, слущать книги онлайн бесплатно!

Электронная Литература.

Бесплатная онлайн библиотека.

Читать: В начале была командная строка - Нил Стивенсон на бесплатной онлайн библиотеке Э-Лит


Помоги проекту - поделись книгой:

Метафорический сдвиг

Я начал использовать Microsoft Word как только первая версия появилась в районе 1985-го. После некоторых начальных напрягов мне подумалось, что эта штука лучше, чем MacWrite, который был единственным конкурентом в те времена. Я написал много вещей в ранней версии «Ворда», храня это все на флоппи-дисках, и перенес содержимое всех моих «флопиков» на свой первый жесткий диск, который я приобрел примерно в 1987-м. По мере того, как появлялись новые версии «Ворда», я уверенно их обновлял, полагая, что как автору, мне имеет смысл вкладывать определенную сумму денег в свои инструменты.

Где-то в середине 1980-х я попытался открыть один из моих старых вордовских документов образца 1985-го года, используя текущую версию «Ворда» 6.0. Он не сработал. «Ворд» 6.0 не распознал документ, созданный своей же более ранней версией. Открывая его как текстовый файл, я смог восстановить последовательности букв, которые создавали текст документа. Мои слова были все еще там. Но форматирование выполнялось через ведение протокола — слова, которые я записал, прерывались потоками пустых прямоугольных «ящиков» и тарабарщины.

Теперь, в контексте бизнеса (основной рынок сбыта для «Ворда») такого рода вещи вызывают только досаду — один из обычных «напрягов», которые связаны с использованием компьютеров. Легко купить небольшие программы преобразования файлов, которые позаботятся об этой проблеме. Но если Вы — автор, чья карьера является словами, чье профессиональное тождество — объем письменных документов, этот тип вещей чрезвычайно тревожит. Есть лишь некоторые неизменные предположения в моем роде занятий, но одно из них — что как только вы записали слово, оно записано, и не может быть стерто. Чернила пятнают бумагу, долото режет камень, стило выдавливает глину, и происходит нечто неотменимое (мой свояк является теологом, который читает 3250-летние клинописные таблички — которые он может распознать, как рукописные записи обычных писцев и идентифицировать их по имени). Но программное обеспечение для обработки текстов — особенный сорт инструментов, которые применяет специальные, сложные файловые форматы — имели и имеют древнюю власть отменять записанное. Мелкое изменение в формате файла, или немного покореженных битов, и месяцы или годы литературного творчества могут перестать существовать.

Тогда это был технически дефект в приложении («Ворд» 6.0 для Macintosh), а не операционной системы (MacOS 7-точка-что-то еще), и поэтому начальным объектом моей досады были люди, которые ответственны за создание «Ворда». Но, с другой стороны, я мог бы выбрать опцию «сохранить как текст» в «Ворде» и сохранял все мои документы, как простые телеграммы, и эта проблема не должна была возникнуть. Взамен я позволил себе соблазниться всеми теми кричащими опциями форматирования, которые даже не существовали пока ГРАФИЧЕСКИЕ ИНТЕРФЕЙСЫ ПОЛЬЗОВАТЕЛЯ не появились, чтобы сделать их реальными. Я усвоил привычку использовать их, чтобы сделать вид мой документов симпатичным (возможно более красивым, чем они заслужили выглядеть; все старые документы в тех флоппи-дисках оказались более или менее дерьмом). Теперь я расплатился за эту само-избалованность. Технология продвинулась и обнаружила пути, чтобы заставить мои документы выглядеть даже более красивыми, и последствием этого было то, что все старые безобразные документы перестали существовать.

Это было — если вы простите мне момент странной небольшой фантазии — как если бы, я приехал, чтобы отдохнуть на некотором курорте, в неком изысканно разработанном и ориентированном на искусство отеле, отдавая себя в руки прошлых мастеров Сенсорного Интерфейса, и сидел в своей комнате, и записывал рассказы шариковой ручкой в честный желтый блокнот, и, когда я возвращался с обеда, обнаружил, что горничная забрала мою работу и оставила на ее месте гелевую ручку и стопку тонкого пергамента — объясняя, что представление выглядит от этого даже лучше, и это было всего лишь частью обычной модернизации. Но записанны на эти листы бумаги, безупречно с точки зрения каллиграфии, оказались длинные последовательности слов произвольно выбранных из словаря. Ужас, конечно, но я не мог в действительности подать жалобу управляющему, поскольку оставаясь на этом курорте согласился на все это. Я сдал свои Морлокские верительные грамоты и стал Элоем.

LINUX

В конце 1980-х и начале 1990-х я затратил много времени, программируя «Макинтоши», и в конечном счете решил выделить несколько сотен баксов на «яблочный» продукт, названный «Мастерская Программиста Макинтошей», или MPW (сокр. от «Macintosh Programmers Workshop» — прим. перев.). У MPW были конкуренты, но она была неоспоримо первой системой разработки программного обеспечения для Mac. Это был тот самый молоток, которым собственные инженеры «Apple» пользовались, чтобы заколачивать код в Macintosh. Если MacOS была технологически значительно более продвинутой, в то время, чем конкурентные системы, а Linux даже не существовал тогда, и если MPW была в натуре программой, использованной группой «Яблочных» творческих инженеров мирового класса, у меня были «законные» высокие ожидания. Оно прибыло в виде стопки флоппи-дисков, около фута высотой, и у меня было много времени, чтоб поволноваться, в течение бесконечного процесса установки. Как только я запустил MPW, я, наверно, ожидал чего-то типа приобщения к образцу мультимедиа. Взамен это оказалось аскетичным, почти пугающим на вид. Это было обычное окно прокрутки, в котором вы могли бы набрать простой, бесформатный текст. Система должна затем проинтерпретировать те строки текста, как команды, и попытаться их выполнить.

Это был, другими словами, стеклянный телетайп, выполняющий интерфейс командный строки. Он пришел со всякого рода загадочными, но мощными командами, исполнять которые надо было, набирая их имена, и которые я научился использовать только постепенно. Это случилось только после того, как несколькими годами позже я начал возиться с Unix, в результате чего я понял, что интерфейс командный строки, включенный в MPW, был реинкарнацией Unix.

Другими словами, первая вещь, которую «яблочные» хакеры сделали, когда они получили MacOS и запустили ее — вероятно даже перед тем, как получили и запустили — они воссоздали интерфейс Unix так, что они могли бы сделать какую-нибудь полезную работу. В то время, я просто не мог задуматься об этом, но, насколько «яблочные» хакеры кумекали, хваленый «Графический Интерфейс Пользователя» в Mac был им только помехой, чем-то, что нужно было обойти, пока небольшой тостер еще не появился на рынке. (Здесь намек на маркетинговые лозунги «Apple», идеологи которой с подачи Стива Джобса мечтали сделать компьютер обыкновенным бытовым прибором, навроде того же тостера. — прим. перев.)

Даже перед тем, как мой Powerbook «рухнул» и уничтожил мой большой файл в Июле 1995, имелись иные признаки опасности. Мой старый приятель по колледжу, который основывал и запускал высокотехнологичные компании в Бостоне, разрабатывал коммерческий продукт, использующий Макинтоши, как фасад. В принципе «Маки» были быстродействующими графическими терминалами, выбранные как раз из-за их приятного пользовательского интерфейса, давая пользователям доступ к графическому представлению большой базы данных, хранящейся в сети более мощных, но менее дружественных компьютеров. Этот парень был второй человек, который повернул мои мозги на «Макинтоши», между прочим, и всю середину 1980-х мы разделяли священный трепет посвященных в высокие технологии, используя лучшую «яблочную» технологию в мире тупоголовых пользователей ДОС. Ранние версии системы моего друга работали хорошо, как он сообщал мне, но, когда отдельные машины объединили в сеть, начали происходить непостижимые аварии; иногда целая сеть могла просто повиснуть. Это было одним из тех дефектов, которые не могли быть легко воспроизведены. Наконец, они пришли к выводу, что эти сетевые аварии происходили всякий раз, когда пользователь, пробегая меню в поисках конкретного пункта, придерживал кнопку мыши больше чем на пару секунд.

В основе своей, MacOS могла делать только одну вещь за раз. Прокручивание меню на экране — одна вещь. Так, когда меню опускалось, «Макинтош» был не в состоянии делать что-то еще, пока этот нерешительный пользователь не отпускал кнопку.

Это не так плохо для единичного пользователя, на машине с единственной программой (хотя это тоже довольно плохая вещь), но по-настоящему хреново в машине, которая находится в сети, поскольку участие в сетевой обработке подразумевает своего рода непрерывное взаимодействие низкого уровня с другими машинами. Отказываясь откликаться на запросы сети, «Мак» вызвал общесетевую аварию (такое было возможно в одноранговых сетях с передачей маркера по кольцу, когда вся мало-мальски важная работа возлагалась на центральный процессор — теперь всякой низкоуровневой ерундой занимаются специальные микроконтроллеры, не отвлекая вычислительную мощность от просмотра любимых видеофильмов, рисования в «Фотошопе» и раскладывания пасьянсов. — Прим. перев.).

Чтоб работать с другими компьютерами, сетями и с различными другими видами «железяк», ОпСистема должна быть несравненно более сложной и мощной, чем MS-DOS или изначальная MacOS. Единственный способ подключиться к Интернету, которым стоит заниматься серьезно — PPP, протокол «Точка-Точка», который на время делает ваш компьютер полноценный членом Глобальной Сети, со своим собственным однозначным адресом и различными привилегиями, правами и обязанностями, возложенными на него. Технически это означает, что ваша машина выполняет TCP/IP протокол, который, чтобы сделать длинный рассказ коротким, закручен вокруг пересылки пакетов данных взад и вперед, в незаданном порядке, и в непредсказуемое время, согласно продуманному и изящному набору правил. Но пересылка пакета данных является той же отдельной вещью, и так OS, которая может только делать одну вещь за один раз, не может одновременно быть частью Интернета и делать что-нибудь еще. Когда TCP/IP был изобретен, его выполнение было привилегией, зарезервированной для «Серьезных Компьютеров» (поначалу, особенно в среде профи, бытовало снобистское пренебрежение «игрушками электроников-любителей», т. е. неспециализированными микрокомпьютерами. — прим. перев.) — мэйнфреймов и мощных мини-компьютеров, использовавшихся в технических и коммерческих установках — так что протокол создавался из предположения, что каждый компьютер, использующий его, — серьезная машина, способная делать многие вещи одновременно. Не говоря худого слова, машина под управлением «Юниха» (жарг., фамильярн. от UNIX — эта легендарная («настоящая!») ОпСистема с самого начала была многозадачной, и как это часто бывает, с другой стороны баррикад — в среде «любителей» — считалась излишне заумной и тяжелой для освоения, хотя до сих пор пользуется заслуженной любовью «упертых Юниксоидов», т. е. профессионалов, за мощность, надежность, обилие инструментов и возможностей — прим. перев.). Ни MacOS, ни MS-DOS изначально не были заточены под работу в сети, и когда Интернет стал горячей темо, должны были последовать радикальные изменения.

Когда мой Powerbook разбил мне сердце, и когда «Ворд» перестал распознавать мои старые файлы, я «переподсел» на Unix. Очевидной альтернативой для MacOS должна была бы стать «Винда». Я по натуре не имею ничего против Microsoft, или Windows. Но стало прекрасно видно, что старые операционные системы для персональных компьютеров «перезрели», и с виду порядком перенапряглись, и, возможно, наилучшим было избегать их, пока они не научились ходить и жевать жвачку одновременно.

Переключение произошло в конкретный день, летом 1995-го. Я попал в Сан-Франциско на пару недель, используя мой PowerBook, чтобы поработать над одним документом. Текст был слишком большим, чтобы влезть на единственный «флопик», и, так случилось, что я не сделал резервную копию с тех пор как вышел из дома. PowerBook благополучно «упал» и стер файл целиком.

Это случалось как раз, когда я выходил за порог, чтобы посетить компанию называемую «Электрические Сообщества», которая в те дни была в Лос Альтосе. Я взял свой PowerBook с собой. Мои друзья в «Электрических Сообществах» были пользователями «Маков», у которых были всякого рода софтины для восстановления файлов и отката после сбоев диска, и я был уверен, что смогу вернуть большую часть файла.

Как оказалось, две разных маковских восстановительных утилиты не в состоянии найти никаких следов, что мой файл вообще когда-либо существовал. Он был полностью и систематически стерт. Мы прошли весь жесткий диск блок за блоком и обнаружили отдельные фрагменты бесчисленных старых, отвергнутых и забытых файлов, но ни одного из тех, что мне были нужны. Метафорический сдвиг был особенно жестоким в тот день. Это было типа того, как наблюдать, что девушка, которую ты любил последние десять лет, погибла в автокатастрофе, и затем присутствуя на вскрытии, ты узнаешь, что под одеждой и макияжем она была всего лишь мясом и кровью.

Я, по-видимому, наматывал вокруг офисов «Электрических сообществ» в некотором роде первобытного Бешенства Джунглей, поскольку в тот момент синхронно произошли три странные вещи. (1) Рэнди Фармер (машинный перевод «Похотливый Фермер» — прям вот так, с больших букв, — прим. перев.), coоснователь компании, прибыл с коротким визитом вместе со своей семьей — он тогда восстанавливался после хирургии. У него было немного горячих сплетен: «Форточка 95 выходит сегодня». Это означало, что новая операционная система Microsoft в тот день «имела быть» установленной на специальный лазерный диск, известный как «Золотой Мастер» (оригинальный образец записи, — прим. перев.), который должен был использоваться, чтобы нашлепать «джинтиллионы» копий для подготовки к громкому релизу через несколько недель. Эта новость была воспринята персоналом «Электрических сообществ» с раздражением, включая того чела, чья офисная дверь была облеплена обычным ассортиментом мультяшек и побасенок, например, (2) копия мультфильма про Дильберта, в котором Дильберт, многострадальный корпоративный инженер-программист, встречает полного, бородатого, непостижимого человека изрядного возраста — немного похожего на Санту, но более темного, и с… изрядным самомнением. Дилберт распознает в этом человеке, основываясь на своих способностях влиять на людей, хакера системы Unix, и реагирует с определенной смесью нервозности, благоговения и враждебности. Дилберт слабо отмахивается от беспокоящего незваного гостя на протяжении пары кадров; хакер «Юниха» слушает с каким-то яростным, всепобеждающим спокойствием, затем, в последнем кадре, кладет что-то в карман Дильберту. «Здесь „никель“, малыш, — говорит он, — ступай, купи себе настоящий компьютер». (3) Владелец двери и мультяшек был некий Даг Барнс. Барнс был известнен в отстаивании еретических мнений на предмет операционных систем. В отличие от большинства технарей в Районе Бухты, которые предпочитали Macintosh, полагая, что это «истинная машина хакера», Барнс любил замечать, что «Мак», со своей герметически запечатанной архитектурой, был на самом деле враждебен хакерам, которые склонны к опытам и «погрязли» в открытости. Напротив, линейка машин, совместимых с IBM, которые могут легко быть разобраны и собраны обратно, была гораздо больше «хакерабельна».

Поэтому, когда я вернулся домой, я начал возиться с «Линухом», который является «одним из», среди многих и многих других конкретных реализации абстрактного Платонического Идеала названного «Юних». Я не стремился специально «переподсесть» на новую ОСь, поскольку мои кредитные карты все еще дымились от всех тех денег, которые я вбухивал в аппаратные средства «Маков» годами. Но большое достоинство Linux было в том, что эта ОСь может работать на точно тех же железяках, как и ОСи от «Мелкософта» — то есть, на самых дешевых аппаратных средствах, какие только существуют в природе. Типа, чтобы продемонстрировать, почему это была крутая идея, примерно через неделю или две по возвращатении домой, я смог наложить свои лапы на тот скромный компьютер (486-й ящик о целых 33-ти мегагерцах) чтоб вволю над ним поиздеваться, так как знал парня, который работал в офисе, где эти штуки просто выбрасывались. Как только я получил это на дом, я открыл капот, запустил свои грабли вовнутрь, и начал переключать все платы подряд. Если что-то не работало, я шел в контору по продаже компов и порывшись в коробке, полной запчастей, покупал новую карту расширения за несколько баксов.

Доступность всех этих дешевых, но эффективных «железок» была неумышленным последствием решений, которые IBM и Microsoft сделали более чем десятиле тому назад. Когда «Окна» появились, и вытащили ГРАФИЧЕСКИЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ на значительно больший рынок, «железный» режим изменился: стоимость цветных видео карт и мониторов высокого разрешения начала падать, и падает до сих пор. Этот подход «общей свалки» в аппаратных средствах означал, что «Окна» были неизбежно корявее по сравнению с MacOS. Но ГРАФИЧЕСКИЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ вывел компьютер на такую обширную аудиторию, что объем пошел вверх, а цены начали съеживаться. Тем временем «Яблоко», которое так хотело чистенькую ОпСистемку с видео, встроенным в процессор, значительно утратило свою долю на рынке, по крайней мере, частично поскольку их красивые железяки стоят так дорого.

Но цена, которую нам, владельцам «Маков», пришлось заплатить за высшую эстетику и дизайн, не была просто финансовым вопросом. Была также и культурная цена, в виде отказа от того, чтоб открыть крышку и повозиться с маковским содержимым. Даг Барнс был прав. В «Яблоке», несмотря на репутацию машины, выбранной отвязными, творческими хакерами, в действительности создали тачку, которая отбивает охоту к хакерству, тогда как Microsoft, рассматриваемая как технологически отсталая и эпигонская, создала обширный, беспорядочный базар запчастей — изначальный суп, который в конечном счете породил Linux.

Дыроверт операционных систем

ОпСистема «Юних» всегда держалась провокационно на фоне войн операционных систем, подобно Русской Армии. Большинство людей знают только ее репутацию, и предположения о ее репутации, по типу как в мультфильме про Дильберта, смутны. Но все кажется согласны, что если бы она могла только проявить себя и перестать сдавать обширные пространства богатой сельскохозяйственной земли и сотни тысяч военнопленных в войне с наступающими захватчиками, она могла бы размазать их (и всю другую оппозицию) по стенке.

Трудно объяснить, как Unix заработал это отношение к себе, не вдаваясь в мозголомные технические подробности. Возможно, суть этого может быть объяснена рассказом истории о дрелях.

Hole Hawg является сверлильной установкой, выпускаемой компанией Milwaukee Tool. Если вы осмотритесь в типичном инструментальном магазине, вы можете найти меньшие дрели «от Милуоки» но не «Дыроверт», который является слишком мощным и слишком дорогим для частников. «Дыроверт» не имеет пистолетного дизайна дешевой домашней дрели. Это куб твердого металла с торчащей ручкой с одной стороны и патроном, установленным на другой. Куб содержит «возмутительно» мощный электрический двигатель. Вы можете удерживать ручку и нажимать триггер вашим указательным пальцем, но если вы не исключительно сильны, то не можете управляться с весом «Дыроверта» одной рукой; он, так сказать, «по-любому двуручный». Чтобы бороться с обратным вращающим моментом «Дыроверта», вы используете отдельную ручку (поставляемую с ним), которую привинчиваете на одну сторону железного куба или на другую в зависимости от того, используете ли вы вашу левую или правую руку, чтобы обслуживать триггер. Эта ручка не гладкая, эргономически разработанная фиговина, как у домашней дрели. Это — просто футовой длины кусок обычной гальванизированной трубы, прошитой с одного конца, с черной резиновой ручкой на другом. Если вам случится потерять его, вы просто придете в местный магазин сантехнической арматуры и купите другой кусок трубы.

Все восьмидесятые я выполнял кое-какие строительные работы. Однажды, другой рабочий приставил лестницу к наружной стороне здания, по котором мы легкими шагами поднимались вплоть до уровня второго этажа и использовали Hole Hawg, чтобы просверлить дыру сквозь внешнюю стену. В некоторой точке, сверло заклинило в стене. «Дыроверт», следуя своему и только своему стремлению, продолжал работать. Он закрутил тело рабочего вокруг подобно тряпичной кукле, так что тот сбил свою собственную лестницу вниз. К счастью, он продолжал держаться за «Дыроверт», заклиненный в стене, и просто болтался на нем и вопил о помощи, пока кто-то не пришел и не вернул лестницу на место.

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

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

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

Прежде чем «дыровертеть», мне пришлось изучить выбор дрелей в инструментальных магазинах, что я подумал, было трезвым взглядом, презирая меньшие низкоуровневые модели и взвешивая большие и дорогие уважительно, полагая, что я могу позволить себе одну из этих малюток. Теперь я рассматриваю их все с таким пренебрежением, что даже не считаю, что это настоящие дрели — просто уменьшенные игрушки, разработанные, чтобы использовать склонность к самозаблуждению мягкотелых частников, которые хотят поверить, что они приобрели настоящий инструмент. Пластиковые корпуса, тщательно разработаные и протестированные на фокус-группах, чтобы передать чувство твердости и мощности, кажутся мне вызывающими отвращение, непрочными и дешевыми, и я стыжусь, что я когда-либо покупался на приобретение таких фиговин.

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

«Юних» — «Дыроверт» среди операционных систем, и хакеры «Юниха», типа Дага Барнса и парня в мультфильме про Дильберта, и многие другие люди, которые населяют Кремниевую Долину, — подобны сыновьям подрядчика, которые растут используя только «Дыроверт». Они могли бы использовать ОСи от Apple/Microsoft, чтобы написать письма, поиграть в видеоигры, или подвести баланс своих чековых книжек, но они не могут действительно заставить себя, воспринимать эти операционные системы серьезно.

Изустная традиция

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

Например, существует команда (небольшая программа, часть ОпСистемы), которая называется 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-совместимом «железе». И на самом деле Торвальдс заслуживает всю честь, которая ему когда-либо воздавалась, и много того более. Но он не мог заставить это случиться сам, во всявом случае так, как мог Ричард Столлман. Для того чтобы писать код вообще, Торвальдсу нужны были дешевые, но мощные инструментальные средства разработки, и он их получил из проекта ГНУ Столлмана.

И ему нужны были дешевые аппаратные средства, чтобы писать этот код. Получение дешевого «железа» — значительно более трудная штука, чем дешевое программное обеспечение; один-единственный человек (Столлман) может написать программное обеспечение и выложить его в Сеть для свободного использования, но чтобы делать железяки, необходимо иметь целую промышленную инфраструктуру, которая является не дешевой для сколь угодно богатого воображения. Действительно единственный способ, сделать аппаратное средство дешевым — наштамповать невероятное количество его копий, так, что устройство стоит в конечном счете гроши. По причинам уже объясненным, Apple не захотела увидеть стоимость аппаратных грошей. Единственной причиной, почему Торвальдс поимел дешевое железо, была Microsoft.

Microsoft обломалась вступить в аппаратный бизнес, нацеленная на создание своего программного обеспечения, способного «бегать» на «железе», которое каждый мог бы собрать, и так были созданы рыночные условия, которые привели к падению цен на это самое «железо». В попытке понять феномен «Линуха», мы должны увидеть не единственного новатора, а своего рода крёстную Троицу: Линуса Торвальдса, Ричарда Столлмана, и… Билла Гейтса. Отнимите любого из этих троих, и «Линух» бы не появился.

Осиновый шок

Молодые Американцы, которые оставляют свою большую однородную страну и посещают некоторую другую часть мира, естественно, проходят различные стадии культурного шока: первая, немое, с широко раскрытыми глазами, удивление. Затем экспериментальное увлечение традициями новой страны, кухней, системой общественного транспорта и туалетами, ведущее к краткому периоду простодушной уверенности, что они — мгновенные эксперты по новой стране. По мере того как визит продолжается, ностальгию начинает усиливаться, и путешественник начинает ценить, впервые, то, что он или она считали само собой разумеющимся дома. В то же самое время начинает казаться очевидным, что многие отдельные культуры и традиции по существу произвольные, и могли бы быть другими; как езда по правой стороне дороги, например. Когда путешественник возвращает домой и подводит итоги полученного опыта, он или она узнает много более об Америке, чем о стране, которую они посещали.

По тем же причинам, стоит попробовать Linux. Это — чудная страна на самом деле, но вам не придется жить там; краткого пребывания достаточно, чтобы уловить некоторый вкус места и — более важно — обновить представления обо всем, что считалось само собой разумеющимся, и обо всем, что может делаться иначе, под Windows или MacOS.

Вы не можете попробовать это, если его не установите. С любой другой ОСью, ее установка была бы простым делом: в обмен на деньги, некоторая компания должна дать вам «сидюк», и вы окажетесь в начале пути. Но многое в этом типе сделки лишь подразумевается, и должно от этого лишь произойти и приобретаться отдельно.

Мы любим простые дела и простые сделки в Америке. Если вы поедете в Египет и, скажем, возьмете такси где-нибудь, вы становитесь частью жизни водителя такси; он отказывается брать ваши деньги из-за того, что это может унизить вашу дружбу, он следует за вами вокруг города, и плачет горючими слезами, когда вы садитесь в такси другого парня. Вы заканчиваете встречей с его детьми в некотором месте, и должны посвятить себя всего своего рода искренности, чтобы найти какой-то способ скомпенсировать его убытки, не оскорбляя его честь. Это изматывает. Иногда вы просто захотите простой поездки на такси в манхэттенском стиле.

Но, чтобы поиметь установку в американском стиле, где вы можете просто выйти и кликнуть такси (в смысле клича, а не клика, — прим. для погонщиков «мыши») и дуть своей дорогой, должен существовать целый скрытый аппарат побрякушек, инспекторов, комиссий, и так далее, — который нужен, чтоб такси были дешевы и вы могли в любое время получить одно из них. Когда система отказывается работать почему-либо, это непостижимо и возмутительно и обращает во всех остальных отношениях разумных людей в конспирологических теоретиков. Но, когда Египетская система ломается, она остается прозрачной. Вы не можете получить такси, но племянник вашего водилы прискачет на своих двоих, чтобы объяснить проблему и извиниться.

Microsoft и Apple делают вещи в манхэттенском стиле, с обширной сложностью упрятанной за стеной интерфейса. Linux делает вещи «египетским» способом, с обширной сложностью разбросанной по всему ландшафту. Если Вы только что прилетели из Манхэттена, ваш первый импульс будет вздеть длани и возгласить «Слушайте и не говорите, что не слышали! Кто-нибудь здесь будет что-нибудь делать!?» Но это не поможет вам найти друзей в стране Линуха, сколько-нибудь проще, чем это было бы в Египте.

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

Linux сам по себе — не специфический набор единиц и нулей, но самоорганизующаяся сетевая субкультура. Конечный результат ее коллективных заклинаний — обширное тело исходного кода, почти все записанное на Си (доминирующий компьютерный язык программирования). «Исходный код» просто означает компьютерную программу как набранную и отредактированную каким-нибудь хакером. Если она на Си, имя файла будет вероятно иметь окончание. c или. cpp, в зависимости от того, какой диалект был использован; если она — на некотором другом языке, то будет иметь некоторый другой суффикс. Часто файлы этого типа могут обнаруживаться в директории с именем /src, которое является хакерским «гебраическим» сокращением от «исходник». (То есть «source» — прим перев.)

Исходные файлы бесполезны на вашем компьютере, и представляют небольшой интерес для большинства пользователей, но в них гигантское культурное и политическое значение, поскольку Microsoft и «Яблочники» держат их в секрете, тогда как «линухоиды» делают их общедоступными. Они как семейные ценности. Они — типа той штуки, которая в триллерах Голливуда использована в качестве Чудо-Юдо Оружия: плутониевая начинка бомбы, совершенно секретные планы, чемодан совсекретных инструкций, бобина микрофильма. Если б исходники для «Форточек» или MacOS были сделаны общедоступными через Сеть, то эти ОСи стали бы свободными, подобно Линуху — только не настолько хорошими, из-за того, что никого не оказалось бы вокруг, чтобы «пофиксить баги» и ответить на вопросы. Linux — «открытый источник» софта, лишь в том значении, просто, что каждый может получить копии его исходников.

Вашему компьютеру исходная программа нужна не более вас самих; ему нужен объектный код. Файлы объектного кода естественно имеют суффикс. o и нечитабельны почти ни для кого, кроме некоторых очень странных пацанов, из-за того, что они состоят из единиц и нулей. Соответственно, файлы этого типа обычно валяются в директории с именем /bin, для «бинарников.»

Исходные файлы являются просто текстовыми файлами ASCII. ASCII означает конкретный способ кодировать буквы в битовые образы. В файле ASCII, на каждый символ имеет восемь битов. Это создает резерв «алфавита» на 256 отдельных символов, в этих восьми двоичных цифрах можно сформировать это множество уникальных образцов (два в восьмой степени равно 256 — т. е. число комбинаций из восьми двоичных разрядов, — прим. перев.). На практике, конечно, мы стремимся ограничить себя знакомыми буквами и цифрами. Битовые шаблоны используются, чтобы представить эти буквы и цифры такими же, как те, которые физически перфорировались на бумажную перфоленту моим телетайпом в средней школе, который в свою очередь был таким же, как те, что использовались телеграфной промышленностью в течение десятилетий. Текстовые файлы ASCII, другими словами, — те же самые телеграммы, и как у таковых у них нет всяких типографских украшалок. Но по той же причине они вечны, поскольку код никогда не меняется, и универсальны, поскольку любая из когда-либо написанных программ для редактирования и обработки текстов «в курсах» относительно этого кода. (То есть, конечно, появляются всякие монстры, типа Unicode — удвоенная таблица из 16 разрядов (65536 комбинаций), в которой можно хранить весь китайский алфавит для захвата рынка ПО на родине Мао, но ASCII понимает любой уважающий себя компьютер. Шутка в тему: как на глаз отличить письма в кодировке ASCII и Unicode? Элементарно: маленькие письма — ASCII, большие — Unicode;))) — Прим. перев.)

Следовательно, почти любая софтина может использоваться, чтобы создать, отредактировать, и прочитать файлы исходной программы. Объектные кодовые файлы, затем, создаются из этих исходных файлов специальной программулей, которая называется «компилятор», и обрабатываются до состояния рабочего приложения другим напильником, который называется «компоновщик». (Это священная троица программ, с которой начинается жизнь почти любого компьютера: редактор текстов, компилятор объектных кодов, и «редактор связей» или компоновщик — те блестящие молотки, которыми куча мертвого железа превращается в полезный универсальный инструмент. — Прим. перев.)

Триада редактора, компилятора, и компоновщика, взятых вместе, формирует сердцевину системы разработки программного обеспечения. Теперь есть возможность вбухать много денег в чистенькие системки разработки с красивенькими графическими интерфейсами пользователя и различными эргономическими расширениями (О! Как RAD каждый программист, которому дан в ощущениях процесс Быстрой Разработки Приложений. В некоторых случаях это могло даже быть хорошим и разумным способом тратить деньги. Но на этой стороне дороги, самым лучшим программным обеспечением являются обычно свободные вещи. Редактор, компилятор и компоновщик для хакеров то же самое, чем были пони, стремена, и «комплекты стрельбы из лука» для Монголов (ну, колчан со стрелами и тугой лук — это в своем роде и есть комплект джентльменского арчера, будь то древний монгол или современный энтузиаст любимого спорта английских йоменов и славных парней робин-гудов, так что мой перевод archery sets прошу считать адекватным — прим. перев). Хакеры живут в седле (то есть в Сети? а где живут монголы? — неодумение пререв.), и «хакают» своими собственными инструментами, даже когда используют их, чтобы создать новые приложения. Это в натуре непостижимо, что инструментальные средства высшей пробы могут создаваться с чистого листа инженерами продукта. Даже если они — самые яркие инженеры в мире, они просто в меньшинстве.

В «ГНУсном мире Линуха» (это разумеется, юмор: попробуйте без вопросов перевести на великий и могучий GNU/Linux world. — Прим. перев.) есть две основных проги для редактирования: минималистский vi (известный в некоторых реализациях как elvis) и максималистский emacs (плюс два лагеря непримиримых сторонников того и другого, между которыми — настоящие религиозные войны. — Прим. перев.). Я использую emacs, который можно представить как термоядерный текстовый процессор. То, что он создавался Ричардом Столлманом (Richard Stallman); говорит достаточно. Он написан на языке Лисп, который является единственным машинным языком, который красив (весьма спорное утверждение, целиком на совести автора. Мое мнение может с ним не совпадать: я не люблю Лисп, если кто-то спросит. Мне гораздо больше по вкусу CLIPS, как объектно-ориентированное развитие идей функционального программирования — Прим перев.). Он колоссален, и всего лишь навсего редактирует обычные текстовые файлы ASCII, то есть, никаких шрифтов, никаких «жирных» гарнитур, никакого подчеркивания. Другими словами, часы инженеров, которые, в случае Microsoft Word, посвящались примочкам подобно автоматическому составлению писем и способности вставлять изображения изменяемого размера в корпоративные меморандумы, были, в случае emacs, сфокусированы на маниакальной по интенсивности работе над кажущимися обманчиво простыми проблемами редактирования текста. Если Вы — профессиональный писатель — т. е., если кто-то еще получает деньги, за беспокойство о том, как ваши слова будут отформатированы и напечатаны — emacs затмевает все другие софтины для редактирования приблизительно так же, как полуденное солнце делает звезды. Он не просто большой и более яркий; он просто заставляет всех остальных побледнеть (ну, тоже в своем роде двусмысленное замечание — бледнеть можно по разным причинам, — прим. перев.). Для страничного форматирования и печати Вы можете использовать TeX: обширный объем правил печати, написанных на Си и также свободно доступных в Сети.

Я мог бы долго трепаться о emacs и TeX, но прямо сейчас я пытаюсь поведать историю о том, как в натуре установить Linux в вашей машине. Методом хардкорной проверки на выживание было бы скачать редактор подобно emacs, и инструментальные средства ГНУ — компилятор и компоновщик — которые отшлифованы и великолепны примерно в той же степени как emacs. Обеспеченный ими, некто мог бы начать скачивать файлы исходников в кодировке ASCII (/src) и компилировать их в объектные файлы двоичного кода (/bin), которые должны работать на машине. Но типа, чтобы вообще прибыть в эту точку, — чтобы заставить emacs работать, к примеру — вы должны уже иметь Linux, установленный и работающий на вашей машине. И даже минимальная линуховая ОпСистемка требует тысячи двоичных файлов, действующих в полном согласии, размещенный и связанный вместе совершенно правильно.

Различные личности, таким образом, возложили на себя самих всю грязную работу, по созданию «поставок» Linux. Если я могу немного расширить египетскую аналогию, эти парни примерно как гиды в путешествиях, которые встречает вас в аэропорту, которые говорят на вашем языке, и помогают вам пройти через начальный культурный шок. Если вы — египтянин, конечно, вы видите это с другой стороны; туристические гиды существуют, чтобы удержать британских иноземцев от разгуливания по вашим мечетям и задавания вам одних и тех же вопросов снова и снова.

Некоторые из этих «тургидов» относятся к коммерческим организациям, как например, софтины Красной Шапки (в оригинале — Red Hat Software, название фирмы-распространителя, остальное — интернациональная игра слов, — прим. перев.), которая выпускает дистрибутивы Linux названные «Красной Шапкой», что придает этому столоверчению сравнительно коммерческий блеск. В большинстве случаев вы устанавливаете CD-ROM «Красной Шапочки» (другое фамильярное название, — прим. перев.) в ваш ПиСюк, перезагружаете его, и он выполняет остальное. Так же как гид по Египту будет ожидать некой компенсации за свои услуги, коммерческие поставки должны были оплачены. В большинстве случаев они не стоят почти ничего и в этом их немалое достоинство.

Я пользуюсь поставкой, которая называется Debian (слово является сокращением от «Deborah» и «Ian») и является некоммерческой. Она была организована (или, возможно, я должен сказать «она организовала себя») примерно той же сапой, как Linux в общем смысле, то есть, она опирается на добровольцев, которые сотрудничают по Сети, каждый ответствен за поддержку своего компонента системы. Эти люди разбили Linux на множество пакетов, которые являются сжатыми файлами и могут загружаться уже функционирующей линуховой системой на основе поставки Debian, затем, открываются и распаковываются, используя свободное приложение установки. Конечно, как таковая, Debian не имеет коммерческой мощи — ни распространительного механизма. Вы можете загрузить все дебиановские пакеты по Сети, но большинство людей захочет получить их на CD-ROM. Различные другие компании возложили на себя всю возню по закачиванию дебиановских пакетов на CD-ROMы и последующей их продаже. Я купил свое в «Лаборатории Линуховых Систем». Стоимость для трехдисковой установки, содержащей Debian во всей полноте — менее чем три доллара. Но (и это — важное различие) ни единого пенни из этих трех долларов не достается никому из кодировщиков, которые создавали Linux, ни упаковщикам из Debian. Они все остаются в Лаборатории Линоховых Систем и платятся не за программное обеспечение, или пакеты, но составляют стоимость «выпекания» дисков CD-ROM.

Каждая из линуховых поставок включает некоторый более или менее умный «хак» для обхода нормального процесса загрузки и чтоб заставить ваш компьютер, когда он включится, организовать себя не как ущербный ПиСюк, выполняющий «Окна», но как реальный «хост» под управлением Unix. Это немного тревожит поначалу, когда вы видите это впервые, но полностью безопасно. Когда PC загружается, он проходит небольшую программу самотестирования, проверяя доступное дисковое пространство и запас памяти, а затем осматривается в поисках диска, с которого можно загрузится. В любом нормальном виндовом компьютере, этим диском будет жесткий диск. Но если у вас ваша система настроена правильно, она сначала проверит дисководы для флоппиков или CD-ROM, и загрузится с одного из них, если они доступны.

Linux пользуется этой фишкой в своих целях. Ваш компьютер замечает загрузочный диск в приводе для флоппиков или СиДюков, загружает некоторый объектный код с этого диска, и слепо начинает исполнять его. Но это не «мелкомягкий» или «яблочный» код, это — линуховый код, и отсюда ваш компьютер начинает вести себя намного иначе, по сравнению с тем, к чему вы привыкли. Загадочные сообщения начинают перемещаться по экрану. Если вы загрузили коммерческую OS, вы отсюда видите мультяху «Добро пожаловать в MacOS» или экран, заполненный облаками в синем небе, и логотип «Windows». Но под Linux вы получаете длинную телеграмму, напечатанную абсолютно белыми буквами на черном экране. Здесь нет сообщения «добро пожаловать!». Большинство этих телеграмм полу-непостижимы, как угрожающие граффити на стене. (Не курить! Пристегните ремни… — Прим. линухоида. Три… Два… Один…)

Dec 14 15:04:15 theRev syslogd 1.3–3#17: restart. Dec 14 15:04:15 theRev kernename = "note" klogd 1.3–3, log source = /proc/kmsg started. Dec 14 15:04:15 theRev kernename = "note" Loaded 3535 symbols from /System.map. Dec 14 15:04:15 theRev kernename = "note" Symbols match kernel version 2.0.30. Dec 14 15:04:15 theRev kernename = "note" No module symbols loaded. Dec 14 15:04:15 theRev kernename = "note" Intel MultiProcessor Specification v1.4 Dec 14 15:04:15 theRev kernename = "note" Virtual Wire compatibility mode. Dec 14 15:04:15 theRev kernename = "note" OEM ID: INTEL Product ID: 440FX APIC at: 0xFEE00000 Dec 14 15:04:15 theRev kernename = "note" Processor #0 Pentium(tm) Pro APIC version 17 Dec 14 15:04:15 theRev kernename = "note" Processor #1 Pentium(tm) Pro APIC version 17 Dec 14 15:04:15 theRev kernename = "note" I/O APIC #2 Version 17 at 0xFEC00000. Dec 14 15:04:15 theRev kernename = "note" Processors: 2 Dec 14 15:04:15 theRev kernename = "note" Console: 16 point font, 400 scans Dec 14 15:04:15 theRev kernename = "note" Console: colour VGA+ 80x25, 1 virtual console (max 63) Dec 14 15:04:15 theRev kernename = "note" pcibios_init: BIOS32 Service Directory structure at 0x000fdb70 Dec 14 15:04:15 theRev kernename = "note" pcibios_init: BIOS32 Service Directory entry at 0xfdb80 Dec 14 15:04:15 theRev kernename = "note" pcibios_init: PCI BIOS revision 2.10 entry at 0xfdba1 Dec 14 15:04:15 theRev kernename = "note" Probing PCI hardware. Dec 14 15:04:15 theRev kernename = "note" Warning: Unknown PCI device (10b7:9001). Please read include/linux/pci.h Dec 14 15:04:15 theRev kernename = "note" Calibrating delay loop.. ok — 179.40 BogoMIPS Dec 14 15:04:15 theRev kernename = "note" Memory: 64268k/66556k available (700k kernel code, 384k reserved, 1204k data) Dec 14 15:04:15 theRev kernename = "note" Swansea University Computer Society NET3.035 for Linux 2.0 Dec 14 15:04:15 theRev kernename = "note" NET3: Unix domain sockets 0.13 for Linux NET3.035. Dec 14 15:04:15 theRev kernename = "note" Swansea University Computer Society TCP/IP for NET3.034 Dec 14 15:04:15 theRev kernename = "note" IP Protocols: ICMP, UDP, TCP Dec 14 15:04:15 theRev kernename = "note" Checking 386/387 coupling… Ok, fpu using exception 16 error reporting. Dec 14 15:04:15 theRev kernename = "note" Checking 'hlt' instruction… Ok. Dec 14 15:04:15 theRev kernename = "note" Linux version 2.0.30 (root@theRev) (gcc version 2.7.2.1) #15 Fri Mar 27 16:37:24 PST 1998 Dec 14 15:04:15 theRev kernename = "note" Booting processor 1 stack 00002000: Calibrating delay loop.. ok — 179.40 BogoMIPS Dec 14 15:04:15 theRev kernename = "note" Total of 2 processors activated (358.81 BogoMIPS). Dec 14 15:04:15 theRev kernename = "note" Serial driver version 4.13 with no serial options enabled Dec 14 15:04:15 theRev kernename = "note" tty00 at 0x03f8 (irq = 4) is a 16550A Dec 14 15:04:15 theRev kernename = "note" tty01 at 0x02f8 (irq = 3) is a 16550A Dec 14 15:04:15 theRev kernename = "note" lp1 at 0x0378, (polling) Dec 14 15:04:15 theRev kernename = "note" PS/2 auxiliary pointing device detected — driver installed. Dec 14 15:04:15 theRev kernename = "note" Real Time Clock Driver v1.07 Dec 14 15:04:15 theRev kernename = "note" loop: registered device at major 7 Dec 14 15:04:15 theRev kernename = "note" ide: i82371 PIIX (Triton) on PCI bus 0 function 57 Dec 14 15:04:15 theRev kernename = "note" ide0: BM-DMA at 0xffa0-0xffa7 Dec 14 15:04:15 theRev kernename = "note" ide1: BM-DMA at 0xffa8-0xffaf Dec 14 15:04:15 theRev kernename = "note" hda: Conner Peripherals 1275MB — CFS1275A, 1219MB w/64kB Cache, LBA, CHS=619/64/63 Dec 14 15:04:15 theRev kernename = "note" hdb: Maxtor 84320A5, 4119MB w/256kB Cache, LBA, CHS=8928/15/63, DMA Dec 14 15:04:15 theRev kernename = "note" hdc:, ATAPI CDROM drive Dec 15 11:58:06 theRev kernename = "note" ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Dec 15 11:58:06 theRev kernename = "note" ide1 at 0x170-0x177,0x376 on irq 15 Dec 15 11:58:06 theRev kernename = "note" Floppy drive(s): fd0 is 1.44M Dec 15 11:58:06 theRev kernename = "note" Started kswapd v 1.4.2.2 Dec 15 11:58:06 theRev kernename = "note" FDC 0 is a National Semiconductor PC87306 Dec 15 11:58:06 theRev kernename = "note" md driver 0.35 MAX_MD_DEV=4, MAX_REAL=8 Dec 15 11:58:06 theRev kernename = "note" PPP: version 2.2.0 (dynamic channel allocation) Dec 15 11:58:06 theRev kernename = "note" TCP compression code copyright 1989 Regents of the University of California Dec 15 11:58:06 theRev kernename = "note" PPP Dynamic channel allocation code copyright 1995 Caldera, Inc. Dec 15 11:58:06 theRev kernename = "note" PPP line discipline registered. Dec 15 11:58:06 theRev kernename = "note" SLIP: version 0.8.4-NET3.019-NEWTTY (dynamic channels, max=256). Dec 15 11:58:06 theRev kernename = "note" eth0: 3Com 3c900 Boomerang 10Mbps/Combo at 0xef00, 00:60:08:a4:3c: db, IRQ 10 Dec 15 11:58:06 theRev kernename = "note" 8K word-wide RAM 3:5 Rx: Tx split, 10base2 interface. Dec 15 11:58:06 theRev kernename = "note" Enabling bus-master transmits and whole-frame receives. Dec 15 11:58:06 theRev kernename = "note" 3c59x.c:v0.49 1/2/98 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html Dec 15 11:58:06 theRev kernename = "note" Partition check: Dec 15 11:58:06 theRev kernename = "note" hda: hda1 hda2 hda3 Dec 15 11:58:06 theRev kernename = "note" hdb: hdb1 hdb2 Dec 15 11:58:06 theRev kernename = "note" VFS: Mounted root (ext2 filesystem) readonly. Dec 15 11:58:06 theRev kernename = "note" Adding Swap: 16124k swap-space (priority -1) Dec 15 11:58:06 theRev kernename = "note" EXT2-fs warning: maximal mount count reached, running e2fsck is recommended Dec 15 11:58:06 theRev kernename = "note" hdc: media changed Dec 15 11:58:06 theRev kernename = "note" ISO9660 Extensions: RRIP_1991A Dec 15 11:58:07 theRev syslogd 1.3–3#17: restart. Dec 15 11:58:09 theRev diald[87]: Unable to open options file /etc/diald/diald.options: No such file or directory Dec 15 11:58:09 theRev diald[87]: No device specified. You must have at least one device! Dec 15 11:58:09 theRev diald[87]: You must define a connector script (option 'connect'). Dec 15 11:58:09 theRev diald[87]: You must define the remote ip address. Dec 15 11:58:09 theRev diald[87]: You must define the local ip address. Dec 15 11:58:09 theRev diald[87]: Terminating due to damaged reconfigure.

Единственные фрагменты этого, которые удобочитаемы, для нормальных людей, — сообщения об ошибках и предупреждения. И все что здесь заслуживает внимания, это то, что Linux не останавливает, и не падает, когда он встречает ошибку; он выдает вразумительную претензию, прекращает попытки запустить какой-то упрямый или поврежденный процесс, и катится дальше. Это было решительно не верно для ранних версий «яблочных» и «мелкомягких» ОСей, по той простой причине, что ОСь, которая неспособна ходить и жевать жвачку одновременно, возможно, не сможет восстановиться от ошибок. Поиск и обработка ошибок требует отдельного процесса, работающего параллельно с тем, который «ошибся». Типа супер-эго, если угодно, что присматривает за всеми остальными процессами, и выскакивает, когда какой-то из них теряется. Теперь, когда MacOS и «Винда» могут делать более чем одну вещь одновременно, они стали значительно лучше обрабатывать ошибки, чем обычно, но они даже не приблизились к Linux или другим Юнихам в этом отношении; и их большая сложность сделала их уязвимыми для новых типов ошибок.

Падучесть, искупление, погашение, доверие и другие заумные технические понятия

Линух не заточен под какие-то централизованные политики, диктующие, как писать сообщения об ошибке и документацию, так что каждый программист пишет свои собственные. Обычно они на английском, даже если учесть, что до фига и больше линуховых программистов-европейцев. Часто они забавны (сообщения, а не программисты — прим. перев.). Но всегда честны. Если какая-то бяка случилась, если программуля просто еще недоделана, или если пользователь что-то воткнул не туда, об этом будет заявлено в лоб. Интерфейс командной строки облегчает программулям надоедание нам небольшими комментариями, предупреждениями, и сообщениями там и тут. Даже если приложение плющит как подбитую субмарину, оно обычно может все еще перебиваться небольшими сообщениями типа «S. O.S.». Иногда, когда вы кончаете работать с программой и закрываете его на фиг, вы обнаруживаете, что оно оставило серию некритичных замечаний и низкоуровневых сообщений об ошибах через окно терминала из которого вы его запустили. Как если бы программное обеспечение болтало с вами о том, как оно было, пока вы с ним работали.

Документация для Linux поступает в форме «человеческих страниц» (man pages — сокращение от manual («Поручик молчать!» — прим. перев. — не от «рукосуйство», а от «руководство»). Вы можете иметь доступ к ним или через ГРАФИЧЕСКИЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ (команда xman) или из командной строки (команда man). Вот образец со страницы руководства для программы вызывающей rsh: «Стоповые сигналы стопят только локальный процесс rsh; это возможно неправильно, но к настоящему времени слишком сложно, чтобы пофиксить, по причинам слишком заумным, чтобы объяснять здесь.»

«Человечьи страницы» содержат много таких материалов, которые читаются подобно кратким мантрам пилотов, борющихся с управлением поврежденными самолетами. Общее чувство, — типа тысяч монументальных, но «темных» усилий, увиденных во вспышке стробоскопа. Каждый программист имеет дело с его собственными костылями и тараканами; он — слишком занят фиксированием их, и улучшением своих программулей, чтобы объяснять вещи подробно или удовлетворить сложные претензии.

На практике вы почти никогда не встретите серьезного «таракана» при прогоне Linux (в смысле, фиксить Линуха кувалдой о «трех пальцах», в отличие от Виндов, приходится очень редко — прим. перев). А если встретили — почти всегда это происходит с коммерческим софтом (различные поставщики продают программное обеспечение, которое работает под Linux). ОпСистема и ее основные программные утилиты слишком важны, чтобы в них водились серьезные жуки. Я работал под Линухом каждый день с позднего 1995-го и видал, как многие «аппликационные» программы рушились напрочь в пламени, но я никогда не видeл аварию самой ОпСистемы. Никогда. Ни разу. Довольно много линуховых систем, которые работают непрерывно и в жестких условиях в течение месяцев или лет, без необходимости в перезагрузке.

Коммерческие ОСи должны принять ту же официальную позицию по отношению к ошибкам, как коммунистические страны — к бедности. Исходя из доктрин, не возможно допустить, что бедность была серьезной проблемой в коммунистических странах, поскольку целью коммунизма являлась ликвидация бедности. Аналогично, коммерческие «осевые» компании, типа «Яблока» и «Мелкософта», не могут пройти мимо допущения, что их программное обеспечение «утараканено» и что оно разрушаеся все время, сколько-нибудь изящнее, чем Disney, который может выпустить пресс-релиз о том, что Микки Маус — просто актер в костюме.

Это — проблема, поскольку ошибки существуют и дефекты случаются. Каждые несколько месяцев Билл Гейтс пытается продемонстрировать новый продукт Microsoft перед большой аудиторией только чтобы тот взовался ему в лицо. Коммерческие поставщики ОСей, в качестве прямого следствия своей коммерции, склонны принимать весьма неискреннюю позицию, что дефекты — редкие искажения, и следовательно на самом деле не стоят никакого упоминания. Это положение, которое всем представляется абсурдом, не ограничивается пресс-релизами и заявлениями компании. Оно заключает целый способ, по которому эти компании занимаются бизнесом и взаимодействуют с клиентами. Если документация была правильно написана, она должна упоминать дефекты, ошибки, и аварии на каждой отдельной странице. Если онлайновые системы подсказки, которые приходят с этими ОСями, отражают опыт и заботы их пользователей, они должны во многом посвящаться конкретным инструкциям, как можно справиться с авариями и ошибками.

Но этого не случается. Корпорации Акционерного Капитала являются замечательными изобретениями, которые дали нам многие отличные товары и услуги. Они хороши в многих вещах. Допущение неудачи не — одно из них. Черт, они не могут даже избежать незначительных недостатков!

Конечно, это поведение не так патологично в случае корпорации, как это было бы по отношению к человеку. Большинство людей, в настоящее время, понимают, что корпоративные пресс-релизы выпускаются в пользу акционеров корпорации и не для просвещения публики. Иногда результаты этого институционального мошенничества могут быть ужасными, как табак и асбест. В случае коммерческих поставщиков ОпСистем ничего подобного нет, конечно; но оно просто раздражает.

Некоторые могли бы поспорить, что потребительская досада, со временем, переплавится в своего рода чешую (или мозоль — прим. перев.), которая может скрыть серьезное нарушение, и, что честность могла, следовательно, быть наилучшей политикой, в конце концов; истина все еще «где-то рядом» (слоган «truth is out of there», кстати, нашими телевизионщиками был переведен довольно странно: на самом деле он звучит «истина не здесь», то есть, «правды здесь нет» — прим. перев.) на рынке операционных систем. Бизнес расширяется достаточно быстро, так что до сих пор значительно лучше иметь миллиарды хронически раздраженных клиентов, чем миллионы счастливых.

Большинство системных администраторов, которых я знаю, кто работает с Windows NT все время соглашаются, что, «когда оно падает», приходится его перезагружать, и, когда оно получает серьезные повреждения, единственный путь, чтобы его пофиксить — переустановка операционной системы с нуля. Или, по крайней мере, — это единственный путь, который они знают, чтобы пофиксить эту штуку, что означает тоже самое. Без базара, возможно, что инженеры в Microsoft знают все уловки для «подъема» рухнувшей системы, но если они и знают что-то, они не кажутся склонными делиться с кем-либо из тех системных администраторов «с передовой», которых я знаю.

Поскольку Linux не коммерческий — из-за того, что он фактически свободный, а также довольно сложный, в получении, установке и обслуживании, он не обязан удовлетворять какие-либо претензии по своей надежности. Следовательно, он более надежен. Когда нечто идет неправильно с «Линухом», ошибка замечается и громко обсуждается немедленно. Каждый технически грамотный товарищ может сразу пройтись по исходному коду и отметить источник ошибки, которая затем быстро исправляется тем хакером, который несет ответственность за эту конкретную программу.

Насколько я знаю, Debian — единственная поставка Linux, которая имеет собственную конституцию (http://www.debian.org/devel/constitution), но что меня в натуре подкупило, так это их феноменальная «тараканья база данных» (http://www.debian.org/Bugs), которая является своего рода диалоговой «Книгой Судного Дня» всех ошибок, угроз ошибок и искупления грехов. Сама простота. Когда возникла проблемка с Debian в начале января 1997-го, я послал туда сообщение, описывающее проблемку на адрес submit@bugs.debian.org. Моей проблемке быстро был присвоен номер сообщения об ошибке (#6518) и уровень опасности (доступные варианты: «критический», «могила», «важно», «нормально», «исправлено» и «просьба трудящихся»), и она была направлена по спискам рассылки, где «дебьянутые» люди «зависают». В пределах двадцати четырех часов я получил пять «электропочтовых» писем, разъясняющих, как пофиксить проблемку: два из Северной Америки, два из Европы, и один из Австралии. Все эти «электрописьма» натолкнули меня на те решения, которые сработали, и избавили меня от проблемки. Но в то же самое время, копия этого обмена опытом была включена в дебиановский «определитель жуков», так что, если другие пользователи поимели ту же проблемку позже, они могли бы глянуть в базу и найти решение, не посылая новых, избыточных сообщений о дефектах.

Сравним это с опытом, который я поимел, когда попытался установить Windows NT 4.0 на той же тачке с десяток месяцев позже, поздним 1997-ым. Программа установки просто останавливалась в чистом поле, без какого-либо сообщения об ошибке. Я залез на «мелкомягкий» сайт поддержки и попытался выполнить поиск существующих документов подсказки, которые могли относиться к моей проблеме. Движок поиска был абсолютно нефункционален; он не сделал совсем ничего. Он даже не выдал мне сообщение о том, что он не работает.

В конечном итоге я решил, что фигня с моей материнской платой; это была немного необычная сборка и модель, а NT не поддерживала столько альтернативных материнских плат, сколько поддерживал «Линух». Я всегда ищу извинительные обстоятельства, независимо от того, насколько они слабые, чтобы купить новые аппаратные средства, так что взял и купил новую материнскую плату, которая имела логотип совместимости с Windows NT, в смысле, что логотип Windows NT был напечатан прямо на коробке. Я установил ее в мой компьютер и получил «Линух» работающим мгновенно, затем попытался устанавить Windows NT снова. И опять установка умирала без какого-либо сообщения об ошибке или объяснения. На этот раз прошла пара недель, и я подумал, что возможно поисковый движок на сайте поддержки Microsoft, быть может, заработал. Я дал ему шанс, но он его все еще не использовал.

Итак, я создал новую учетную запись в службе поддержки Microsoft, затем зарегистрировал в отправил инцидент на их рассмотрение. Я поставил мой идентификационый номер продукт, когда попросили, и затем последовал инструкциям через серию экранов подсказки. Другими словами, я подал сообщение о дефекте, точно так же, как в дебиановской системе отслеживания ошибок. Это было точно так же, только интерфейс был красивше — в нем я напечатал мою жалобу в небольшом окне текстового редактирования на «паутинной» форме (в смысле, WEB — прим. перев.), делая это все с помощью ГРАФИЧЕСКОГО ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ, тогда как в случае Debian вы посылаете сообщение электронной почты). Я знал, что, когда закончу сообщать о багах, это должно стать внутренней информацией Microsoft, и другие пользователи не смогут увидеть ее. Многие Linux пользователи отказались бы участвовать в такой схеме по этическим соображениям, но я пожелал дать этой штуке выстрелить, в порядке эксперимента. В итоге, мне так и не удалось отправить мое сообщение об ошибке, поскольку серия связанных страниц Паутины, которую я заполнил, в конечном счете привела меня к полностью чистой странице: полный тупик.

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

Я попробовал страницу поиска снова, хотя она все еще полностью мертва. Затем я испробовал ПЗИ (Предоплата За Инцидент). Это провело меня через другую серию страниц Паутины пока меня не затупило на прочтении чего-то вроде: «Слушай сюда! В Паутине нет страницы, отвечающей твоему запросу.»

Я попробовал это снова, и в конечном счете дошел до экрана «Предоплата За Инцидент», где прочел: «НИКАИХ ТЕБЕ ИНЦИДЕНТОВ. Нет неиспользованных инцидентов оставленных на вашем счете. Если вы хотели бы приобрести поддержку инцидента, нажмите OK — затем вы сможете заранее оплатить выши инциденты….» Стоимость за инцидент была $95 (Нехило? Кому как, а по-моему, это типичное хамство, за которое кое-где бьют не тортом, а бронзовым канделябром по наглой мелкомягкой морде: мало того, что торгуют трэшем в глянцевой упаковке, так еще и стригут купоны за то, что в приличном обществе делают бесплатно и с возвратом денег — исправление собственной лажи.

Эксперимент начал казаться довольно дорогим, так что я отказался от метода ПЗИ и решил пойти на ФИГ(«Факты Из Гонева», они же ЧаВо — «частые вопросы», происходят от англ. сокращения FAQ: Frequently Asked Questions, например: «Q: Как по-вашему, что без балды можно уверенно сказать о тенденциях мирового развития?» «А: Квадрат гипотенузы равен сумме квадратов катетов…» — прим. перев.), заявленный на сайте Microsoft. Ни в одном из доступных «ФАКов» не было ничего, чтобы решить мою проблему, за исключением одной фразы, типа «У меня были некоторые проблемы с установкой NT», что было написано технически неграмотными «шпаками».

Итак, я сдался и все еще, с того самого дня, никогда не получал Windows NT установленной на этой конкретной машине. Для меня, путем наименьшего сопротивления было просто использовать Debian Linux.

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

Это является, другими словами, другой характеристикой рынка ОпСистем, которая просто не имеет никакого значения, если вы не рассматриваете ее в контексте культуры. То, что Microsoft продает через «Предоплату За Инцидент» не техническая поддержка, а не более, чем непрерывная иллюзия, что клиенты занимаются некоторым типом рациональной деловой сделки. Это — своего рода гонорар сопровождения за обслуживание фантазии. Если люди действительно хотели бы настоящую ОпСистему, то они могли бы использовать Linux, и если они действительно хотели бы техническую поддержку, они нашли бы способ ее получить; клиенты Microsoft хотят иного.

Когда это пишется (Январь. 1999), приблизительно 32000 сообщений в базе данных об ошибках Debian Linux. Почти все они исправлены давно «тому обратно». Учтены двенадцать «критических» дефектов все еще «выдающихся», из которых старейший был объявлен 79 дней тому назад. Есть 20 выдающихся «мертвых» дефектов из которых старейшему — 1166 дней. Есть 48 «важных» дефектов и сотни «нормальных» и менее важных.

Аналогично, BeOS (до которой я дойду через минуту) имеет собственную базу данных о «жуках»(http://www.be.com/developers/bugs/index.html) со своей собственной системой классификации, включая такие категории как «Не Дефект» (not bug, but feature — прим. перев.), «Документированная особенность» и «Не исправимо». Некоторые «дефекты», не что иное, как хакерский «выпуск пара», и классифицированы, как «Ввод признан». Например, я обнаружил тот, который был объявллен в 30-го декабря, 1998-го года. Он оказался в середине длинного списка дефектов, вклиненный между называнным «Мышь, работающую очень странным способом» и другим, типа «Изменение BView фрейма не дает эффекта, если BView не подключался к BWindow.»

Этот был назван прямо так:

R4: BeOS тоскует в мании величия по званию номинального вожака упряжки, чему подобен фокус ярости разработчиков, и это происходит примерно так:

--------------

Состояние Пчелы: Признанный Ввод в версии BeOS: R3.2:Компонент неизвестен (Под пчелой здесь жаргонно подразумевается BeOS (прононсы слов Be и Bee в английском совпадают) — прим. перев.)

Полное Описание:

Хакеры BeOS явно эгоманьяки, мегаломания которых — восседалово на троне, чтобы придать их ОСи человеческий символ, который все любят ненавидеть. Без этого, BeOS завянет в области безликих ОСинок, до которых у народа никогда не дойдут руки. Вы можете судить об успехе ОпСистемы не по качеству ее наворотов, но по тому, насколько неизвестны и ненавистны лидеры, стоящие за ней.

Я верю это — сторонний эффект «комрадии» разработчиков в несчастных условиях. В конце концов, беда не приходит одна (буквально: «несчастье любит компанию» — прим. перев.). Я верю, что задача сделать BeOS менее концептуально доступной и значительно менее надежной потребует от разработчиков собраться вместе, таким образом, создавая тип общества, где новички говорят с друг с другом, типа как в продовольственном магазине перед огромной метелью.



Поделиться книгой:

На главную
Назад