При загрузке одна из самых длительных операций - чтение с диска. Каждый процесс должен считать с диска все свои модули, конфигурацию, файлы данных и т.д. В итоге чтение с диска делается каждым процессом отдельно, разбито на много маленьких этапов и происходит в течение всей загрузки.
Сервисы пре-фетчинга, такие как ureadahead, sreadahead, preload, следят за процессом загрузки и определяют, какие данные считываются с диска каждый раз. После этого они формируют некий единый блок данных, содержащий все эти отдельные кусочки, и считывают его за раз на начальном этапе загрузки.
Поскольку Linux активно использует дисковый кэш, все последующие обращения сервисов за своими данными будут использовать данные из кэша, которые туда загрузил ureadahead.
Если есть хороший технический английский, подробнее можно прочитать вот тут:
http://ubuntuforums.org/showthread.php?t=1434502где про ureadahead пишет его автор -
Scott James Remnant.