49 Pour aller plus loin sur ITPro.fr En 2010, Lennart Poettering, développeur chez Red Hat, considère que systemV n'est plus adapté aux systèmes modernes, dû à un démarrage séquentiel des services et une grande difficulté à définir des dépendances entre services. Il commence donc le développement d'un nouveau système d'initialisation nommé systemD, avec deux objectifs principaux : • Accélérer le démarrage du système. • Améliorer la supervision des services. Comment accélérer le démarrage du système ? Afin d'accélérer le processus de démarrage, Lennart Poettering part de deux observations simples : • Il faut démarrer le moins de services possibles. • Il faut démarrer le plus de services possibles en paral- lèle. Par exemple, sur notre ordinateur, nous n'utilisons pas forcément le service d'impression (cups sur Linux). Pourtant, celui-ci est présent dès le démarrage du sys- tème. L'idéal serait que celui-ci se lance uniquement au moment où l'utilisateur souhaite imprimer. Lancer les services en parallèle peut sembler à pre- mière vue une bonne idée, mais cela implique la résolu- tion d'un arbre de dépendances avant même de lancer le premier service. Cette résolution peut, dans certains cas, être coûteuse en temps. Sous Linux, la plupart des services communiquent entre eux via des sockets. Si on regarde simplement le problème de résolution de dépendances entre services, un service A qui dépend d'un service B, n'a pas vrai- ment besoin d'attendre que le service B soit complète- ment démarré avant de pouvoir lui-même démarrer ; Il a juste besoin que la socket du service B soit ouverte. De même, si l'on reprend l'exemple de notre service d'impression, celui-ci n'a pas vraiment besoin d'être lancé dès le démarrage. Il suffit que la socket liée au service soit ouverte. Au moment où celle-ci recevra un fichier à imprimer, alors seulement il deviendra utile de démarrer un service d'impression. L'utilisateur final n'y voit pas de différence, mais notre système a pu se lan- cer plus rapidement. On voit donc qu'en décorélant le lancement d'un ser- Par Jean-Eudes Couignoux LES DÉVELOPPEURS AUSSI MAÎTRISENT LE SYSTEMD Infrastructure IT Expert Sur un système Linux, le noyau lance ce que l'on appelle “process d'init” . Ce processus, le premier lancé, porte le PID 1, et a pour responsabilité principale l'initialisation du système et la gestion des processus. Historiquement, c'est un programme nommé systemV qui était en charge de cette gestion. Infrastructure IT Expert TechDays 2014 – « Le développeur doit participer aux décisions au plus haut niveau » bit.ly/développeur-participer-décisions Bientôt un visa pour les développeurs étrangers ? bit.ly/visa-developpeurs-etrangers