Вход:  Пароль:  
FreeSource: DmitrijMaslennikov ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия DmitrijMaslennikov за 2008-01-28 16:51:31..

Здесь я собираюсь описать мои наработки по внедрению init-ng в Alt Linux.
Главным требованием в работе буду считать обеспечение максимальной совместимости с текущей системой инициализации.
Главным успехом — заметное увеличение скорости загрузки.
Работа сильно перекликается с TZ/initscripts.


Первое, что необходимо сделать — это замерить текущее время запуска системы. Ниже я привожу способ, который показался мне найболее простым и действенным.
Инициализация системы целиком написана на sh скриптах. Они запускаются процессом /sbin/init непосредственно. Что именно запускается можно посмотреть в файле настройки /etc/inittab. Формат файла описан в соответствующем руководстве. Из него следует, что основные действия производят всего два скрипта /etc/rc.d/rc.sysconf и /etc/rc.d/rc. Последний запускается с параметром соответствующим текущему runlevel. Как правило, для десктопа, это 5. Оба этих скрипта запускают другие скрипты из директории /etc/rc.d/init.d.
Самый простой способ, который пришел мне в голову, заключается в том, что раз все скрипты выполняются интерпретатором записанным в первой строке файла, то можно его подменить. Но вый интерпретатор просто запускает bash, ждет завершения, а потом записывает время выполнения. Одна тонкость связана с тем, что время выполнения части скриптов корень файловой системы доступен только для чтения, поэтому необходимо подождать некоторое время, пока он не будет примонтирован как rw. Программа по замеру времени пишется легко на C++ и, думаю в дополнительных разъяснениях не нуждается (сюда можно как-нибудь файл залить???)
Компилируем ее командой
$g++ rinit.cpp -o rinit -lboost_filesystem
Полученный в результате бинарник кидаем в /bin. И заменяем /bin/bash или /bin/sh на /bin/rinit в превых строках интересующих нас файлов. После перезагрузки результат можно посмотреть с помощью следующего скрипта (залью его когда узнаю как или куда).


Это все о профелировании. Тоже способ использовался мной и при профилировании init-ng.


Все важное, на мой взгляд, об init-ng, чтобы не искать информацию повсюду


Ссылок на эту страницу нет


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]