Слепой часовщик (Докинз) - страница 141

Одним из главных процессов, происходивших в ранней эволюции живых организмов, было увеличение количества генов, участвующих в таких кооперациях. У бактерий гораздо меньше генов, чем у животных и растений. Возможно, это увеличение происходило посредством тех или иных форм дублирования генов. Вспомним, что ген — это только строчка закодированных символов, подобная файлу на компьютерном диске; стало быть гены могут быть скопированы в различные части хромосом — точно так же, как файлы могут быть скопированы в различные части диска. На диске моего компьютера, где хранится эта глава, формально имеются только три файла. Говоря «формально», я имею в виду, что об этих трёх файлах сообщает мне операционная система компьютера. Я могу попросить её, чтобы она прочитала один из этих трёх файлов, и они предстанут передо мной в виде одномерного массива алфавитно-цифровых символов, включая те, что вы сейчас читаете. Все они выглядят очень аккуратно упорядоченными. Фактически же, расположение текста на диске совсем не аккуратно и не упорядоченно. Это можно увидеть, если уйти от дисциплины официальной операционной системы компьютера и написать свою собственную программу, расшифровывающую фактическое содержимое каждого сектора диска. И окажется, что фрагменты каждого из трёх моих файлов прерывисты и чередуются — как друг с другом, так и с фрагментами старых, мёртвых файлов, которые я давно стёр и забыл. Любой из этих фрагментов может содержать, почти дословно — ту же самую (или с незначительными отличиями), информацию в полудюжине разных мест на диске.

Причина такого положения дел интересна и заслуживает отступления, так как имеет хорошие генетические параллели. Когда вы просите компьютер удалить файл, то вам кажется, что он слушается вас. Но фактически он не стирает текст этого файла. Он лишь стирает все указатели на него. Ну, как бы если библиотекарю приказали уничтожить книгу «Любовник Леди Чаттерлей», а он просто разорвал бы карточку в картотеке, оставив саму книгу на полке. Для компьютера это совершенно экономичный способ действий, так как пространство, прежде занятое «удалённым» файлом после удаления указателей становится автоматически доступным для новых файлов. Фактическое заполнение этого места пробелами были бы напрасной тратой времени. Сам старый файл не будет окончательно потерян, пока всё пространство, им занимавшееся, не будет использовано для хранения новых файлов. Но это переиспользование пространства происходит постепенно. Размер новых файлов, как правило, не равен в точности размеру старого. Когда компьютер пытается записать новый файл на диск, то он ищет первый доступный фрагмент пространства, записывает туда максимально возможный фрагмент нового файла, затем, если нужно, ищет другой доступный фрагмент пространства, записывает ещё фрагмент файла, и так далее, пока весь файл не будет записан на диск. У человека возникает иллюзия, что файл является цельным, упорядоченным массивом — но это только потому, что компьютер очень аккуратно поддерживает записи, «указывающие» на адреса всех этих разбросанных фрагментов. Подобные «указатели» используются в «Нью-Йорк Таймс», когда там указывается, что «продолжение на странице 94». Так много копий какого-то фрагмента текста находятся на диске потому, что, если, подобно всем моим главам, текст редактировался и перередактировался много раз, каждое редактирование заканчивалось новой записью на диск (почти) того же самого текста. Сохраняться может совершенно тот же самый файл. Но как мы видели, фактически текст будет многократно раздроблен по всему доступному пространству на диске. Таким образом, множество копий данного фрагмента текста могут находиться на всей поверхности диска, и их тем больше, чем диск старее и чаще использовался.