Le démarrage d'un système Linux englobe plusieurs tâches. Le processus implique de monter les systèmes de fichiers virtuels et réels, d'initialiser les périphériques, de vérifier la conformité des systèmes de fichier, de monter et activer tout fichier d'échange ou partition d'échange, de régler l'horloge du système, d'activer le réseau, de démarrer les démons nécessaires au système et d'accomplir d'autres tâches personnalisées précisées par l'utilisateur. Il faut organiser ce processus afin de s'assurer que les tâches s'effectuent dans l'ordre et le plus vite possible.
System V est le système de démarrage classique qu'on utilise dans les systèmes Unix et les systèmes de type Unix comme Linux depuis 1983. Il consiste en un petit programme, init, qui initialise des processus de base tels que login (via getty) et lance un script. Ce script, appelé en général rc, contrôle l'exécution d'un ensemble d'autres scripts qui effectuent les tâches nécessaires pour initialiser le système.
Le programme init est
contrôlé par le fichier /etc/inittab
et s'organise en niveaux d'exécution que l'utilisateur peut
choisir. Dans LFS ces niveaux s'utilisent ainsi :
0 — arrêt
1 — Mode mono-utilisateur
2 — Définissable par l'utilisateur
3 — Mode multi-utilisateur complet
4 — Définissable par l'utilisateur
5 — Mode multi-utilisateur complet avec gestionnaire d'affichage
6 — redémarrage
Le niveau d'exécution par défaut est en général 3 ou 5.
Système stabilisé et maîtrisé.
Facile à personnaliser.
Peut être plus lent au démarrage. La vitesse moyenne d'un système LFS de base est de 8-12 secondes, le temps de démarrage étant mesuré à partir du premier message du noyau jusqu'à l'invite de connexion. La connectivité réseau arrive en général 2 secondes après l'invite de connexion.
Gestion en série des tâches de démarrage. Ceci est lié au point précédent. Le ralentissement d'un processus comme la vérification d'un système de fichiers, décalera tout le processus de démarrage.
Ne prend pas directement en charge les fonctionnalités avancées comme les groupes de contrôle (cgroups) et l’ordonnancement d'un partage équitable entre les utilisateurs.
L'ajout de scripts nécessite de prendre des décisions sur la séquence statique d'exécution à la main.