Linux на Eee PC: всего 5 секунд для загрузки
На интернет-сайте LWN.net появилась интересная статья о том, как двое инженеров из компании Intel, Арьян Ван де Вен (Arjan van de Ven) и Аук Кок (Auke Kok), сумели загрузить операционную систему на ядре Linux всего за пять секунд. При этом в качестве «железа» они использовали не мощный многопроцессорный сервер, и даже не обычный настольный ПК. Нет, выбор инженеров пал на миниатюрный нетбук ASUS Eee PC.
Используя утилиту Bootchart, которая предназначена для графического отображения всего процесса загрузки Linux, исследователи показали, почему Fedora (один из дистрибутивов Linux) требует для загрузки около 45 секунд. Ценные секунды тратятся на такие задачи, как запуск диагностического теста устройства для проверки сетевых интерфейсов, запуск почтового сервиса «sendmail», а также других программ, которые большинство пользователей не используют регулярно, например, «setroubleshootd» для устранения проблем с SELinux.
Для преодоления 5-секундного барьера разработчики, в первую очередь, модифицировали ядро таким образом, что его загрузка, включая все модули, занимает всего одну секунду. Так называемая «ранняя загрузка» (early boot), включающая запуск инициализирующих скриптов и фоновых служб, заняла еще одну секунду. Графическая подсистема X Window System потребовала для загрузки одну секунду, а на запуск рабочей среды ушло еще две. Таким образом, весь процесс загрузки занял всего 5 секунд.
Как отмечается, из ядра был «выкинут» модуль initrd, также разработчики реализовали асинхронную инициализацию некоторых подсистем. Одним из ключевых этапов работы стало внедрение небольшого «патча» для поддержки функции readahead (механизм, позволяющий в некоторых случаях ускорить чтение файлов). Кроме того, было решено вернуться к традиционному демону (фоновая программа) init, который создатели Fedora заменили «апстартом» (Upstart).
Порядок выполнения заданий в init был задан следующим образом. После загрузки ядра одновременно с запуском процесса sReadahead для чтения блоков данных с диска и кэширования их в памяти стартовал процесс проверки файловой системы, далее запуск системы межпроцессного взаимодействия D-Bus, а потом графической подсистемы X и рабочего окружения. На отдельном этапе проходит запуск Hardware Abstraction Layer (уровень обращения к «железу»), и далее менеджера подключения устройств udev. Как отмечают разработчики, такой порядок выполнения задач помогает увеличить эффективность использования процессорной мощи.

Определенную роль в ускорении загрузки сыграл также и накопитель. В Eee PC был установлен SSD-диск. Как отмечают исследователи, они провели подобный эксперимент также с ноутбуком ThinkPad, оснащённым традиционным жестким диском, при этом время загрузки ОС возросло до десяти секунд. Больше деталей можно узнать