Весь Нил Стивенсон в одном томе. Компиляция
Шрифт:
Apple и Microsoft работают по Манхеттенской схеме. Сложный, громоздкий, отлаженный механизм, приводящий в движение систему, спрятан за привлекательной завесой пользовательского интерфейса. Linux творит на египетский манер, его интерфейс — сплошная неразбериха. Вы загружаете Linux, и земля уходит у вас из-под ног, такое ощущение, что неведомая сила взяла и в мгновение ока перенесла вас с Манхеттена прямиком в Египет. Вы сбиты с толку, вы воздеваете руки к небу и восклицаете: «Господи, Боже мой! Да они что тут, с ума все посходили?!». И зря. Так вы друзей в среде Linux не обретёте, как, впрочем, и в Египте.
Linux можно воссоздать практически из ничего, из воздуха, достаточно загрузить нужные файлы и поместить их в определенную директорию. Правда, собрать таким образом полностью функционирующую ОС способны немногие — пара — тройка сотен человек в мире. Поэтому вам потребуется дистрибутив Linux, то есть множество правильно упакованных
Linux не просто набор единиц и нулей, это — хакерская субкультура, зародившаяся и самоорганизовавшаяся в недрах Сети. В результате напряженного коллективного труда возник необъятный исходный код, в большинстве своём написанный на Cи (основном языке программирования). «Исходный код» — текст компьютерной программы, набранный и отредактированный кем-нибудь из хакеров. Если исходный код написан на Си, файл имеет расширение *.c или *.cpp [628] (в зависимости от того, к какой школе принадлежит программист, написавший текст программы). У файлов с программами на других языках расширение будет другим. Обычно такие файлы размещаются в директории /src, что на хакерском аббревиатурном наречии означает «source» (исходные текты).
628
Именно так у автора. Однако, cpp (или. cc) — это, обычно, C++. Ниже, где речь идёт о файлах с расширением. o и о том, что в телеграфе использовался набор битов, а не азбука Морзе, — тоже на совести автора (примечание технического редактора).
Ни компьютеру, ни большинству пользователей исходные файлы не интересны. Linux открывает их любому желающему, а вот Microsoft и Apple хранят их в строжайшей тайне за семью замками и печатями, для них исходные файлы на вес золота. В голливудских боевиках главные герои гонялись бы за исходными файлами Apple и Microsoft точно так же, как за технологией создания ядерной бомбы, секретными чертежами («перед прочтением сжечь!»), чемоданом, набитом ценными облигациями или совершенно засекреченной микропленкой. Как сказал сэр Альфред Джозеф Хичкок, «неважно, что это за вещь; главное, что все хотят обладать ею». Размести кто-нибудь эти файлы в интернете, ОС Windows и MacOS стали бы свободными и бесплатными, как Linux, не такими хорошими, правда, не осталось бы никого, кто взвалил бы на себя обязанность подчищать «баги» и отвечать на бесконечные вопросы пользователей. Так что фраза «программное обеспечение с открытым исходным кодом» означает всего — навсего, что любой (абсолютно любой человек) имеет право получить исходные файлы и распоряжаться ими по собственному разумению.
И вашему компьютеру, и вам исходный код нужен не больше, чем собаке пятая нога. Что ему действительно требуется, так это объектный код. Файлы, содержащие объектный код, обычно имеют расширение *.o и совершенно нечитабельны для большинства пользователей, так как состоят из нулей и единиц. Лишь малая горстка очень странных людей способны прочесть эти файлы, размещенные в директории с именем /bin, что значит «binary» («двоичный»).
Исходные файлы — обычные текстовые файлы в кодировке ASCII, которая переводит алфавитные и цифровые символы, знаки и управляющие команды в набор битов. Каждому символу соответствует комбинация из восьми битов. Это позволяет определить 256 различных символов — «алфавит» — на основе которого восьмибитовые знаки формируют разнообразные кодовые вариации. В повседневной жизни, мы, конечно же, ограничиваемся обыкновенными, простейшими буквами и цифрами. Когда-то, еще в школьные годы, для зримого отображения букв и цифр этот же набор битов использовался в телетайпах, пробивавших дырки на перфолентах. А еще ранее, за несколько десятилетий до телетайпов, его применяли в телеграфной связи. Короче говоря, текстовые файлы в ASCII — кодировке — это безыскусные телеграммы, не отформатированные и не приукрашенные. И потому они — вечные. Кодировка никогда не меняется. Она единая, неделимая, всеобщая. Любой текстовый редактор любого программного обеспечения о ней знает.
Итак, в любом текстовом редакторе можно создавать, редактировать и читать исходные файлы. Из исходных файлов с помощью компилятора получают объектные файлы, а затем к работе над объектными файлами приступает компоновщик («линкер»).
Этой триады — редактора, компилятора и компоновщика — вполне хватает для разработки программ. Сегодня, конечно, можно купить их «в одном флаконе», собранными в один программный пакет, снабженный к тому же миленьким ГПИ и тому подобными обворожительными «мулечками» и «фишками». В некоторых случаях не самое плохое вложение капитала. Не стоит только забывать, что на противоположной стороне дороги совершенно бескорыстно раздают отличнейшее ПО. Редактор, компилятор и компоновщик для хакера то же, что конь, седло и колчан стрел для монгола — кочевника. В виртуозности владения рабочим инструментом хакеры
В мире GNU/Linux есть два ведущих текстовых редактора — скромный и непритязательный vi (или же его клоны elvis и vim) и «большой, толстый и красивый» emacs. Лично я пользуюсь emacs — он крут донельзя. Как-никак, детище самого Ричарда Столлмана, что тут говорить! Написан он на Lisp — е, единственном по — настоящему красивом языке программирования. Он превосходен, он выше всяких похвал, но редактирует только простые текстовые файлы, поэтому забудьте о разномастных шрифтах, жирных начертаниях и нижних подчеркиваниях. Человеко — часы, затраченные разработчиками Microsoft Word на «приблуды» типа mail merge и вставку полнометражных фильмов в манагерские презентации, в случае с emacs пошли совсем на другое дело — на решение такой обманчиво простой проблемы, как редактирование текста. Причем решалась данная проблема поистине с маниакальным упорством. Если вы профессиональный писатель и, соответственно, кто-то другой заботится о надлежащем форматировании ваших текстов, чтобы они достойно выглядели на печати, то без emacs вы как без рук, он затмит любой текстовый редактор в мире — так солнце, вышедшее во всей красе на небосвод, затмевает звезды. Не потому, что оно больше и мощнее, просто на его фоне всё остальное бледнеет и прячется в тень. А для верстки текста и печати готового макета нет ничего лучше TeX — общепринятой издательской системы набора текстов, написанной на C и свободно выложенной в Сети.
Я мог бы вам много чего рассказать и про emacs, и про TeX, но глава посвящена совсем не им, а тому, как установить на компьютер Linux. Особо упертый пользователь может, конечно, установить emacs (или другой текстовый редактор), добавить к нему компилятор и компоновщик, которые так же хороши и доведены до совершенства, как и emacs, взять исходные файлы в кодировке ASCII (директория /src), преобразовать их в файлы двоичного объектного кода (директория /bin) и запустить Linux. Но прежде, чем всё заработает (прежде, чем вы хотя бы запустите emacs), необходимо, чтобы на машине уже стоял Linux. Даже такая сдержанная и невзыскательная операционная система как Linux требует взаимодействия тысяч двоичных файлов, сплоченно и дружно исполняющих возложенную на них работу.
Несколько товариществ взяли на себя труд и создали «дистрибутивы» Linux. Чтобы понять, зачем, мысленно возвратимся к Египту. Вы прилетаете в Египет, и в аэропорту вас поджидают представители различных турагентств; они говорят на родном вам языке и помогают преодолеть барьер между вашей и чужеземной культурами. Однако с точки зрения египтян всё выглядит несколько иначе, местные жители уверены, что туроператоры помогают не вам, а им, спасают их от столпотворения варваров, которые путаются под ногами, задают одни и те же вопросы и постоянно рвутся в мечети.
Некоторые туроператоры — коммерческие фирмы, такой является, например, Red Hat Software. Она очень успешно выпускает популярный дистрибутив Linux под названием Red Hat. Всё, что от вас требуется — запустить CD с Red Hat и подождать, пока система самостоятельно загрузится. Сначала, правда, необходимо приобрести дистрибутив, но ведь и услуги египетского турагента не бесплатны. Цена у дистрибутива смехотворная, и деньги вы потратите не в пустую — ваши затраты окупятся с лихвой.
Я пользуюсь некоммерческим, бесплатным Debian — ом (Deborah + Ian) [629] . Он получен (точнее — получился) таким же способом, как и Linux. Собралось в Сети несколько энтузиастов, распределили между собой ответственность за написание определенных частей системы, разбили Linux на пакеты и запаковали их в архивы, чтобы в дальнейшем эти пакеты можно было загрузить на машину с уже установленным и рабочим Linux — ом семейства Debian, распаковать и запустить с помощью бесплатной установочной программы. А раз Debian за прибылью не гонится, то никакой розничной продажи дистрибутивов не предусмотрено — качайте архивы из интернета и устанавливайте сами. Но так как большинство всё-таки предпочитает CD — дистрибутивы, возникли компании, которые собрали все существующие на данный момент архивы Debian на CD — диски и стали их продавать. Свой CD я приобрел у компании Linux System Labs, заплатив за три диска с Debian во всем его объеме и красе меньше трех долларов. Хочу, однако, подчеркнуть — разработчики Linux и создатели Debian не получают с этих трех долларов ни цента. Все деньги идут Linux System Labs, и, соответсвенно, вы платите не за программное обеспечение и даже не за архивы ОС, а за их запись на CD — болванку.
629
Название Debian составлено из имен создателя проекта Яна Мёрдока (Ian) и его жены Деборы (Deborah).