> Вот, например, журнал загрузки виртуалки с openSUSE 13.2: http://pastebin.com/shju9AeT Спасибо.
> Здесь, правда, есть такой момент, что systemd стартует два раза: один раз
> в initrd, сгенерированном dracut'ом, а второй, непосредственно, с корневой файловой системы.
Это не главное. Вы уверены, что из этого лога вы понимаете как стартует система? Я например не увидел в нем многих основополагающих вещей. Например в какой момент монтируется /sys /proc /tmp, в какой последовательности и с какими параметрами?
> Вся сложность понимания работы systemd состоит в том, что сервисы стартуют параллельно
> согласно графу зависимостей. В тоже время, для сервиса легко понять, от
> кого он зависит, и кто зависит от него. При этом есть
> инструменты, показывающие критический путь при загрузке -- узкое место, разобравшись с
> которым можно ускорить загрузку системы (systemd-analyze, bootchart).
> Быстрая скорость загрузки достигается именно за счёт параллельного запуска сервисов, что
> трудно организовать, используя классический SysV init.
Вместо того, чтобы лечить болезнь, ее просто пытаются спрятать. Действительно ли вам нужны все эти сервисы, что бы потом строить зависимости и думать как их параллельно запустить? Озвучите ваши задачи и необходимые для них сервисы и на чем основан их выбор.
> Под сервисами я подразумеваю различные службы и приложения. Посмотрите, сколько у вас
> процессов на мобильном телефоне работает -- а, ведь, все их кто-то
> должен запустить. И systemd -- один из способов запустить их максимально
> быстро.
Телефон (android) - это показатель как не нужно делать. Количество сервисов там раздуто выше всякой меры.
> К тому же удобно управлять сервисами: включать/выключать/запрещать. И нет проблем с зависимостями,
> типа, что mysql остановили, а apache с сайтом, который может к
> нему обращаться, ещё работает -- забыли остановить в первую очередь.
Согласен. Но подобное нужно далеко не везде.
> В случае с вашим ноутбуком ответ можно вполне точно прикинуть, можно ли
> ускорить загрузку. Есть инструменты (типа того же bootchart'а), которые записывают загрузку
> CPU и дисковой подсистемы во время старта системы. И если у
> вас всё загружено под завязку, то, да, улучшить не получится. А
> если что-то простаивает, то есть шанс, что можно что-то переупорядочить, и,
> тем самым, ускорить загрузку.
Там особо вариантов нет. Да и systemd, запускающий сотни команд, тянущий cgroups/d-bus/ udev/etc по определению не может быть быстрее 20-30 команд шела.