<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>FreeSource - ТЗ/initscripts</title>
<link>http://freesource.info/wiki/ТЗ/initscripts</link>
<description>History/revisions of FreeSource/ТЗ/initscripts</description>
<language>en-us</language>
<item>
<title>2008-03-08 22:36:58</title>
<link>http://freesource.info/wiki/TZ/initscripts/show?time=2008-03-08+22%3A36%3A58</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=".tz.initscripts" href="http://freesource.info/wiki/TZ/initscripts&amp;" class="">/ТЗ&amp;nbsp;/&amp;nbsp;initscripts&lt;/a> за &lt;a href="http://freesource.info/wiki/TZ/initscripts?time=2008-03-08+22%3A36%3A58">2008-03-08 22:36:58&lt;/a> и &lt;a href="http://freesource.info/wiki/TZ/initscripts">2008-04-21 18:44:44&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Каким образом это&amp;nbsp;происходит сейчас &lt;a href="http://lists.altlinux.org/pipermail/devel/2003-April/011856.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />в ALT&amp;nbsp;Linux&lt;/a>? Первый процесс в&amp;nbsp;системе &amp;mdash; это&amp;nbsp;реализация SysVinit. Его&amp;nbsp;файл настроек хранится в&amp;nbsp;/etc/inittab и, если его&amp;nbsp;рассмотреть, то&amp;nbsp;видно, что&amp;nbsp;сначала запускается файл /etc/rc.d/rc.sysinit, и&amp;nbsp;ожидается его&amp;nbsp;завершение, затем запускается файл /etc/rc.d/rc с&amp;nbsp;параметром текущего уровня запуска (runlevel, понятие из&amp;nbsp;SysVinit), завершения которого снова ожидают, а&amp;nbsp;затем запускается некоторое количество процессов mingetty, которые инициализируют традиционные в&amp;nbsp;Linux эмуляторы терминалов и&amp;nbsp;выводят приглашения на&amp;nbsp;вход пользователя.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Каким образом это&amp;nbsp;происходит сейчас в&amp;nbsp;ALT Linux? Первый процесс в&amp;nbsp;системе &amp;mdash; это&amp;nbsp;реализация SysVinit. Его&amp;nbsp;файл настроек хранится в&amp;nbsp;/etc/inittab и, если его&amp;nbsp;рассмотреть, то&amp;nbsp;видно, что&amp;nbsp;сначала запускается файл /etc/rc.d/rc.sysinit, и&amp;nbsp;ожидается его&amp;nbsp;завершение, затем запускается файл /etc/rc.d/rc с&amp;nbsp;параметром текущего уровня запуска (runlevel, понятие из&amp;nbsp;SysVinit), завершения которого снова ожидают, а&amp;nbsp;затем запускается некоторое количество процессов mingetty, которые инициализируют традиционные в&amp;nbsp;Linux эмуляторы терминалов и&amp;nbsp;выводят приглашения на&amp;nbsp;вход пользователя.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-06 01:01:37</title>
<link>http://freesource.info/wiki/TZ/initscripts/show?time=2008-03-06+01%3A01%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/TZ/initscripts&amp;" class="">/ТЗ&amp;nbsp;/&amp;nbsp;initscripts&lt;/a> за &lt;a href="http://freesource.info/wiki/TZ/initscripts?time=2008-03-06+01%3A01%3A37">2008-03-06 01:01:37&lt;/a> и &lt;a href="http://freesource.info/wiki/TZ/initscripts?time=2008-03-08+22%3A36%3A58">2008-03-08 22:36:58&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Известно, что&amp;nbsp;Linux-системы, использующие сценарии запуска SysV, запускаются достаточно долго. Это&amp;nbsp;связано в&amp;nbsp;первую очередь с&amp;nbsp;тем, что&amp;nbsp;сценарии запуска системы выполняются последовательно. Играют роль задержки при&amp;nbsp;обращении к&amp;nbsp;оборудованию. Также сильно замедляет загрузку обращение к&amp;nbsp;многочисленным конфигурационным файлам. Это&amp;nbsp;легко увидеть, посмотрев как&amp;nbsp;&amp;laquo;взлетает&amp;raquo; система с&amp;nbsp;флэш-диска. Существует несколько альтернативных реализаций сценариев запуска.&lt;br />
Проведя некоторое время в&amp;nbsp;размышлениях по&amp;nbsp;поводу запукса GNU/Linux систем в&amp;nbsp;целом и&amp;nbsp;ALT Linux в&amp;nbsp;частности, спешу поделиться своим опытом.&lt;br />
&lt;ul>&lt;li> многочисленные bash-скрипты запускаемые SysVinit
&lt;/li>&lt;li> скрипты, написанные для&amp;nbsp;новой системы upstart
&lt;/li>&lt;li> вариант, предлагаемый разработчиками init-ng.&lt;/li>&lt;/ul>
Далее загрузщик так&amp;nbsp;или иначе загружает в&amp;nbsp;память ядро Linux и, обычно передает ему&amp;nbsp;образ initrd (если не&amp;nbsp;ошибають от&amp;nbsp;Initial RAM&amp;nbsp;Disk &amp;mdash; начальный рамдиск). Это&amp;nbsp;уже интереснее. Этот самый образ initrd является архивом, который содержит структуру файлов и&amp;nbsp;каталогов, очень похожую на&amp;nbsp;обычный корень файловой системы используемой традиционно в&amp;nbsp;GNU/Linux. Только всего там&amp;nbsp;по&amp;nbsp;минимому. Ну&amp;nbsp;это и&amp;nbsp;понятно, поскольку этот образ разворачивается в&amp;nbsp;память и&amp;nbsp;там и&amp;nbsp;работает.&lt;br />
Каким образом это&amp;nbsp;происходит сейчас в&amp;nbsp;ALT Linux? Первый процесс в&amp;nbsp;системе &amp;mdash; это&amp;nbsp;реализация SysVinit. Его&amp;nbsp;файл настроек хранится в&amp;nbsp;/etc/inittab и, если его&amp;nbsp;рассмотреть, то&amp;nbsp;видно, что&amp;nbsp;сначала запускается файл /etc/rc.d/rc.sysinit, и&amp;nbsp;ожидается его&amp;nbsp;завершение, затем запускается файл /etc/rc.d/rc с&amp;nbsp;параметром текущего уровня запуска (runlevel, понятие из&amp;nbsp;SysVinit), завершения которого снова ожидают, а&amp;nbsp;затем запускается некоторое количество процессов mingetty, которые инициализируют традиционные в&amp;nbsp;Linux эмуляторы терминалов и&amp;nbsp;выводят приглашения на&amp;nbsp;вход пользователя.&lt;a name="h552-1">&lt;/a>&lt;h3>InitNG&lt;/h3>
Начнем с&amp;nbsp;initng. Эта&amp;nbsp;система написана для&amp;nbsp;того, чтобы решить некоторые недостатки SysVinit, о&amp;nbsp;которых я&amp;nbsp;напишу ниже. После запуска в&amp;nbsp;качестве первого процесса initng смотрит на&amp;nbsp;свои настройки в&amp;nbsp;/etc/initng/. В&amp;nbsp;этой папке хранятся иерархически организованные файлы конфигурации ifiles, в&amp;nbsp;которых и&amp;nbsp;описаны различные действия по&amp;nbsp;инициализации системы (сервисы), а&amp;nbsp;так же&amp;nbsp;дополнительная информация.&lt;br />
Это&amp;nbsp;весьма экстравагантная система, которая сейчас усиленно развивается. Она&amp;nbsp;является так&amp;nbsp;называемой &amp;laquo;системой, основанной на&amp;nbsp;событиях&amp;raquo; (&amp;laquo;events base system&amp;raquo;). Неудивительно, что&amp;nbsp;там есть понятие события. Событие в&amp;nbsp;upstart описывается строкой. И&amp;nbsp;ее скрипты могут активироваться по&amp;nbsp;тем или&amp;nbsp;иным событиям. Как&amp;nbsp;предполагается использовать систему?&lt;br />
Ну&amp;nbsp;критики SysVinit предостаточно в&amp;nbsp;интернет. В&amp;nbsp;основном все&amp;nbsp;сводиться к&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 />
Про&amp;nbsp;upstart могу сказать следующее. Вообще, в&amp;nbsp;принципе я&amp;nbsp;могу представить аккуратно написанные сильно ветвящиеся и&amp;nbsp;параллельно запускаемые сервисы, но&amp;nbsp;текущее положение дел&amp;nbsp;в&amp;nbsp;ubuntu ограничилось эмуляцией SysVinit. Да&amp;nbsp;и зависимости эмулировать в&amp;nbsp;такой системе очень сложно. Я, например, с&amp;nbsp;трудом представляю, как&amp;nbsp;в&amp;nbsp;такой системе сделать человеческое управление зависимостями. Еще&amp;nbsp;сложнее сделать управление зависимостями и&amp;nbsp;придумать способ гибко настраивать, что&amp;nbsp;будет запускаться, а&amp;nbsp;что нет. Сложности проистекают, в&amp;nbsp;основном тогда, когда сервис зависит от&amp;nbsp;нескоьких других.&lt;br />
Далее в&amp;nbsp;случае миграции на&amp;nbsp;init-ng я&amp;nbsp;сумел найти такое вот&amp;nbsp;простое &lt;a name=".dmitrijmaslennikov.porting" href="http://freesource.info/wiki/DmitrijMaslennikov/porting&amp;" class="" title="Dmitrij&amp;nbsp;Maslennikov&amp;nbsp;/&amp;nbsp;porting">решение&lt;/a> организации совместимости старых скриптов и&amp;nbsp;новой системы инициализации. Кроме того, init-ng позволяет писать плагины, в&amp;nbsp;частности можно будет написать плагин, который будет парсить файлы, написанные с&amp;nbsp;комментариями согласно LSB&amp;nbsp;&lt;a href="http://refspecs.freestandards.org/LSB_3.2.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />стандарта&lt;/a>.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Известно, что&amp;nbsp;Linux-системы, использующие сценарии запуска &lt;span class="missingpage">Sys&amp;nbsp;V&lt;/span>&lt;a href="http://freesource.info/wiki/SysV/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>, запускаются достаточно долго. Это&amp;nbsp;связано в&amp;nbsp;первую очередь с&amp;nbsp;тем, что&amp;nbsp;сценарии запуска системы выполняются последовательно. Играют роль задержки при&amp;nbsp;обращении к&amp;nbsp;оборудованию. Также сильно замедляет загрузку обращение к&amp;nbsp;многочисленным конфигурационным файлам. Это&amp;nbsp;легко увидеть, посмотрев как&amp;nbsp;&amp;laquo;взлетает&amp;raquo; система с&amp;nbsp;флэш-диска. Существует несколько альтернативных реализаций сценариев запуска.&lt;br />
Проведя некоторое время в&amp;nbsp;размышлениях по&amp;nbsp;поводу запукса GNU/Linux систем в&amp;nbsp;целом и&amp;nbsp;&lt;a name="altlinux" href="http://freesource.info/wiki/AltLinux&amp;" class="">Alt&amp;nbsp;Linux&lt;/a> в&amp;nbsp;частности, спешу поделиться своим опытом.&lt;br />
&lt;ul>&lt;li> многочисленные bash-скрипты запускаемые &lt;span class="missingpage">Sys&amp;nbsp;V&amp;nbsp;Init&lt;/span>&lt;a href="http://freesource.info/wiki/SysVInit/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>
&lt;/li>&lt;li> скрипты написанные для&amp;nbsp;новой системы upstart
&lt;/li>&lt;li> вариант предлагаемый разработчиками init-ng.&lt;/li>&lt;/ul>
Далее загрузщик так&amp;nbsp;или иначе загружает в&amp;nbsp;память ядро Linux и, обычно передает ему&amp;nbsp;образ initrd (если не&amp;nbsp;ошибають от&amp;nbsp;Initialisation RAM&amp;nbsp;Drive &amp;mdash; диск инициализации в&amp;nbsp;памяти). Это&amp;nbsp;уже интереснее. Этот самый образ initrd является архивом, который содержит структуру файлов и&amp;nbsp;каталогов, очень похожую на&amp;nbsp;обычный корень файловой системы используемой традиционно в&amp;nbsp;GNU/Linux. Только всего там&amp;nbsp;по&amp;nbsp;минимому. Ну&amp;nbsp;это и&amp;nbsp;понятно, поскольку этот образ разворачивается в&amp;nbsp;память и&amp;nbsp;там и&amp;nbsp;работает.&lt;br />
Каким образом это&amp;nbsp;происходит сейчас в&amp;nbsp;&lt;a  href="http://freesource.info/wiki/AltLinux&amp;" class="">Alt&amp;nbsp;Linux&lt;/a>? Первый процесс в&amp;nbsp;системе &amp;mdash; это&amp;nbsp;реализация &lt;span class="missingpage">Sys&amp;nbsp;V&amp;nbsp;Init&lt;/span>&lt;a href="http://freesource.info/wiki/SysVInit/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>. Его&amp;nbsp;файл настроек хранится в&amp;nbsp;/etc/inittab и, если его&amp;nbsp;рассмотреть, то&amp;nbsp;видно, что&amp;nbsp;сначала запускается файл /etc/rc.d/rc.sysinit, и&amp;nbsp;ожидается его&amp;nbsp;завершение, затем запускается файл /etc/rc.d/rc с&amp;nbsp;параметром текущего уровня запуска (runlevel, понятие из&amp;nbsp;&lt;span class="missingpage">Sys&amp;nbsp;V&amp;nbsp;Init&lt;/span>&lt;a href="http://freesource.info/wiki/SysVInit/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>), завершения которого снова ожидают, а&amp;nbsp;затем запускается некоторое количество процессов mingetty, которые инициализируют традиционные в&amp;nbsp;Linux эмуляторы терминалов и&amp;nbsp;выводят приглашения на&amp;nbsp;вход пользователя.&lt;a name="h552-1">&lt;/a>&lt;h3>&lt;span class="missingpage">Init&amp;nbsp;NG&lt;/span>&lt;a href="http://freesource.info/wiki/InitNG/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>&lt;/h3>
Начнем с&amp;nbsp;initng. Эта&amp;nbsp;система написана для&amp;nbsp;того, чтобы решить некоторые недостатки &lt;span class="missingpage">Sys&amp;nbsp;V&amp;nbsp;Init&lt;/span>&lt;a href="http://freesource.info/wiki/SysVInit/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>, о&amp;nbsp;которых я&amp;nbsp;напишу ниже. После запуска в&amp;nbsp;качестве первого процесса initng смотрит на&amp;nbsp;свои настройки в&amp;nbsp;/etc/initng/. В&amp;nbsp;этой папке хранятся иерархически организованные файлы конфигурации ifiles, в&amp;nbsp;которых и&amp;nbsp;описаны различные действия по&amp;nbsp;инициализации системы (сервисы), а&amp;nbsp;так же&amp;nbsp;дополнительная информация.&lt;br />
Это&amp;nbsp;весьма экстравагантная система, которая сейчас усиленно развивается. Она&amp;nbsp;является так&amp;nbsp;называемой &amp;laquo;системой основанной на&amp;nbsp;событиях&amp;raquo; (&amp;laquo;events base system&amp;raquo;). Неудивительно, что&amp;nbsp;там есть понятие события. Событие в&amp;nbsp;upstart описывается строкой. И&amp;nbsp;ее скрипты могут активироваться по&amp;nbsp;тем или&amp;nbsp;иным событиям. Как&amp;nbsp;предполагается использовать систему?&lt;br />
Ну&amp;nbsp;критики &lt;span class="missingpage">Sys&amp;nbsp;V&amp;nbsp;Init&lt;/span>&lt;a href="http://freesource.info/wiki/SysVInit/edit?add=1&amp;" title="Создать эту страницу">?&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;счету будут запускаться остальные и&amp;nbsp;каким надо запустить наш. Гораздо проще указать зависимости и&amp;nbsp;забыть о&amp;nbsp;последовательности запуска.&lt;br />
Про&amp;nbsp;upstart могу сказать следующее. Вообще, в&amp;nbsp;принципе я&amp;nbsp;могу представить аккуратно написанные сильно ветвящиеся и&amp;nbsp;параллельно запускаемые сервисы, но&amp;nbsp;текущее положение дел&amp;nbsp;в&amp;nbsp;ubuntu ограничилось эмуляцией &lt;span class="missingpage">Sys&amp;nbsp;V&amp;nbsp;Init&lt;/span>&lt;a href="http://freesource.info/wiki/SysVInit/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>. Да&amp;nbsp;и зависимости эмулировать в&amp;nbsp;такой системе очень сложно. Я, например, с&amp;nbsp;трудом представляю, как&amp;nbsp;в&amp;nbsp;такой системе сделать человеческое управление зависимостями. Еще&amp;nbsp;сложнее сделать управление зависимостями и&amp;nbsp;придумать способ гибко настраивать, что&amp;nbsp;будет запускаться, а&amp;nbsp;что нет. Сложности проистекают, в&amp;nbsp;основном тогда, когда сервис зависит от&amp;nbsp;нескоьких других.&lt;br />
Далее в&amp;nbsp;случае миграции на&amp;nbsp;init-ng я&amp;nbsp;сумел найти такое вот&amp;nbsp;простое &lt;a  href="http://freesource.info/wiki/DmitrijMaslennikov/porting&amp;" class="" title="Dmitrij&amp;nbsp;Maslennikov&amp;nbsp;/&amp;nbsp;porting">решение&lt;/a> организации совместимости старых скриптов и&amp;nbsp;новой системы инициализации. Кроме того init-ng позволяет писать плагины, в&amp;nbsp;частности можно будет написать плагин, который будет парсить файлы, написанные с&amp;nbsp;комментариями согласно LSB&amp;nbsp;&lt;a href="http://refspecs.freestandards.org/LSB_3.2.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />стандарта&lt;/a>.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-05 20:49:24</title>
<link>http://freesource.info/wiki/TZ/initscripts/show?time=2008-03-05+20%3A49%3A24</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/TZ/initscripts&amp;" class="">/ТЗ&amp;nbsp;/&amp;nbsp;initscripts&lt;/a> за &lt;a href="http://freesource.info/wiki/TZ/initscripts?time=2008-03-05+20%3A49%3A24">2008-03-05 20:49:24&lt;/a> и &lt;a href="http://freesource.info/wiki/TZ/initscripts?time=2008-03-06+01%3A01%3A37">2008-03-06 01:01:37&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Про&amp;nbsp;upstart могу сказать следующее. Вообще, в&amp;nbsp;принципе я&amp;nbsp;могу представить аккуратно написанные сильно ветвящиеся и&amp;nbsp;параллельно запускаемые сервисы, но&amp;nbsp;текущее положение дел&amp;nbsp;в&amp;nbsp;ubuntu ограничилось эмуляцией &lt;span class="missingpage">Sys&amp;nbsp;V&amp;nbsp;Init&lt;/span>&lt;a href="http://freesource.info/wiki/SysVInit/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>. Да&amp;nbsp;и зависимости эмулировать в&amp;nbsp;такой системе очень сложно. Я, например, с&amp;nbsp;трудом представляю, как&amp;nbsp;в&amp;nbsp;такой системе сделать человеческое управление зависимостями. Еще&amp;nbsp;сложнее сделать управление зависимостями и&amp;nbsp;придумать способ гибко настраивать, что&amp;nbsp;будет запускаться, а&amp;nbsp;что нет. Сложности проистекают, в&amp;nbsp;основном тогда, когда сервис зависит от&amp;nbsp;нескоьких других.&lt;a name="h552-1">&lt;/a>&lt;h3>Предложения&lt;/h3>
Так&amp;nbsp;или иначе, в&amp;nbsp;случае необходимости модернизировать загрузку системы, придется начать с&amp;nbsp;разбиения скрипта rc.sysinit на&amp;nbsp;несколько поменьше. С&amp;nbsp;возможностью запускать чатсть из&amp;nbsp;них параллельно. Это&amp;nbsp;первый этап в&amp;nbsp;мигрировании.&lt;br />
Далее в&amp;nbsp;случае миграции на&amp;nbsp;init-ng я&amp;nbsp;сумел найти такое вот&amp;nbsp;простое &lt;a  href="http://freesource.info/wiki/DmitrijMaslennikov/porting&amp;" class="" title="Dmitrij&amp;nbsp;Maslennikov&amp;nbsp;/&amp;nbsp;porting">решение&lt;/a> организации совместимости старых скриптов и&amp;nbsp;новой системы инициализации. Кроме того init-ng позволяет писать плагины, в&amp;nbsp;частности можно будет написать плагин, который будет парсить файлы, написанные с&amp;nbsp;комментариями согласно LSB&amp;nbsp;&lt;a href="http://refspecs.freestandards.org/LSB_3.2.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />стандарта&lt;/a>.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Про&amp;nbsp;upstart могу сказать следующее. Вообще, в&amp;nbsp;принципе я&amp;nbsp;могу представить аккуратно написанные сильно ветвящиеся и&amp;nbsp;параллельно запускаемые сервисы, но&amp;nbsp;текущее положение дел&amp;nbsp;в&amp;nbsp;ubuntu ограничилось эмуляцией &lt;span class="missingpage">Sys&amp;nbsp;V&amp;nbsp;Init&lt;/span>&lt;a href="http://freesource.info/wiki/SysVInit/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>. Да&amp;nbsp;и зависимости эмулировать в&amp;nbsp;такой системе очень сложно. Я, например, не&amp;nbsp;все случаи могу уложить&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-05 20:02:23</title>
<link>http://freesource.info/wiki/TZ/initscripts/show?time=2008-03-05+20%3A02%3A23</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/TZ/initscripts&amp;" class="">/ТЗ&amp;nbsp;/&amp;nbsp;initscripts&lt;/a> за &lt;a href="http://freesource.info/wiki/TZ/initscripts?time=2008-03-05+20%3A02%3A23">2008-03-05 20:02:23&lt;/a> и &lt;a href="http://freesource.info/wiki/TZ/initscripts?time=2008-03-05+20%3A49%3A24">2008-03-05 20:49:24&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h552-1">&lt;/a>&lt;h3>Обзор вариантов&lt;/h3>&lt;a name="h552-2">&lt;/a>&lt;h3>&lt;span class="missingpage">Init&amp;nbsp;NG&lt;/span>&lt;a href="http://freesource.info/wiki/InitNG/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>&lt;/h3>&lt;a name="h552-3">&lt;/a>&lt;h3>Upstart&lt;/h3>
Это&amp;nbsp;весьма экстравагантная система, которая сейчас усиленно развивается. Она&amp;nbsp;является так&amp;nbsp;называемой &amp;laquo;системой основанной на&amp;nbsp;событиях&amp;raquo; (&amp;laquo;events base system&amp;raquo;). Неудивительно, что&amp;nbsp;там есть понятие события. Событие в&amp;nbsp;upstart описывается строкой. И&amp;nbsp;ее скрипты могут активироваться по&amp;nbsp;тем или&amp;nbsp;иным событиям. Как&amp;nbsp;предполагается использовать систему?&lt;br />
&lt;ul>&lt;li> Первым стартует udev по&amp;nbsp;событию startup (генерируется при&amp;nbsp;старте upstart)
&lt;/li>&lt;li> udev конфигурируется так, чтобы посылать сигнал  new-block-device при&amp;nbsp;появлении нового устройства
&lt;/li>&lt;li> при&amp;nbsp;появлении этого сигнала стартует checkfs
&lt;/li>&lt;li> после его&amp;nbsp;завершения стартует mountfs, который монтирует устройство, если оно&amp;nbsp;в&amp;nbsp;fstab и&amp;nbsp;если оно&amp;nbsp;было последним генерирует событие filesystem-mounted
&lt;/li>&lt;li> и&amp;nbsp;так далее&lt;/li>&lt;/ul>
То&amp;nbsp;есть у&amp;nbsp;нас выстраивается такая цепочка реакций на&amp;nbsp;события, которые вновь могут порождать события. При&amp;nbsp;этом мы&amp;nbsp;говорим не&amp;nbsp;только об&amp;nbsp;инициализации системы, а&amp;nbsp;и о&amp;nbsp;работе upstart все&amp;nbsp;время, так&amp;nbsp;как события могут быть сгенерированы когда угодно, кем&amp;nbsp;угодно.&lt;a name="h552-4">&lt;/a>&lt;h3>Некоторые выводы и&amp;nbsp;соображения&lt;/h3>
Теперь я&amp;nbsp;позволю себе сделать некоторые выводы и&amp;nbsp;поделюсь своими соображениями.&lt;br />
Ну&amp;nbsp;критики &lt;span class="missingpage">Sys&amp;nbsp;V&amp;nbsp;Init&lt;/span>&lt;a href="http://freesource.info/wiki/SysVInit/edit?add=1&amp;" title="Создать эту страницу">?&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;счету будут запускаться остальные и&amp;nbsp;каким надо запустить наш. Гораздо проще указать зависимости и&amp;nbsp;забыть о&amp;nbsp;последовательности запуска.&lt;br />
Про&amp;nbsp;upstart могу сказать следующее. Вообще, в&amp;nbsp;принципе я&amp;nbsp;могу представить аккуратно написанные сильно ветвящиеся и&amp;nbsp;параллельно запускаемые сервисы, но&amp;nbsp;текущее положение дел&amp;nbsp;в&amp;nbsp;ubuntu ограничилось эмуляцией &lt;span class="missingpage">Sys&amp;nbsp;V&amp;nbsp;Init&lt;/span>&lt;a href="http://freesource.info/wiki/SysVInit/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>. Да&amp;nbsp;и зависимости эмулировать в&amp;nbsp;такой системе очень сложно. Я, например, не&amp;nbsp;все случаи могу уложить&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Это&amp;nbsp;весьма экстравагантная система, которая сейчас усиленно развивается.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-05 19:53:16</title>
<link>http://freesource.info/wiki/TZ/initscripts/show?time=2008-03-05+19%3A53%3A16</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/TZ/initscripts&amp;" class="">/ТЗ&amp;nbsp;/&amp;nbsp;initscripts&lt;/a> за &lt;a href="http://freesource.info/wiki/TZ/initscripts?time=2008-03-05+19%3A53%3A16">2008-03-05 19:53:16&lt;/a> и &lt;a href="http://freesource.info/wiki/TZ/initscripts?time=2008-03-05+20%3A02%3A23">2008-03-05 20:02:23&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Это&amp;nbsp;весьма экстравагантная система, которая сейчас усиленно развивается.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-05 19:10:22</title>
<link>http://freesource.info/wiki/TZ/initscripts/show?time=2008-03-05+19%3A10%3A22</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/TZ/initscripts&amp;" class="">/ТЗ&amp;nbsp;/&amp;nbsp;initscripts&lt;/a> за &lt;a href="http://freesource.info/wiki/TZ/initscripts?time=2008-03-05+19%3A10%3A22">2008-03-05 19:10:22&lt;/a> и &lt;a href="http://freesource.info/wiki/TZ/initscripts?time=2008-03-05+19%3A53%3A16">2008-03-05 19:53:16&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Теперь настает самый важный для&amp;nbsp;нас этап. Первый процесс должен произвести окончательную инициализацию системы, и&amp;nbsp;запустить необходимые пользовательские процессы. На&amp;nbsp;этом этапе обычно происходит следующее:&lt;br />
&lt;ul>&lt;li> тестируется оборудование, подгружаются необходимые модули
&lt;/li>&lt;li> запускается udev, который создает в&amp;nbsp;/dev необходимые файлы устройств
&lt;/li>&lt;li> монтируются все&amp;nbsp;необходимые файловые системы
&lt;/li>&lt;li> запускаются все&amp;nbsp;указаные сервисы
&lt;/li>&lt;li> запускается X-сервер с&amp;nbsp;экраном входа в&amp;nbsp;систему
&lt;/li>&lt;li> запускаются *getty для&amp;nbsp;консольного входа
&lt;/li>&lt;li> настраивается сеть
&lt;/li>&lt;li> куча чего еще&amp;nbsp;что я&amp;nbsp;не вспомнил, или&amp;nbsp;что не&amp;nbsp;важно для&amp;nbsp;дальнейшего повествования&lt;/li>&lt;/ul>
Каким образом это&amp;nbsp;происходит сейчас в&amp;nbsp;&lt;a  href="http://freesource.info/wiki/AltLinux&amp;" class="">Alt&amp;nbsp;Linux&lt;/a>? Первый процесс в&amp;nbsp;системе &amp;mdash; это&amp;nbsp;реализация &lt;span class="missingpage">Sys&amp;nbsp;V&amp;nbsp;Init&lt;/span>&lt;a href="http://freesource.info/wiki/SysVInit/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>. Его&amp;nbsp;файл настроек хранится в&amp;nbsp;/etc/inittab и, если его&amp;nbsp;рассмотреть, то&amp;nbsp;видно, что&amp;nbsp;сначала запускается файл /etc/rc.d/rc.sysinit, и&amp;nbsp;ожидается его&amp;nbsp;завершение, затем запускается файл /etc/rc.d/rc с&amp;nbsp;параметром текущего уровня запуска (runlevel, понятие из&amp;nbsp;&lt;span class="missingpage">Sys&amp;nbsp;V&amp;nbsp;Init&lt;/span>&lt;a href="http://freesource.info/wiki/SysVInit/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>), завершения которого снова ожидают, а&amp;nbsp;затем запускается некоторое количество процессов mingetty, которые инициализируют традиционные в&amp;nbsp;Linux эмуляторы терминалов и&amp;nbsp;выводят приглашения на&amp;nbsp;вход пользователя.&lt;br />
Таким образом видно, что&amp;nbsp;все интересное происходит в&amp;nbsp;rc.sysinit и&amp;nbsp;rc.&lt;br />
Так&amp;nbsp;вот большую часть работы по&amp;nbsp;базовой инициализации системы выполняет rc.sysinit. Это&amp;nbsp;большой bash-скрипт, который устанавливает системный шрифт, проверяет файловые системы, монтирует их, запускает udev, и&amp;nbsp;делает еще&amp;nbsp;целую кучу всего интересного или&amp;nbsp;нет (кому как&amp;nbsp;:) ) и&amp;nbsp;делает это, надо сказать весьма долго (у меня больше 20 секунд). Второй скрипт попроще, поскольку он&amp;nbsp;просто идет в&amp;nbsp;соответствующую папку (/etc/rc.d/rc&amp;lt;runlevel&amp;gt;.d) и&amp;nbsp;запускает там&amp;nbsp;все файлы (они все&amp;nbsp;симлинки на&amp;nbsp;файлы из&amp;nbsp;/etc/init.d, но&amp;nbsp;в принципе это&amp;nbsp;по-барабану), начинающиеся с&amp;nbsp;&amp;#8220;K&amp;#8221; с&amp;nbsp;параметром stop, а&amp;nbsp;затем все&amp;nbsp;файлы, начинающиеся с&amp;nbsp;&amp;#8220;S&amp;#8221; с&amp;nbsp;параметром start. Соответственно все&amp;nbsp;действия выполняют скрипты из&amp;nbsp;/etc/init.d. Такой порядок заведен, для&amp;nbsp;того, чтобы можно было менять состав и&amp;nbsp;порядок выполнения скриптов из&amp;nbsp;/etc/init.d для&amp;nbsp;некоторого тюнинга процесса загрузки системы.&lt;br />
Теперь посмотрим, что&amp;nbsp;же&amp;nbsp;предлагают нам&amp;nbsp;остальные системы инициализации.&lt;br />
Начнем с&amp;nbsp;initng. Эта&amp;nbsp;система написана для&amp;nbsp;того, чтобы решить некоторые недостатки &lt;span class="missingpage">Sys&amp;nbsp;V&amp;nbsp;Init&lt;/span>&lt;a href="http://freesource.info/wiki/SysVInit/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>, о&amp;nbsp;которых я&amp;nbsp;напишу ниже. После запуска в&amp;nbsp;качестве первого процесса initng смотрит на&amp;nbsp;свои настройки в&amp;nbsp;/etc/initng/. В&amp;nbsp;этой папке хранятся иерархически организованные файлы конфигурации ifiles, в&amp;nbsp;которых и&amp;nbsp;описаны различные действия по&amp;nbsp;инициализации системы (сервисы), а&amp;nbsp;так же&amp;nbsp;дополнительная информация.&lt;br />
У&amp;nbsp;каждого сервиса описанного в&amp;nbsp;соответствующем ifile имеются зависимости. Это&amp;nbsp;другие сервисы без&amp;nbsp;отработки которых сервис не&amp;nbsp;может работать корректно (например, web-сервис apache не&amp;nbsp;может работать до&amp;nbsp;того как&amp;nbsp;сеть будет инициализирована). Есть возможность задавать и&amp;nbsp;&amp;laquo;мягкие зависимости&amp;raquo;, это&amp;nbsp;когда сервис может быть запущен без&amp;nbsp;запуска некоторого, но&amp;nbsp;если уж&amp;nbsp;пользователь попросил запустить его, то&amp;nbsp;он должен будет запуститься раньше (например, тот&amp;nbsp;же&amp;nbsp;apache может работать без&amp;nbsp;mysql, но&amp;nbsp;если мы&amp;nbsp;запускаем и&amp;nbsp;mysql, и&amp;nbsp;apache, то&amp;nbsp;лучше mysql перед apache). Так&amp;nbsp;же&amp;nbsp;сервисы могут предоставлять виртуальные сервисы, например и&amp;nbsp;postfix, и&amp;nbsp;qmail, и&amp;nbsp;exim могут предоставлять сервис mta, тогда другие сервисы могут ставить себе в&amp;nbsp;зависимость mta, не&amp;nbsp;заботять о&amp;nbsp;том, какой mta&amp;nbsp;сейчас работает в&amp;nbsp;действительности.&lt;br />
Так&amp;nbsp;вот, обычно initng смотрит в&amp;nbsp;файл runlevels/default.runlevel и&amp;nbsp;смотрит, что&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 />
Следующая система &amp;mdash; это&amp;nbsp;upstart.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Теперь настает самый важный для&amp;nbsp;нас этап. Первый процесс должен произвести окончательную инициализацию системы, и&amp;nbsp;запустить необходимые пользовательские процессы. На&amp;nbsp;этом этапе обычно происходит следующее:&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-01-29 20:46:56</title>
<link>http://freesource.info/wiki/TZ/initscripts/show?time=2008-01-29+20%3A46%3A56</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/TZ/initscripts&amp;" class="">/ТЗ&amp;nbsp;/&amp;nbsp;initscripts&lt;/a> за &lt;a href="http://freesource.info/wiki/TZ/initscripts?time=2008-01-29+20%3A46%3A56">2008-01-29 20:46:56&lt;/a> и &lt;a href="http://freesource.info/wiki/TZ/initscripts?time=2008-03-05+19%3A10%3A22">2008-03-05 19:10:22&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Проведя некоторое время в&amp;nbsp;размышлениях по&amp;nbsp;поводу запукса GNU/Linux систем в&amp;nbsp;целом и&amp;nbsp;&lt;a  href="http://freesource.info/wiki/AltLinux&amp;" class="">Alt&amp;nbsp;Linux&lt;/a> в&amp;nbsp;частности, спешу поделиться своим опытом.&lt;br />
Для&amp;nbsp;начала замечу, что&amp;nbsp;мое рассмотрение коснется только трех вариантов организации загрузки системы. Это&lt;br />
&lt;ul>&lt;li> многочисленные bash-скрипты запускаемые &lt;span class="missingpage">Sys&amp;nbsp;V&amp;nbsp;Init&lt;/span>&lt;a href="http://freesource.info/wiki/SysVInit/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>
&lt;/li>&lt;li> скрипты написанные для&amp;nbsp;новой системы upstart
&lt;/li>&lt;li> вариант предлагаемый разработчиками init-ng.&lt;/li>&lt;/ul>
Для&amp;nbsp;начала пробегусь в&amp;nbsp;общих чертах на&amp;nbsp;тему инициализации системы вообще.&lt;br />
Когда мы&amp;nbsp;включаем компьютер первым делом bios загружает и&amp;nbsp;запускает загрузщик ядра линукс (у нас, конечно стоит линукс, а&amp;nbsp;другие варианты мы&amp;nbsp;не рассматриваем :) ). Этот этап нам&amp;nbsp;совершенно не&amp;nbsp;интересен, поэтому о&amp;nbsp;нем больше ни&amp;nbsp;слова.&lt;br />
Далее загрузщик так&amp;nbsp;или иначе загружает в&amp;nbsp;память ядро Linux и, обычно передает ему&amp;nbsp;образ initrd (если не&amp;nbsp;ошибають от&amp;nbsp;Initialisation RAM&amp;nbsp;Drive &amp;mdash; диск инициализации в&amp;nbsp;памяти). Это&amp;nbsp;уже интереснее. Этот самый образ initrd является архивом, который содержит структуру файлов и&amp;nbsp;каталогов, очень похожую на&amp;nbsp;обычный корень файловой системы используемой традиционно в&amp;nbsp;GNU/Linux. Только всего там&amp;nbsp;по&amp;nbsp;минимому. Ну&amp;nbsp;это и&amp;nbsp;понятно, поскольку этот образ разворачивается в&amp;nbsp;память и&amp;nbsp;там и&amp;nbsp;работает.&lt;br />
Фактически, это&amp;nbsp;первая мини-система запускаемая при&amp;nbsp;старте компьютера. При&amp;nbsp;этом Linux вполне может стартануть и&amp;nbsp;без нее, но&amp;nbsp;сейчас так&amp;nbsp;делают разве что&amp;nbsp;встраиваемые системы или&amp;nbsp;системы собранные самостоятельно, да&amp;nbsp;и то&amp;nbsp;редко. Зачем же&amp;nbsp;нужна такая мини-система? Вообще смысл ее&amp;nbsp;очень прост: она&amp;nbsp;должна примонтировать корень большой, настоящей системы и&amp;nbsp;затем передать управление программе на&amp;nbsp;нем. При&amp;nbsp;этом иногда приходиться проделать совсем нетривиальные вещи, вроде автодетектирования оборудования и&amp;nbsp;подгрузки необходимых для&amp;nbsp;его работы модулей, подгрузки модулей файловой системы и&amp;nbsp;т. п. вещи. Кроме того корень файловой системы может располагаться на&amp;nbsp;другом компьютере и&amp;nbsp;быть доступным по&amp;nbsp;сети. Тогда initrd система получает сетевые настройки по&amp;nbsp;протоколу dhcp и&amp;nbsp;действует в&amp;nbsp;соответствии с&amp;nbsp;ними. Что&amp;nbsp;бы&amp;nbsp;там ни&amp;nbsp;происходило, но&amp;nbsp;итогом всех действий является смонтированый только для&amp;nbsp;чтения (ну так&amp;nbsp;обычно) корень файловой системы и&amp;nbsp;запуск процесса /sbin/init уже&amp;nbsp;с&amp;nbsp;этого корня.&lt;br />
Теперь настает самый важный для&amp;nbsp;нас этап. Первый процесс должен произвести окончательную инициализацию системы, и&amp;nbsp;запустить необходимые пользовательские процессы. На&amp;nbsp;этом этапе обычно происходит следующее:&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h552-1">&lt;/a>&lt;h2> Внедрение в&amp;nbsp;ALT Linux &lt;/h2>
&lt;ul>&lt;li> При&amp;nbsp;адаптации initng для&amp;nbsp;ALT следует максимально сохранить совместимость со&amp;nbsp;скриптами других систем.&lt;/li>&lt;/ul>&lt;a name="h552-2">&lt;/a>&lt;h2>Многопоточный startup&lt;/h2>
 &lt;br />
1. Учитывать тип&amp;nbsp;нагрузки каждого сервиса (диск, процессор, сеть)&lt;br />
 &lt;br />
&lt;a href="http://samba.org/~ab/initscripts-replacement-proposal.txt" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://samba.org/~ab/initscripts-replacement-proposal.txt&lt;/a>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2006-02-17 20:51:49</title>
<link>http://freesource.info/wiki/TZ/initscripts/show?time=2006-02-17+20%3A51%3A49</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/TZ/initscripts&amp;" class="">/ТЗ&amp;nbsp;/&amp;nbsp;initscripts&lt;/a> за &lt;a href="http://freesource.info/wiki/TZ/initscripts?time=2006-02-17+20%3A51%3A49">2006-02-17 20:51:49&lt;/a> и &lt;a href="http://freesource.info/wiki/TZ/initscripts?time=2008-01-29+20%3A46%3A56">2008-01-29 20:46:56&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;ul>&lt;li> &lt;a href="http://upstart.ubuntu.com/" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />upstart&lt;/a>&lt;/li>&lt;/ul>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2006-01-03 02:00:29</title>
<link>http://freesource.info/wiki/TZ/initscripts/show?time=2006-01-03+02%3A00%3A29</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/TZ/initscripts&amp;" class="">/ТЗ&amp;nbsp;/&amp;nbsp;initscripts&lt;/a> за &lt;a href="http://freesource.info/wiki/TZ/initscripts?time=2006-01-03+02%3A00%3A29">2006-01-03 02:00:29&lt;/a> и &lt;a href="http://freesource.info/wiki/TZ/initscripts?time=2006-02-17+20%3A51%3A49">2006-02-17 20:51:49&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h552-1">&lt;/a>&lt;h2> Внедрение в&amp;nbsp;ALT Linux &lt;/h2>
&lt;ul>&lt;li> При&amp;nbsp;адаптации initng для&amp;nbsp;ALT следует максимально сохранить совместимость со&amp;nbsp;скриптами других систем.&lt;/li>&lt;/ul>&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
