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