Это было бы несколько быстрее в C, но выбор языка не так сильно влияет на производительность. Как правило, более эффективно выполнять различные задачи параллельно, а не ждать, пока они не будут выполнены последовательно, как это делают более простые системы инициализации. Например, sshd и httpd могут быть запущены одновременно, поскольку ни один из них не требует, чтобы другой уже был запущен.
Не существует единой "последовательности загрузки Linux". Каждое распределение имеет свое собственное; у них нет даже ничего общего. Это может быть C, Perl, Haskell, что угодно; единственное требование - чтобы исполняемый файл с именем /init
присутствовал в initramfs, или /sbin/init
в корневой файловой системе.
Схема /etc/rc?.d
является просто продолжением процесса загрузки Unix 20 лет назад, может быть, даже 30 лет. Самые ранние системы Unix перезагружались довольно редко, поэтому у них был простой скрипт /etc/rc
или аналогичный, который запускался init и запускал различные демоны последовательно.
Даже сегодня SysV init используется для запуска всех таких сценариев, хотя точный метод может отличаться. Первоначально система запускала все сценарии в /etc/rc?.d
по порядку; в настоящее время Debian использует зависимости в стиле Makefile.
Некоторые дистрибутивы - Ubuntu, Chrome OS, Fedora до версии 14 - переключились на Upstart, который написан на C и «основан на событиях», позволяя запускать демоны параллельно. Другая система инициализации, systemd, быстро растет в популярности - она используется по умолчанию в Fedora и OpenSuSE. Это также написано на C. (Обе системы все еще читают текстовые файлы конфигурации, чтобы решить, какие демоны должны быть запущены.)

Те дистрибутивы, которые все еще придерживаются SysVinit, обычно делают это для "простоты"; наиболее часто встречающиеся аргументы [нужда в цитировании], по-видимому, касаются того, что скрипты оболочки проще поддерживать, чем эквивалентный код на С (хотя упомянутые скрипты оболочки состоят из 90% копий), а также смертельный страх введения дополнительных библиотечных зависимостей [субъективных]. Вы можете убедиться в этом, этом, этом и этом обсуждении в списке рассылки Debian от мая 2012 года.
(Отказ от ответственности: я сам системный пользователь.)