Сравнение мужей: upstart vs BSD Init

Алексей Федорчук

Тема скорости загрузки системы при использовании разных схем инициализации привлекала и привлекает внимание по той же причине, что и бег на дистанцию 100 метров: молчаливо предполагается, что это быстрый способ определения скорости работы в реальных условиях.

Конечно, это не так. Практика показывает, что спринтер — мастер спорта по стометровке, совсем не обязательно покажет себя на канавах лучше бича — алкоголика и чифириста. Так и схема инициализации, загружающая систему на две секунды быстрее, нежели другие, не гарантирует, что в использующем её дистрибутиве расчёт P/T-параметров выплавления базальтовых магма будет производиться с большей скоростью, нежели в тех, других.

Однако спорт — он такой спорт, и с реальной жизнью коррелировать никак не обязан. Так что об олимпийских чемпионах по стометровке говорят гораздо больше, чем о бичах-канавщиках. Особенно за рюмкой чаю, стопкой пива или кружкой водки. Потому и мы, многоскорбный повествователь Блогосайта, никогда не манкировали этой темой. В которой оставля неосвещённым один важный аспект.

Немало копий сломано о вопросы сравнительного быстродействия схем инициализации System V, Upstart и Systemd. Однако при этом почему-то упорно забывается, что в некоторых дистрибутивах Linux’а до сих пор применяется и более иная схема — в стиле BSD Init. Разумеется, это не чистая BSD-схема, используемая в операционках одноимённого семейства, потому что пресловутые Runlevels при этом никуда не деваются. Однако принцип действий применителя при её настройке — редактирование главного конфига, определяющего поведение главного инциирующего скрипта — от этого не меняется.

Дистрибутивов, использующих инициализацию в BSD-стиле, нынче осталось мало: на память приходит, пожалуй, только CRUX. Потому что Arch, до некоторого времени бывший одной из его опор, нынче продался большевикам systemd’изаторам. Однако в Slackware и её клонах (в том числе и Salix’е) до сих пор используется BSD-подобная схема, хотя и несколько модифицированная.

Волею судеб случилось так, что у меня на одном и том же винчестере (традиционном HDD) оказались одновременноу становленными Xubuntu Trusty Tahr (в пререлизном исполнении) и Salix. Что даёт возможность прямого сравнения скорости загрузки при использовании стилей upstart и bsd, хотя и не совсем канонического (собственно bsd-init в современной Slackware нету). И этой возможностью я не преминул воспользоваться.

Скорость загрузки хренометрировалась с помощью секундомера от нажатия Enter на выбранном пункте в меню GRUB’а до появления приглашения к авторизации в дисплейном менеджере. Средние по трём измерениям составили:

upstart 19,42
квази-bsd 32,22

Salix не прячет стыдливо сообщения о ходе загрузки, как это принято нынче в большинстве юзерофильных дистрибутивов (дабы не смущать ими нежную душу потребителя). Поэтому в последнем случае хорошо видно, что около 10 секунд из суммарного значения тратится на поиск DHCP-сервера. Чем, вероятно, и определяется столь подавляющее превосходство Upstart’а, который, видимо, способен выполнять эту задачу параллельно с другими.