<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>FreeSource - DmitrijMaslennikov</title>
<link>http://freesource.info/wiki/DmitrijMaslennikov</link>
<description>History/revisions of FreeSource/DmitrijMaslennikov</description>
<language>en-us</language>
<item>
<title>2008-01-29 18:08:10</title>
<link>http://freesource.info/wiki/DmitrijMaslennikov/show?time=2008-01-29+18%3A08%3A10</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a name=".dmitrijmaslennikov" href="http://freesource.info/wiki/DmitrijMaslennikov&amp;" class="">/Dmitrij&amp;nbsp;Maslennikov&lt;/a> за &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov?time=2008-01-29+18%3A08%3A10">2008-01-29 18:08:10&lt;/a> и &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov">2008-01-29 20:27:27&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;span class="missingpage">Правила написания ifiles&lt;/span>&lt;a href="http://freesource.info/wiki/ifiles/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-01-29 18:06:26</title>
<link>http://freesource.info/wiki/DmitrijMaslennikov/show?time=2008-01-29+18%3A06%3A26</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/DmitrijMaslennikov&amp;" class="">/Dmitrij&amp;nbsp;Maslennikov&lt;/a> за &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov?time=2008-01-29+18%3A06%3A26">2008-01-29 18:06:26&lt;/a> и &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov?time=2008-01-29+18%3A08%3A10">2008-01-29 18:08:10&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;span class="missingpage">Профилирование&lt;/span>&lt;a href="http://freesource.info/wiki/proof/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h8213-1">&lt;/a>&lt;h4>Профилирование&lt;/h4>
Первое, что&amp;nbsp;необходимо сделать &amp;mdash; это&amp;nbsp;замерить текущее время запуска системы. Ниже я&amp;nbsp;привожу способ, который показался мне&amp;nbsp;найболее простым и&amp;nbsp;действенным.&lt;br />
Инициализация системы целиком написана на&amp;nbsp;sh скриптах. Они&amp;nbsp;запускаются процессом &lt;tt>/sbin/init&lt;/tt> непосредственно. Что&amp;nbsp;именно запускается можно посмотреть в&amp;nbsp;файле настройки &lt;tt>/etc/inittab&lt;/tt>. Формат файла описан в&amp;nbsp;соответствующем руководстве. Из&amp;nbsp;него следует, что&amp;nbsp;основные действия производят всего два&amp;nbsp;скрипта &lt;tt>/etc/rc.d/rc.sysinit&lt;/tt> и&amp;nbsp;&lt;tt>/etc/rc.d/rc&lt;/tt>. Последний запускается с&amp;nbsp;параметром соответствующим текущему runlevel. Как&amp;nbsp;правило, для&amp;nbsp;десктопа, это&amp;nbsp;5. Оба&amp;nbsp;этих скрипта запускают другие скрипты из&amp;nbsp;директории &lt;tt>/etc/rc.d/init.d&lt;/tt>. &lt;br />
 Самый простой способ, который пришел мне&amp;nbsp;в&amp;nbsp;голову, заключается в&amp;nbsp;том, что&amp;nbsp;раз все&amp;nbsp;скрипты выполняются интерпретатором записанным в&amp;nbsp;первой строке файла, то&amp;nbsp;можно его&amp;nbsp;подменить. Но&amp;nbsp;вый интерпретатор просто запускает bash, ждет завершения, а&amp;nbsp;потом записывает время выполнения. Одна тонкость связана с&amp;nbsp;тем, что&amp;nbsp;время выполнения части скриптов корень файловой системы доступен только для&amp;nbsp;чтения, поэтому необходимо подождать некоторое время, пока он&amp;nbsp;не будет примонтирован как&amp;nbsp;rw. Программа по&amp;nbsp;замеру времени пишется легко на&amp;nbsp;C++ и, думаю в&amp;nbsp;дополнительных разъяснениях не&amp;nbsp;нуждается (сюда можно как-нибудь файл залить???)&lt;br />
Компилируем ее&amp;nbsp;командой&lt;br />
&lt;tt>$g++ rinit.cpp -o rinit -lboost_filesystem&lt;/tt>&lt;br />
Полученный в&amp;nbsp;результате бинарник кидаем в&amp;nbsp;&lt;tt>/bin&lt;/tt>. И&amp;nbsp;заменяем &lt;tt>/bin/bash&lt;/tt> или&amp;nbsp;&lt;tt>/bin/sh&lt;/tt> на&amp;nbsp;&lt;tt>/bin/rinit&lt;/tt> в&amp;nbsp;первых строках интересующих нас&amp;nbsp;файлов (я это&amp;nbsp;сделал скриптом; могу выложить). После перезагрузки результат можно посмотреть с&amp;nbsp;помощью следующего скрипта (залью его&amp;nbsp;когда узнаю как&amp;nbsp;или куда).&lt;br />
Это&amp;nbsp;пока все&amp;nbsp;о&amp;nbsp;профилировании. Тот&amp;nbsp;же&amp;nbsp;способ использовался мной и&amp;nbsp;при профилировании init-ng.&lt;a name="h8213-2">&lt;/a>&lt;h4>Установка init-ng&lt;/h4>
Проблем с&amp;nbsp;компиляцией и&amp;nbsp;установкой init-ng у&amp;nbsp;меня не&amp;nbsp;возникло. Сборка осуществляется с&amp;nbsp;помощью cmake.  Я&amp;nbsp;собрал и&amp;nbsp;rpm для&amp;nbsp;&lt;a name="altlinux" href="http://freesource.info/wiki/AltLinux&amp;" class="">Alt&amp;nbsp;Linux&lt;/a>, но&amp;nbsp;пока не&amp;nbsp;выкладываю его, так&amp;nbsp;как негде :). В&amp;nbsp;результате сборки init-ng получаем просто бинарник который приспособлен к&amp;nbsp;тому, чобы стартовать первым в&amp;nbsp;системе. Но&amp;nbsp;чтобы система правильно инициализировалась необходимо большое количество скриптов, аналогичных тем, что&amp;nbsp;лежат в&amp;nbsp;&lt;tt>/etc/rc.d/init.d&lt;/tt> Они&amp;nbsp;в&amp;nbsp;init-ng пишутся не&amp;nbsp;на bash, а&amp;nbsp;в специальном формате, который достаточно понятно &lt;a href="http://www.initng.org/wiki/Documents_Documentation_Developer_Make_a_service" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />описан&lt;/a> на&amp;nbsp;их сайте. Набор таких файлов (они называются ifiles) доступен на&amp;nbsp;сайте проекта, но&amp;nbsp;нам они&amp;nbsp;не&amp;nbsp;подходят, так&amp;nbsp;как они&amp;nbsp;сильно зависят от&amp;nbsp;дистрибутива, а&amp;nbsp;&lt;a  href="http://freesource.info/wiki/AltLinux&amp;" class="">Alt&amp;nbsp;Linux&lt;/a> в&amp;nbsp;числе поддерживаемых не&amp;nbsp;значится. Правда, замечу, что&amp;nbsp;почти все&amp;nbsp;нужное мне&amp;nbsp;заработало после недолгой обработки предлагаемых на&amp;nbsp;сайте файлов. Но&amp;nbsp;нашей целью является полная совместимость с&amp;nbsp;существующей системой. Поэтому мы&amp;nbsp;напишем такие файлы сами. Тем&amp;nbsp;более что&amp;nbsp;это не&amp;nbsp;сложно.&lt;br />
Итак, немного теории.&lt;br />
В&amp;nbsp;init-ng существует два&amp;nbsp;типа запускаемых при&amp;nbsp;старте служб&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-01-29 16:56:45</title>
<link>http://freesource.info/wiki/DmitrijMaslennikov/show?time=2008-01-29+16%3A56%3A45</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/DmitrijMaslennikov&amp;" class="">/Dmitrij&amp;nbsp;Maslennikov&lt;/a> за &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov?time=2008-01-29+16%3A56%3A45">2008-01-29 16:56:45&lt;/a> и &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov?time=2008-01-29+18%3A06%3A26">2008-01-29 18:06:26&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;span class="missingpage">Установка initng&lt;/span>&lt;a href="http://freesource.info/wiki/setup/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-01-28 18:31:08</title>
<link>http://freesource.info/wiki/DmitrijMaslennikov/show?time=2008-01-28+18%3A31%3A08</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/DmitrijMaslennikov&amp;" class="">/Dmitrij&amp;nbsp;Maslennikov&lt;/a> за &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov?time=2008-01-28+18%3A31%3A08">2008-01-28 18:31:08&lt;/a> и &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov?time=2008-01-29+16%3A56%3A45">2008-01-29 16:56:45&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;span class="missingpage">Заметки о&amp;nbsp;портировании&lt;/span>&lt;a href="http://freesource.info/wiki/porting/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-01-28 18:03:48</title>
<link>http://freesource.info/wiki/DmitrijMaslennikov/show?time=2008-01-28+18%3A03%3A48</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/DmitrijMaslennikov&amp;" class="">/Dmitrij&amp;nbsp;Maslennikov&lt;/a> за &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov?time=2008-01-28+18%3A03%3A48">2008-01-28 18:03:48&lt;/a> и &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov?time=2008-01-28+18%3A31%3A08">2008-01-28 18:31:08&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Инициализация системы целиком написана на&amp;nbsp;sh скриптах. Они&amp;nbsp;запускаются процессом &lt;tt>/sbin/init&lt;/tt> непосредственно. Что&amp;nbsp;именно запускается можно посмотреть в&amp;nbsp;файле настройки &lt;tt>/etc/inittab&lt;/tt>. Формат файла описан в&amp;nbsp;соответствующем руководстве. Из&amp;nbsp;него следует, что&amp;nbsp;основные действия производят всего два&amp;nbsp;скрипта &lt;tt>/etc/rc.d/rc.sysinit&lt;/tt> и&amp;nbsp;&lt;tt>/etc/rc.d/rc&lt;/tt>. Последний запускается с&amp;nbsp;параметром соответствующим текущему runlevel. Как&amp;nbsp;правило, для&amp;nbsp;десктопа, это&amp;nbsp;5. Оба&amp;nbsp;этих скрипта запускают другие скрипты из&amp;nbsp;директории &lt;tt>/etc/rc.d/init.d&lt;/tt>.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Инициализация системы целиком написана на&amp;nbsp;sh скриптах. Они&amp;nbsp;запускаются процессом &lt;tt>/sbin/init&lt;/tt> непосредственно. Что&amp;nbsp;именно запускается можно посмотреть в&amp;nbsp;файле настройки &lt;tt>/etc/inittab&lt;/tt>. Формат файла описан в&amp;nbsp;соответствующем руководстве. Из&amp;nbsp;него следует, что&amp;nbsp;основные действия производят всего два&amp;nbsp;скрипта &lt;tt>/etc/rc.d/rc.sysconf&lt;/tt> и&amp;nbsp;&lt;tt>/etc/rc.d/rc&lt;/tt>. Последний запускается с&amp;nbsp;параметром соответствующим текущему runlevel. Как&amp;nbsp;правило, для&amp;nbsp;десктопа, это&amp;nbsp;5. Оба&amp;nbsp;этих скрипта запускают другие скрипты из&amp;nbsp;директории &lt;tt>/etc/rc.d/init.d&lt;/tt>.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-01-28 16:54:37</title>
<link>http://freesource.info/wiki/DmitrijMaslennikov/show?time=2008-01-28+16%3A54%3A37</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/DmitrijMaslennikov&amp;" class="">/Dmitrij&amp;nbsp;Maslennikov&lt;/a> за &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov?time=2008-01-28+16%3A54%3A37">2008-01-28 16:54:37&lt;/a> и &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov?time=2008-01-28+18%3A03%3A48">2008-01-28 18:03:48&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h8213-1">&lt;/a>&lt;h4>Профилирование&lt;/h4>
Инициализация системы целиком написана на&amp;nbsp;sh скриптах. Они&amp;nbsp;запускаются процессом &lt;tt>/sbin/init&lt;/tt> непосредственно. Что&amp;nbsp;именно запускается можно посмотреть в&amp;nbsp;файле настройки &lt;tt>/etc/inittab&lt;/tt>. Формат файла описан в&amp;nbsp;соответствующем руководстве. Из&amp;nbsp;него следует, что&amp;nbsp;основные действия производят всего два&amp;nbsp;скрипта &lt;tt>/etc/rc.d/rc.sysconf&lt;/tt> и&amp;nbsp;&lt;tt>/etc/rc.d/rc&lt;/tt>. Последний запускается с&amp;nbsp;параметром соответствующим текущему runlevel. Как&amp;nbsp;правило, для&amp;nbsp;десктопа, это&amp;nbsp;5. Оба&amp;nbsp;этих скрипта запускают другие скрипты из&amp;nbsp;директории &lt;tt>/etc/rc.d/init.d&lt;/tt>. &lt;br />
&lt;tt>$g++ rinit.cpp -o rinit -lboost_filesystem&lt;/tt>&lt;br />
Полученный в&amp;nbsp;результате бинарник кидаем в&amp;nbsp;&lt;tt>/bin&lt;/tt>. И&amp;nbsp;заменяем &lt;tt>/bin/bash&lt;/tt> или&amp;nbsp;&lt;tt>/bin/sh&lt;/tt> на&amp;nbsp;&lt;tt>/bin/rinit&lt;/tt> в&amp;nbsp;первых строках интересующих нас&amp;nbsp;файлов (я это&amp;nbsp;сделал скриптом; могу выложить). После перезагрузки результат можно посмотреть с&amp;nbsp;помощью следующего скрипта (залью его&amp;nbsp;когда узнаю как&amp;nbsp;или куда).&lt;br />
Это&amp;nbsp;пока все&amp;nbsp;о&amp;nbsp;профилировании. Тот&amp;nbsp;же&amp;nbsp;способ использовался мной и&amp;nbsp;при профилировании init-ng.&lt;a name="h8213-2">&lt;/a>&lt;h4>Установка init-ng&lt;/h4>
Проблем с&amp;nbsp;компиляцией и&amp;nbsp;установкой init-ng у&amp;nbsp;меня не&amp;nbsp;возникло. Сборка осуществляется с&amp;nbsp;помощью cmake.  Я&amp;nbsp;собрал и&amp;nbsp;rpm для&amp;nbsp;&lt;a  href="http://freesource.info/wiki/AltLinux&amp;" class="">Alt&amp;nbsp;Linux&lt;/a>, но&amp;nbsp;пока не&amp;nbsp;выкладываю его, так&amp;nbsp;как негде :). В&amp;nbsp;результате сборки init-ng получаем просто бинарник который приспособлен к&amp;nbsp;тому, чобы стартовать первым в&amp;nbsp;системе. Но&amp;nbsp;чтобы система правильно инициализировалась необходимо большое количество скриптов, аналогичных тем, что&amp;nbsp;лежат в&amp;nbsp;&lt;tt>/etc/rc.d/init.d&lt;/tt> Они&amp;nbsp;в&amp;nbsp;init-ng пишутся не&amp;nbsp;на bash, а&amp;nbsp;в специальном формате, который достаточно понятно &lt;a href="http://www.initng.org/wiki/Documents_Documentation_Developer_Make_a_service" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />описан&lt;/a> на&amp;nbsp;их сайте. Набор таких файлов (они называются ifiles) доступен на&amp;nbsp;сайте проекта, но&amp;nbsp;нам они&amp;nbsp;не&amp;nbsp;подходят, так&amp;nbsp;как они&amp;nbsp;сильно зависят от&amp;nbsp;дистрибутива, а&amp;nbsp;&lt;a  href="http://freesource.info/wiki/AltLinux&amp;" class="">Alt&amp;nbsp;Linux&lt;/a> в&amp;nbsp;числе поддерживаемых не&amp;nbsp;значится. Правда, замечу, что&amp;nbsp;почти все&amp;nbsp;нужное мне&amp;nbsp;заработало после недолгой обработки предлагаемых на&amp;nbsp;сайте файлов. Но&amp;nbsp;нашей целью является полная совместимость с&amp;nbsp;существующей системой. Поэтому мы&amp;nbsp;напишем такие файлы сами. Тем&amp;nbsp;более что&amp;nbsp;это не&amp;nbsp;сложно.&lt;br />
Итак, немного теории.&lt;br />
В&amp;nbsp;init-ng существует два&amp;nbsp;типа запускаемых при&amp;nbsp;старте служб&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Инициализация системы целиком написана на&amp;nbsp;sh скриптах. Они&amp;nbsp;запускаются процессом /sbin/init непосредственно. Что&amp;nbsp;именно запускается можно посмотреть в&amp;nbsp;файле настройки /etc/inittab. Формат файла описан в&amp;nbsp;соответствующем руководстве. Из&amp;nbsp;него следует, что&amp;nbsp;основные действия производят всего два&amp;nbsp;скрипта /etc/rc.d/rc.sysconf и&amp;nbsp;/etc/rc.d/rc. Последний запускается с&amp;nbsp;параметром соответствующим текущему runlevel. Как&amp;nbsp;правило, для&amp;nbsp;десктопа, это&amp;nbsp;5. Оба&amp;nbsp;этих скрипта запускают другие скрипты из&amp;nbsp;директории /etc/rc.d/init.d. &lt;br />
$g++ rinit.cpp -o rinit -lboost_filesystem&lt;br />
Полученный в&amp;nbsp;результате бинарник кидаем в&amp;nbsp;/bin. И&amp;nbsp;заменяем /bin/bash или&amp;nbsp;/bin/sh на&amp;nbsp;/bin/rinit в&amp;nbsp;превых строках интересующих нас&amp;nbsp;файлов. После перезагрузки результат можно посмотреть с&amp;nbsp;помощью следующего скрипта (залью его&amp;nbsp;когда узнаю как&amp;nbsp;или куда).&lt;br />
Это&amp;nbsp;все о&amp;nbsp;профелировании. Тот&amp;nbsp;же&amp;nbsp;способ использовался мной и&amp;nbsp;при профилировании init-ng.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-01-28 16:51:31</title>
<link>http://freesource.info/wiki/DmitrijMaslennikov/show?time=2008-01-28+16%3A51%3A31</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/DmitrijMaslennikov&amp;" class="">/Dmitrij&amp;nbsp;Maslennikov&lt;/a> за &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov?time=2008-01-28+16%3A51%3A31">2008-01-28 16:51:31&lt;/a> и &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov?time=2008-01-28+16%3A54%3A37">2008-01-28 16:54:37&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Это&amp;nbsp;все о&amp;nbsp;профелировании. Тот&amp;nbsp;же&amp;nbsp;способ использовался мной и&amp;nbsp;при профилировании init-ng.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Это&amp;nbsp;все о&amp;nbsp;профелировании. Тоже способ использовался мной и&amp;nbsp;при профилировании init-ng.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-01-22 10:31:25</title>
<link>http://freesource.info/wiki/DmitrijMaslennikov/show?time=2008-01-22+10%3A31%3A25</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/DmitrijMaslennikov&amp;" class="">/Dmitrij&amp;nbsp;Maslennikov&lt;/a> за &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov?time=2008-01-22+10%3A31%3A25">2008-01-22 10:31:25&lt;/a> и &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov?time=2008-01-28+16%3A51%3A31">2008-01-28 16:51:31&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Работа сильно перекликается с&amp;nbsp;&lt;a name="tz.initscripts" href="http://freesource.info/wiki/TZ/initscripts&amp;" class="" title="TZ&amp;nbsp;/&amp;nbsp;initscripts">TZ/initscripts&lt;/a>.&lt;br />
Первое, что&amp;nbsp;необходимо сделать &amp;mdash; это&amp;nbsp;замерить текущее время запуска системы. Ниже я&amp;nbsp;привожу способ, который показался мне&amp;nbsp;найболее простым и&amp;nbsp;действенным.&lt;br />
Инициализация системы целиком написана на&amp;nbsp;sh скриптах. Они&amp;nbsp;запускаются процессом /sbin/init непосредственно. Что&amp;nbsp;именно запускается можно посмотреть в&amp;nbsp;файле настройки /etc/inittab. Формат файла описан в&amp;nbsp;соответствующем руководстве. Из&amp;nbsp;него следует, что&amp;nbsp;основные действия производят всего два&amp;nbsp;скрипта /etc/rc.d/rc.sysconf и&amp;nbsp;/etc/rc.d/rc. Последний запускается с&amp;nbsp;параметром соответствующим текущему runlevel. Как&amp;nbsp;правило, для&amp;nbsp;десктопа, это&amp;nbsp;5. Оба&amp;nbsp;этих скрипта запускают другие скрипты из&amp;nbsp;директории /etc/rc.d/init.d. &lt;br />
 Самый простой способ, который пришел мне&amp;nbsp;в&amp;nbsp;голову, заключается в&amp;nbsp;том, что&amp;nbsp;раз все&amp;nbsp;скрипты выполняются интерпретатором записанным в&amp;nbsp;первой строке файла, то&amp;nbsp;можно его&amp;nbsp;подменить. Но&amp;nbsp;вый интерпретатор просто запускает bash, ждет завершения, а&amp;nbsp;потом записывает время выполнения. Одна тонкость связана с&amp;nbsp;тем, что&amp;nbsp;время выполнения части скриптов корень файловой системы доступен только для&amp;nbsp;чтения, поэтому необходимо подождать некоторое время, пока он&amp;nbsp;не будет примонтирован как&amp;nbsp;rw. Программа по&amp;nbsp;замеру времени пишется легко на&amp;nbsp;C++ и, думаю в&amp;nbsp;дополнительных разъяснениях не&amp;nbsp;нуждается (сюда можно как-нибудь файл залить???)&lt;br />
Компилируем ее&amp;nbsp;командой&lt;br />
$g++ rinit.cpp -o rinit -lboost_filesystem&lt;br />
Полученный в&amp;nbsp;результате бинарник кидаем в&amp;nbsp;/bin. И&amp;nbsp;заменяем /bin/bash или&amp;nbsp;/bin/sh на&amp;nbsp;/bin/rinit в&amp;nbsp;превых строках интересующих нас&amp;nbsp;файлов. После перезагрузки результат можно посмотреть с&amp;nbsp;помощью следующего скрипта (залью его&amp;nbsp;когда узнаю как&amp;nbsp;или куда).&lt;br />
Это&amp;nbsp;все о&amp;nbsp;профелировании. Тоже способ использовался мной и&amp;nbsp;при профилировании init-ng.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-01-21 20:53:38</title>
<link>http://freesource.info/wiki/DmitrijMaslennikov/show?time=2008-01-21+20%3A53%3A38</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/DmitrijMaslennikov&amp;" class="">/Dmitrij&amp;nbsp;Maslennikov&lt;/a> за &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov?time=2008-01-21+20%3A53%3A38">2008-01-21 20:53:38&lt;/a> и &lt;a href="http://freesource.info/wiki/DmitrijMaslennikov?time=2008-01-22+10%3A31%3A25">2008-01-22 10:31:25&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;!--notypo-->{{backlinks}}&lt;!--/notypo-->&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
