• [^] # Re: Init

    Posté par (site web personnel) . En réponse à la dépêche Accelerated Knoppix : pour des Live-CD plus rapides. Évalué à 4.

    BeOS sur une machine bien moins puissante que maintenant démmarait en 14s (du boot loader à l'interface graphique fonctionnelle et sans aucune optimisation de ma part)..

    Il faudrait peut-être comparer ce qui est comparable : Ton BeOS n'avait pas à gérer xx interfaces réseaux différentes (et d'ailleurs, combien existait-il de drivers pour les cartes réseaux ?), du Wifi, de l'IPv6, du Bluetouth, et j'en passe et des meilleurs...

    Ce que je te faire comprendre c'est qu'avec le temps, Linux s'est diversifié à un point qui n'était pas imaginable à l'époque de ton BeOS, et que dans ce cas, le nombre même de tests à faire pour démarrer le système est nettement plus conséquent.

    Prenons un exemple tout simple : Le script de démarrage des couches réseaux d'un Linux. Sur ma MDK, mais c'est sensiblement la même chose pour les autres distributions, le script "/etc/init.d/network" fait 359 lignes. Dedans : du bash qui lance toutes sortes de programmes (awk, ifconfig, etc..), afin de prendre en compte plein de types de configurations de réseaux différentes. Mais si tu veux quelque chose de beaucoup plus rapide pour UNE configuration particulière, cela peut se régler en 3 lignes de bash. Voir à quelques lignes de C, ce qui permettrait en plus d'éviter de lancer l'interpereur bash.

    Pourquoi ne pas plus optimiser ainsi tout les scripts alors ? Parce qu'il perdrait pas mal de lisibilité pour les utilisateurs, et qu'ils seraient forcément moins souples.

    De plus, il existe tout un tas de programmes qui se chargent automatiquement au démarrage de la machine : serveur de fontes, portmap, serveur SMB, serveur web, firewall, HAL, etc... Tout cela dans le but de rendre la vie de l'utilisateur plus simple, sans qu'il n'ait besoin d'activer manuellement des parties de softs lorsque l'occasion se présente. L'utilisateur veut ne pas avoir à se poser de questions lorsque qu'il est sur sa machine. Cela nécéssite donc de charger dans le système des méchanismes complexes.

    Enfin, dans la philosphie de Unix/Linux, il n'est pas habituel de redémarrer son ordinateur : Ce type de machine a été conçu pour être allumé et ne (presque) pas s'arrêter. C'est l'utilisateur actuel qui a sans cesse besoin de l'éteindre et de le rallumer... Ce qui fait au passage des économies d'énergie, ce qui n'est pas forcément plus mal... ;)

    Conclusion :
    - Linux est long à booter : Oui
    - Linux charge plein de trucs inutiles : Oui, afin de faciliter l'utilisation pour l'utilisateur "newbee".
    - Le chargement de Linux peut être optimiser : Oui, et très largement :
    + Compilation du kernel pour ne charger que les modules utiles
    +Ne pas charger les softs inutiles (par exemple, pour certains un serveur web n'est pas utile)
    + Ré-écriture des méchanismes d'init. Sur une machine définie, un script d'init unique de quelques dizaines de lignes permettrait de tout lancer.