Старт Linux.SU RSS Архив Форум Купить Linux.SU(Knoppix.ru)
Какой Линукс выбрать?

ЛУЧШЕЕ ИЗ ЛУЧШЕГО

ДЛЯ НАЧАЛА: ЖИВЫЕ

- Knoppix -
Линукс за пять минут

- Puppy Linux -
Хороший друг

- Блин -
Живой русский Линукс

ДЛЯ ДЕЛА: ПРОФИ

- Debian -
Он такой один

- ArchLinux -
Гениальное - просто!

- Fedora -
По следам Red Hat

- Ubuntu Linux -
+ Runtu

Мы одной крови!

- PCLinuxOS -
Просто линукс

- ASP Linux -
Тотально русский

- MOPS Linux -
Русская борзая

- Mandriva Linux -
Красота и удобства

- openSUSE -
Настоящее немецкое качество

- Slackware -
Линукс из кубиков

- CentOS -
Копейка рубль бережёт!

- Gentoo -
Каждому своё

- Freespire -
Огонь, вода и медные трубы

ДЛЯ ДЕЛА: ЛЁГКИЕ

- Moblin -
Повелитель нетбуков

- TinyMe -
Размер имеет значение!

- gOS -
Хороша Маша!

ЗАЩИТА

- BackTrack/WHAX -
Вам, хакеры!

МУЛЬТИМЕДИЯ

- 64 Studio -
Скорость не проблема!

- Planet CCRMA -
Работа со звуком

ПРИЛОЖЕНИЯ

- OpenDisc -
Для несвободных

- Свободный офис -
100% свободный офис

ДЛЯ ЗАБАВЫ

- Линукс Геймер -
Boot & Play!

- VegaStrike -
Каждому по планете!

ЭКСПЕРИМЕНТ

- GoboLinux -
Очевидно и вероятно

- ReactOS -
Освободите Виндоус!

- Sidux -
Почувствуй силу!

РОДНЯ

- OpenSolaris -
+ Belenix

До звёзд рукой подать

- BSD-семейство -
На плечах гигантов

ЯНВАРЬ
04 11 18 25
05 12 19 26
06 13 20 27
07 14 21 28
01 08 15 22 29
02 09 16 23 30
03 10 17 24 31

АРХИВ
(2003 - 2010)
Debian sid + XFCE
Вот что значит просто, но со вкусом!
НАШИ ПРОЕКТЫ

ПИНГВИН В КАРМАНЕ
MATRIX GL
ПОЛЕЗНЫЕ СОВЕТЫ

ЗАКЛАДКИ
ЧаВО
КОНТАКТЫ
RSS

Я - хакер!
Pixilang
Искусственный
корректор

14.06.2009 Пять секунд, которые решают дело

  Первые полосы сетевых компьютерных изданий в последние дни целиком посвящены выходу ядра Linux под номером 2.6.30. У руля проекта по-прежнему бессменный Линус Торвальдс — всё так же верный себе: changelog релиза, как и всегда, насчитывает десятки изменений и новшеств. Новая версия системы, как и три десятка её предшественниц, стала лишь очередной ступенькой на пути к 2.8, но, по мнению самого Линуса, всё же должна совершить маленькую революцию благодаря новой внутриядерной механике «засыпания» и возвращения от «сна». Кроме того, пресса в восторге от поддержки USB 3.0, которую уже сейчас можно добавить в ядро специальным патчем (Linux стала первой операционкой, поддерживающей новый стандарт), улучшенной обработки прерываний (Linux станет заметно «отзывчивей»). Среди прочих примечательных инноваций — вошедшие в код Ядра драйверы нескольких новых файловых систем: такой объём работ обычно под силу лишь корпорациям (оцените NILFS2, добавленную японским гигантом NTT), но бывают и исключения вроде POHMELFS — высокопроизводительной распределённой файловой системы, придуманной, как несложно догадаться, российским программистом (Евгений Поляков, не пропустите его комментарии!). Однако самое интересное кроется между строчек официального пресс-релиза. Если копнуть глубже, в отчёте о выходе 2.6.30 можно прочитать замечательную историю, которая хорошо иллюстрирует приятное свойство открытых исходников: личный интерес одного из пользователей способен принести пользу миллионам других. Связана эта история с проектом Moblin (мы писали о нём в прошлый раз, см. материал от 5 июня).

  Впрочем, прежде чем погрузиться в ядерные дебри, предлагаю отвлечься и... перезагрузить компьютер :-) Строчки, бегущие по экрану, отражают этапы загрузки Ядра (если вы видите только красивую заставку, то сможете отыскать полный загрузочный лог-файл в папке /var/log). Одно за другим опрашиваются подключенные устройства, сканируются накопители, поднимаются сетевые интерфейсы, загружаются сервисы, иногда на лету даже компилируются необходимые компоненты! Если программная часть оптимизирована, а компьютер не страдает от нехватки памяти, медленного винчестера или недостатка вычислительной мощи, весь процесс загрузки отнимет пару десятков секунд — иначе может растянуться и на минуту с лишним. В любом случае не слишком приятное ожидание, верно? Как здорово было бы увидеть «рабочий стол» уже несколько секунд спустя после нажатия кнопки «Power»!

Аржан ван де Вен: пять секунд на всё!
Аржан ван де Вен: пять секунд на всё!

  Забегая вперёд скажу, что идея вполне осуществима, но для того, чтобы кто-то взялся за её реализацию всерьёз, нужна была и веская причина. Лишняя минута, потраченная на ожидание загрузки десктопа или ноутбука, в роли такой причины выступить не смогла. Однако когда Линукс начали переносить на портативные устройства, время загрузки превратилось в параметр критической важности. И в один прекрасный день, пару лет назад, была поставлена задача свести ожидание к минимуму. История не сохранила точной даты, но достоверно известно кому досталась задача: Аржану ван де Вену (Arjan van de Ven), линуксовому хакеру, работающему на корпорацию Intel. А год спустя, осенью 2008-го, Аржан с коллегами демонстрировали первые результаты — нетбуки Eee PC, работавшие под управлением модифицированной Fedora и альфа-версии интеловского дистрибутива Moblin, грузившиеся за пять секунд. Та презентация стала легендой: чтобы показать аудитории, как быстро происходит загрузка, разработчикам приходилось выносить нетбук на руках в зал — проектор попросту не успевал синхронизироваться и вывести картинку на большой экран!

  Как удалось добиться такого результата? Вы сами только что видели, как много времени уходит на последовательную загрузку компонентов операционной системы. Распараллелим задачу! Пока Ядро ждёт ответа от первого устройства, пусть опрашивает второе и третье (а ведь винчестеры и DVD-приводы должны раскрутить диск, чтобы ответить — представьте, сколько времени тратится на пустое ожидание!). Пусть системные сервисы — когда это возможно — загружаются одновременно. Задействуем кэш в оперативной памяти: информацию, которая обязательно потребуется на более поздних этапах загрузки, нужно подгрузить заранее. По возможности избавим систему от необходимости сложных вычислений на этапе загрузки, все необходимые модули должны быть готовы к активации. Кроме того, ван де Вен был ограничен временным бюджетом: пять секунд — и ни секундой больше. Под это время подстраиваются сервисы, исходя из этого количества времени определяются максимальные объёмы считываемой с дисков информации. Итог — пять секунд на честный, без фоновой подгрузки сервисов а-ля виндоус, результат. Секунда на ядро, секунда на разного рода скрипты и сервисы, ещё секунда на X Window и две — на организацию рабочего стола.

Секунды асинхронной загрузки
Секунды асинхронной загрузки

  Ван де Вен с коллегами трудились по заказу своего работодателя, их наработки использованы в дистрибутиве Moblin — свободном продукте, готовом к «употреблению» на нетбуках с процессорами семейства Intel Atom. Но, разумеется, результаты были включены и в состав основного линуксового ядра, вышеупоминавшейся версии 2.6.30. Благодаря этому уже через несколько месяцев каждый дистрибутив Linux, использующий свежее (2.6.30 или старше) ядро, сможет задействовать параллельную — или, правильнее, асинхронную — загрузку. А те из вас, кто в состоянии самостоятельно скомпилировать линуксовое ядро, может начать эксперименты прямо сейчас, интегрировав 2.6.30 в свой дистрибутив.

  Моблиновская асинхронная загрузка сильно оптимизирована для устройств с твердотельными накопителями. Однако идеи, реализованные ван де Веном, универсальны — и в какой-то степени уже используются другими разработчиками в более известных проектах. Так, значительное внимание уделяют скорости загрузки системы разработчики Ubuntu Linux. В текущей версии, 9.04, оптимизация загрузочного алгоритма позволила сократить ожидание почти втрое, в 9.10 Karmic Koala этот показатель ещё улучшат, а в 10.04 (следующей весной) планируют довести до 10 секунд. Другой проект, успешно эксплуатирующий boot-параллельность, это всем известный Knoppix. Кноппикс — «живой» дистрибутив, вынужденный уметь определить и правильно задействовать огромный список «железа». Поэтому асинхронный подход даёт здесь особенно впечатляющие результаты: последняя, шестая ветка дистрибутива, основанная на параллельном загрузчике, сократила время старта в среднем наполовину, что на слабых машинах отливается в несколько минут экономии!

Разработчики Ubuntu не думают о секундах свысока
Разработчики Ubuntu не думают о секундах свысока

  Ну а что же делать рядовому пользователю, далёкому от экспериментов с Ядром, пока асинхронная загрузка не стала стандартом? Рецептов масса и конкретные действия обычно зависят от того дистрибутива, который вы используете. К примеру, Fedora 11 способна выигрывать у конкурентов за счёт новой файловой системы, супербыстрой ext4. А в Gentoo и её родственниках можно включить экспериментальный параллельный загрузочный режим (не всегда гладкий, будьте осторожны!). Традиционная общая рекомендация — оптимизировать систему, отключив ненужные сервисы (вчитайтесь в вывод ps ax), отказавшись от тяжеловесных инструментов в пользу более «лёгких» и шустрых (да здравствует Openbox!). С помощью утилиты Bootchart постройте диаграмму загрузки и подвергните критическому анализу каждый этап. Да, и всегда помните, что перезагрузка — удел слабых ;-) В конце концов, это Линукс!

------------------------------------------------------------------------------------------------------------
Вы всегда можете обратиться к этой заметке, воспользовавшись адресом Knoppix.ru/140609.shtml


При частичной или полной перепечатке, переводе, переработке
материалов cайта ссылка на Knoppix.ru обязательна
(c) Knoppix.ru 2003 - 10