Вашему компьютеру исходная программа нужна не более вас самих; ему нужен объектный код. Файлы объектного кода естественно имеют суффикс. 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, и загрузится с одного из них, если они доступны.