Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Redhat

84 réponses
Avatar
Jo Engo
Ce n'est pas vraiment EC, mais je vous invite à débattre : est-ce que ça
vaut le coup de me mettre à red hat, vu que c'est une distribution qui
est utilisée/demandée par de nombreuse boîtes.

Quelle machine pour la red hat ? un r-pi ?

(j'ai abandonné mandrake/mandriva pour DebIan, je pourrai revenir du côté
obscur de la force avec red hat, mais je préfère y consacrer une machine.
Est-ce une bonne idée ?)

--
La musique est une mathématique sonore,
la mathématique est une musique silencieuse.
-+- Edouard Herriot -+-

10 réponses

1 2 3 4 5
Avatar
Stéphane CARPENTIER
Le 02-06-2020, Nicolas George <nicolas$ a écrit :
Stéphane CARPENTIER , dans le message
, a écrit :
C'est un autre débat, mais tu as raison, c'est quelque chose dont il
faut parler.

Oui, je suis conscient que c'est un autre débat. Mais ce que tu
expliques après, va dans le sens que j'imaginais et c'est pour ça que
j'en ai parlé. Les deux débats sont très liés.
--
Si vous avez du temps à perdre :
https://scarpet42.gitlab.io
Avatar
Stéphane CARPENTIER
Le 02-06-2020, jp willm a écrit :
Le 02/06/2020 à 13:02, Stéphane CARPENTIER a écrit :
La question est surtout de savoir si j'aurai besoin de basculer de
moi-même en avance de phase ou si la migration sera faite avant que
j'en ai besoin. En supposant que j'en ai besoin, car ils peuvent
aussi améliorer systemd.

En attendant que la foule suive, "ils" ont aussi besoin des rapports
de bugs.

Oui, mais c'est qui « ils » ? Je ne vais pas installer toutes les
alternatives en parallèle juste pour pouvoir envoyer des rapports de
bugs à tout le monde. Et pourquoi systemd n'aurait pas besoin de rapport
de bug pour s'améliorer ?
Parce que l'un des trucs qui est reproché à systemd (sur plein de liens
que tu m'as montré mais aussi sur d'autres que j'avais déjà vu) est leur
arrogance. Mais quand je vois ces sites, ils ne font que de la
destruction de systemd sans la moindre proposition d'amélioration. Oui,
je sais, c'est la conception qui est mauvaise : c'est pas possible de
l'améliorer, il faut le quitter. Mais j'ai du mal à croire que toutes
les alternatives sont bien conçues et que seul systemd est mal conçu
alors que c'est répandu sur des distributions qui n'ont pas les mêmes
objectifs (ie : choix différents, même conclusion).
Je ne sais pas comment la situation actuelle en est arrivée là. Mais
personnellement, je comprends que les développeurs de systemd, qui font
quelque chose de constructif (bien ou pas n'est pas la question : ils
avancent), soient arrogant vis-à-vis de ceux qui leur font la chasse aux
sorcières. J'ai tendance à faire pareil et à mépriser ceux qui ne savent
que critiquer.
Et là, comme ça, rien ne me dit que systemd ne va pas s'améliorer. Rien
ne me dit que systemd est sûr de me poser problème à court terme. Rien
ne me dit que l'éventuel remplacement de systemd existe déjà. Rien ne me
dit qu'il y a quelque chose de mieux que systemd que j'ai intérêt à
utiliser. Je ne me sens pas obligé d'aboyer avec les loups pour dire que
tout est bien sauf systemd.
Le pire, c'est qu'au début j'avais envie de détester systemd et d'avoir
plein d'arguments pour migrer, en faisant un effort, mais pour faire une
bonne action en améliorant mon système. Mais en fait, plus je lis et
plus je vois que les raisons de partir sont des cas particuliers (qui
sont valables, je ne le nie pas, mais ils ne me concernent pas). Plus
j'ai l'impression que c'est une guerre de religion à laquelle je n'ai vu
aucune raison de participer.
Autant les guerres contre Microsoft, Apple, Android, Google, Facebook,
Amazon et Uber (entre autres), j'ai vu plein d'arguments sérieux. Autant
la guerre contre systemd je n'ai rien vu.
--
Si vous avez du temps à perdre :
https://scarpet42.gitlab.io
Avatar
Yliur
Le Tue, 02 Jun 2020 11:02:47 +0000, Stéphane CARPENTIER a écrit :
Toutefois, j'ai lu qu'un des principaux développeurs de Arch travaille
chez IBM Redhat, chez qui œuvre aussi l'inventeur de systemd.

D'abord, Archlinux est une distribution à la fois minimale et bleeding
edge, ce que n'est vraiment pas Red Hat. Le gestionnaire de paquet n'a
rien à voir non plus. Les motivations ne sont vraiment pas les mêmes et
ça me surprendrait qu'il se focalise juste sur systemd pour
homogénéisation alors que tout le reste est différent.

De mémoire, Archlinux est passée à systemd parce que c'est le truc que
tout le monde utilisait et que pour un certain nombre de services les
mainteneurs d'Arch allait devoir commencer à maintenir eux-mêmes les
scripts à l'ancienne. Du moins c'est ce qu'ils ont annoncé, je ne suis
pas allé vérifier. Il me semble que l'annonce indiquait que si des gens
étaient vraiment intéressés pour faire ce travail, ils pouvaient se faire
connaître. C'est arrivé lors d'un autre choix, quand Archlinux a
abandonné le x86 32 bits ; et des gens sont allés mettre en place arch32
pour assurer la maintenance.
Arch étant une distribution qui propose des logiciels les moins modifiés
possibles, c'est plutôt cohérent de faire comme tout le monde quand les
autres se tournent vers une solution technique particulière, à moins
qu'une autre solution ait de très gros avantages. Devoir maintenir dans
leur coin des spécificités sur tout un tas de paquets, ce n'est pas trop
l'esprit de cette distribution (contrairement à Debian par exemple).
Avatar
Nicolas George
Yliur , dans le message <rb6tbe$5dc$, a écrit :
De mémoire, Archlinux est passée à systemd parce que c'est le truc que
tout le monde utilisait et que pour un certain nombre de services les
mainteneurs d'Arch allait devoir commencer à maintenir eux-mêmes les
scripts à l'ancienne.

Ça ne me semble pas très crédible. C'est de toutes façons le rôle d'une
distribution de faire l'infrastructure de lancement des services.
Avatar
jp willm
Le 02/06/2020 à 16:23, Stéphane CARPENTIER a écrit :
Autant les guerres contre Microsoft, Apple, Android, Google, Facebook,
Amazon et Uber (entre autres), j'ai vu plein d'arguments sérieux. Autant
la guerre contre systemd je n'ai rien vu.

Laissons de côté la guerre, mais intéressons-nous à ce qui reste libre.
--
jp willm
http://willms.yj.fr/willms/index.html
Avatar
Yliur
Le Wed, 03 Jun 2020 09:51:54 +0000, Nicolas George a écrit :
Yliur , dans le message <rb6tbe$5dc$, a écrit :
De mémoire, Archlinux est passée à systemd parce que c'est le truc que
tout le monde utilisait et que pour un certain nombre de services les
mainteneurs d'Arch allait devoir commencer à maintenir eux-mêmes les
scripts à l'ancienne.

Ça ne me semble pas très crédible. C'est de toutes façons le rôle d'une
distribution de faire l'infrastructure de lancement des services.

Du coup je suis allé fouiller. J'ai retrouvé un message dans un forum,
qui est pointé directement par la page de wiki systemd comme étant
l'explication "officielle".
Le message en question :
https://bbs.archlinux.org/viewtopic.php?pid49530#p1149530
La page de wiki (pour la source) :
https://wiki.archlinux.org/index.php/Systemd
Donc c'est un des développeurs arch et il dit effectivement qu'ils
devaient maintenir les scripts eux-mêmes avant ; par contre il espère que
ce ne sera plus le cas avec systemd (je ne sais pas si son vœu s'est
exaucé) et que ça va permettre de mettre en commun du travail entre
distributions. Les points 5-7 de sa liste d'avantages traitent de ces
sujets.
Globalement il liste un certains nombre d'avantages qu'il voit à systemd,
il semble plutôt enthousiaste. En tout cas le message est intéressant.
Avatar
Stéphane CARPENTIER
Le 04-06-2020, Yliur a écrit :
Le message en question :
https://bbs.archlinux.org/viewtopic.php?pid49530#p1149530

Ah, ben non. Moi qui voulait détester systemd, tu vas finir par faire de
moi un défenseur.
Ce qui confirme ce que j'imaginais, c'est que les raisons d'avoir migré
sont un peu plus sérieuses que pour faire comme tout le monde.
Ce qui confirme aussi ce que j'imaginais, c'est que certains trucs me
perturbaient parce que je ne me suis pas plongé dans la doc. Il y a plus
de trucs intéressants que ce que j'avais remarqué.
Je comprends aussi pourquoi les machines sous-dimensionnées de JKB ont
du mal à démarrer. Mais d'un autre côté, devoir attendre deux minutes
qu'un périphérique non vital soit reconnu sur ma machine pour pourvoir
l'utiliser parce que sinon, les serveurs qui ont 40 ans ne démarrent pas
me gêne. Alors, OK, systemd est orienté desktop et pas serveur. Ça tome
bien bien, Archlinux est orienté desktop et j'ai un desktop.
En tous cas, ça me confirme qu'avant d'accepter que tout est mieux que
systemd, il me faudra des explications sur le pourquoi et pas sur le
quoi :
"I think there might be this other project that possibly is doing
something similar. I don't really know anything about it, but I'm pretty
sure it is better than systemd"
La page de wiki (pour la source) :
https://wiki.archlinux.org/index.php/Systemd

Le problème de cette page en particulier, comme de ce wiki en général,
c'est que c'est plus une liste de recettes qu'une doc. Si tu connais
systemd, c'est très bien. Si tu découvres systemd en arrivant sur
archlinux, tu fais des devinettes en espérant que ça marche. Ils
t'expliquent comment faire, mais pas pourquoi. Et se plonger dans la doc
de systemd au moment de l'installation d'un OS est quand même très
contraignant.
--
Si vous avez du temps à perdre :
https://scarpet42.gitlab.io
Avatar
JKB
Le 05 Jun 2020 10:21:44 GMT,
Stéphane CARPENTIER écrivait :
Le 04-06-2020, Yliur a écrit :
Le message en question :
https://bbs.archlinux.org/viewtopic.php?pid49530#p1149530

Ah, ben non. Moi qui voulait détester systemd, tu vas finir par faire de
moi un défenseur.
Ce qui confirme ce que j'imaginais, c'est que les raisons d'avoir migré
sont un peu plus sérieuses que pour faire comme tout le monde.
Ce qui confirme aussi ce que j'imaginais, c'est que certains trucs me
perturbaient parce que je ne me suis pas plongé dans la doc. Il y a plus
de trucs intéressants que ce que j'avais remarqué.
Je comprends aussi pourquoi les machines sous-dimensionnées de JKB ont
du mal à démarrer.

Dans l'embarqué, tu ne te trimballes pas 4 Go de mémoire pour te
faire plaisir. Je ne vois pas en quoi avoir seulement 512 Mo de
mémoire est sous-dimensionné pour l'immense majorité des cas.
Par ailleurs, certains problèmes de systemd seraient acceptables si,
par exemple, on pouvait simplement lui demander de ne pas essayer de
tout lancer en parallèle. Parce que tu as exactement le même
problème avec des postes diskless (chez moi, tout est diskless sur
un gros serveur, et certaines machines allumées une fois de temps en
temps mettent jusqu'à une demi-heure pour être utilisables, systemd
lançant tout en même temps sur des disques réseau !). Sauf erreur de
ma part, je n'ai pas trouvé dans la doc un drapeau de configuration
permettant de dire à systemd "merci de ne pas forker comme un
goret et d'être gentil en lançant tout séquentiellement".
Mais d'un autre côté, devoir attendre deux minutes
qu'un périphérique non vital soit reconnu sur ma machine pour pourvoir
l'utiliser parce que sinon, les serveurs qui ont 40 ans ne démarrent pas
me gêne.

Ce qui me dérange plus, c'est l'attente infinie sur certains
périphériques non critiques. Ou le simple fait que l'ordonnanceur ne
soit pas fiable : ce qui fonctionnait avec telle version de systemd
est fichu de ne plus se lancer dans le même ordre avec la version
suivante. Alors il est vrai que c'est sur des trucs comme des
disques iSCSI ou des choses bizarres qu'on ne retrouvera pas chez
madame Michu (enfin, normalement), mais lorsque tu redémarres une
machine, tu aimes bien que ça se comporte de manière prévisible
d'une version à l'autre. Avec systemd, ce n'est pas le cas. Ça
ressemble vraiment au démarrage de type Windows avec en plus un
petit air d'advienne que pourra.
Un autre truc m'énerve au plus haut point. Lorsqu'on choisit un
système de démarrage, on s'y tient ! Avec systemd, dans certains
cas, on ne sait plus ce qui démarre avec une compatibilité SysV en
réécrivant à la volée des modules systemd, ce qui démarre en vrai
SysV, ce qui est lancé depuis /lib/systemd/system ou /etc/systemd
voire /lib/systemd/user et /etc/systemd/user... Lorsque tu as à la
fois un module systemd et un script SysV, tu as intérêt de chercher
attentivement ce que systemd fera parce que là encore, d'une
versionà une autre, il ne se comporte pas forcément de la même
manière. J'ai pensé naïvement qu'il utilisait toujours en priorité
ses modules. Raté, ce n'est pas toujorus vrai (je n'ai pas cherché à
savoir si c'était un bug ou une fonctionnalité).
C'est un merdier sans nom d'autant plus que je suis tombé sur une
bizarrerie d'un paquet debian qui modifie /lib/systemd/system et...
qui est réécrasé à la prochaine mise à jour de systemd. J'ai perdu
trois mois sur un problème pareil.
Pourquoi est-ce que les devs de systemd n'ont pas tout mis au même endroit
en retirant /etc/init.d de l'équation ? Je ne saurais jamais. Mais
le résultat est qu'on a un truc qui explose en vol plus souvent qu'à
son tour. J'ai un exemple récent où systemd (une certaine version du
truc) empêchait le démarrage de pulseaudio sur une machine qui me sert
de serveur multimedia. Je passe sous silence les interactions pas
maîtrisées avec udev. Il y a belle lurette que j'ai forcé les
interfaces réseau de mes serveurs en ethx (en fonction de l'adresse
MAC). Il y a quelques mois, l'une des interfaces était renommée en
eth254 ! Pourquoi, parce que systemd s'était tiré une balle dans le
pied entre udev et le montage des interfaces réseaux (les scripts
étaient bons). Ça fait désordre pour ne pas dire bricolage.
Il y a aussi un truc étrange depuis quelques semaines. Lorsque mon
poste de travail (diskless avec swap en iSCSI) se met à swapper un
peu trop, systemd me ferme ma session graphique. C'est très gentil
de sa part et très pratique. Je suppose qu'il y a maintenant dans le
bouzin un genre de watchdog.
Dernière chose, et non des moindres. Les mises à jour de systemd
sont problématiques parce une nouvelle version de la chose prend
place sur une machine utilisant déjà systemd comme init (pid 1). Et
là, le redémarrage peut être problématique avec des processus
d'extinction qui ne finissent JAMAIS (attente infinie sur... rien
parce que la version du binaire a changé !).
En fait, avec systemd, on est arrivé à un état problématique. Plus
exactement, il est désespérant de voir que ce que les développeurs
de Linux il y a 20 ans reprochaient à Windows se retrouve tel quel
avec les mêmes inconvénients dans Linux.
Alors, OK, systemd est orienté desktop et pas serveur. Ça tome
bien bien, Archlinux est orienté desktop et j'ai un desktop.
En tous cas, ça me confirme qu'avant d'accepter que tout est mieux que
systemd, il me faudra des explications sur le pourquoi et pas sur le
quoi :
"I think there might be this other project that possibly is doing
something similar. I don't really know anything about it, but I'm pretty
sure it is better than systemd"
La page de wiki (pour la source) :
https://wiki.archlinux.org/index.php/Systemd

Le problème de cette page en particulier, comme de ce wiki en général,
c'est que c'est plus une liste de recettes qu'une doc. Si tu connais
systemd, c'est très bien. Si tu découvres systemd en arrivant sur
archlinux, tu fais des devinettes en espérant que ça marche. Ils
t'expliquent comment faire, mais pas pourquoi. Et se plonger dans la doc
de systemd au moment de l'installation d'un OS est quand même très
contraignant.

Après aussi, remarque bien. Systemd est piégeux, son développement
n'a visiblement pas été plus ou pas été mieux pensé que celui de PL/1.
Nouveau besoin, nouveau patch et, à la fin, on a une usine à gaz avec
des fuites qui marche dans 95% des cas. Tant pis pour toi si tu es
dans les 5% restants.
JKB
--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr
=> http://loubardes.de-charybde-en-scylla.fr
Avatar
Stéphane CARPENTIER
Le 05-06-2020, JKB a écrit :
Le 05 Jun 2020 10:21:44 GMT,
Stéphane CARPENTIER écrivait :
Je comprends aussi pourquoi les machines sous-dimensionnées de JKB ont
du mal à démarrer.

Dans l'embarqué, tu ne te trimballes pas 4 Go de mémoire pour te
faire plaisir. Je ne vois pas en quoi avoir seulement 512 Mo de
mémoire est sous-dimensionné pour l'immense majorité des cas.

OK, je croyais que c'étaient des vieux serveurs. Mais l'embarqué, si
c'est pas du serveur, c'est pas du poste de travail non plus.
OK, je ne faisais que la distinction serveur/desktop et effectivement,
l'embarqué est clairement une autre catégorie plus proche du serveur que
du poste de travail.
Par ailleurs, certains problèmes de systemd seraient acceptables si,
par exemple, on pouvait simplement lui demander de ne pas essayer de
tout lancer en parallèle.

Ça me semble dur car ça me semble prévu par design. Et effectivement, ce
que j'ai vu de systemd n'est pas fait pour l'embarqué. Tu ne peux pas
dire qu'il suffit de lire le socket en attendant que le périphérique
soit prêt on ne sait pas trop quand. Enfin pas sur de l'embarqué, sur du
poste de travail, je ne vois pas le problème.
Ce n'est pas parce que systemd est vraiment orienté poste de travail
qu'il doit être considéré comme néfaste sur les postes de travail. C'est
comme le gestionnaire de fenêtre, c'est super sur un poste de travail,
c'est plus discutable sur un serveur, sur de l'embarqué, j'ai encore
plus de mal à voir. Pourquoi le système d'initialisation devrait être le
seul composant du système d'exploitation qui devrait être identique
partout ?
Sauf erreur de je n'ai pas trouvé dans la doc un drapeau de
configuration permettant de dire à systemd "merci de ne pas forker
comme un goret et d'être gentil en lançant tout séquentiellement".

Je ne me suis pas plongé dedans, mais d'après ce que j'en comprends,
c'est by design et tu ne devrais rien trouver. Il faudrait que j'analyse
plus ce que ça fait quand j'ai dit à systemd qu'un service devait être
démarré après un autre.
Parce que par disgn, puisqu'à la place de lier directement deux
services, tu fais un socket (je ne sais plus je crois que ce n'est pas
le terme mais le principe). Du coup, tu n'as plus à t'énerver à savoir
dans quel ordre chaque composant doit se lancer, le noyau met en cache
en attendant que l'autre soit prêt. Du coup, tu lances tout en parallèle
et il n'y en a pas un qui ralenti l'autre.
Sauf que si tu es limité en mémoire avec un périphérique lent à
démarrer, la mise en cache du noyau peut saturer ta mémoire.
L'avantage, c'est que sur un poste de travail, tu peux venir avec ton
matériel et brancher et débrancher tes trucs à l'envie (je me souviens
de Windows NT où lorsque tu débranchais ta souris il fallait rebooter).
Mais c'est un avantage pour un poste de travail, sur un serveur ou un
matériel embarqué, le plug-and-play ont moins leur place.
Mais d'un autre côté, devoir attendre deux minutes
qu'un périphérique non vital soit reconnu sur ma machine pour pourvoir
l'utiliser parce que sinon, les serveurs qui ont 40 ans ne démarrent pas
me gêne.

Ce qui me dérange plus, c'est l'attente infinie sur certains
périphériques non critiques.

Ça, si je comprends ce que tu veux dire, c'est pour permettre le
plug-and-play.
Ou le simple fait que l'ordonnanceur ne soit pas fiable : ce qui
fonctionnait avec telle version de systemd est fichu de ne plus se
lancer dans le même ordre avec la version suivante.

D'après ce que je comprends de la conception, c'est que le but est
justement de ne pas avoir s'énerver avec l'ordonnanceur puisque tout est
lancé en même temps et si l'un est pas prêt, le noyau catch les messages
en attendant que l'autre soit prêt.
Du coup, je ne suis pas trop surpris que l'ordonnanceur ne soit pas
fiable. Pour moi, ça va surtout poser des problèmes sur l'embarqué ou
sur des serveurs, pas sur des postes de travail.
Alors il est vrai que c'est sur des trucs comme des
disques iSCSI ou des choses bizarres qu'on ne retrouvera pas chez
madame Michu (enfin, normalement), mais lorsque tu redémarres une
machine, tu aimes bien que ça se comporte de manière prévisible
d'une version à l'autre. Avec systemd, ce n'est pas le cas. Ça
ressemble vraiment au démarrage de type Windows avec en plus un
petit air d'advienne que pourra.

De ce que je comprends, oui, c'est le principe. Pas de lancer à la
Windows, mais de tout lancer en même temps et quand tout sera lancé tout
marchera. Si tu remarques qu'il y a un truc qui s'est bannané, tu
corriges le truc en question et tout ce qui en dépendait fonctionne (je
te parles de la théorie, là, hein, du principe, dans la vraie vie, ça
dépend : ça dépasse). Sur de l'embarqué, tu peux pas te le permettre.
Une fois que ton satellite est dans l'espace tu ne peux pas remarquer
que tu as un truc dans la main que tu as oublié de brancher. Mais sur un
poste de travail, ça a du sens.
Un autre truc m'énerve au plus haut point. Lorsqu'on choisit un
système de démarrage, on s'y tient ! Avec systemd, dans certains
cas, on ne sait plus ce qui démarre avec une compatibilité SysV en
réécrivant à la volée des modules systemd, ce qui démarre en vrai
SysV, ce qui est lancé depuis /lib/systemd/system ou /etc/systemd
voire /lib/systemd/user et /etc/systemd/user... Lorsque tu as à la
fois un module systemd et un script SysV, tu as intérêt de chercher
attentivement ce que systemd fera parce que là encore, d'une
versionà une autre, il ne se comporte pas forcément de la même
manière. J'ai pensé naïvement qu'il utilisait toujours en priorité
ses modules. Raté, ce n'est pas toujorus vrai (je n'ai pas cherché à
savoir si c'était un bug ou une fonctionnalité).

Là, oui, D'après ce que j'ai compris, le but est de permettre de
basculer en douceur de SysV à systemd. Le bon admin sys ou le bon
gestionnaire de distribution devrait donc dégager tout SysV et ne garder
que systemd. Pendant la phase de transition ou parce que quelqu'un a
décidé de garder des scripts SysV jusqu'au bout, oui, ça peut poser des
problèmes.
C'est un merdier sans nom d'autant plus que je suis tombé sur une
bizarrerie d'un paquet debian qui modifie /lib/systemd/system et...
qui est réécrasé à la prochaine mise à jour de systemd.

Mais là, si debian fait n'importe quoi avec sa gestion des
configurations, ce n'est pas un problème systemd. Il aurait pu faire
tomber n'importe quelle partie de ton système.
Pourquoi est-ce que les devs de systemd n'ont pas tout mis au même endroit
en retirant /etc/init.d de l'équation ?

Ça je ne sais pas, je ne me suis pas plongé dedans, mais quand j'ai
installé mon système, j'ai mangé pour savoir où étaient installés mes
trucs. Arriver sur systemd, c'est assez ardu, oui.
Mais le résultat est qu'on a un truc qui explose en vol plus souvent
qu'à son tour.

Chez moi c'est stable mais c'est un poste de travail.
Il y a aussi un truc étrange depuis quelques semaines. Lorsque mon
poste de travail (diskless avec swap en iSCSI) se met à swapper un
peu trop, systemd me ferme ma session graphique. C'est très gentil
de sa part et très pratique. Je suppose qu'il y a maintenant dans le
bouzin un genre de watchdog.

Le seul truc que j'ai vu sur les processus utilisateurs, c'est qu'il les
ferme sur des utilisateurs délogués. Certains considèrent que c'est un
bug, d'autre une fonctionnalité. Mais les processus utilisateurs logués,
je ne sais pas.
Dernière chose, et non des moindres. Les mises à jour de systemd
sont problématiques parce une nouvelle version de la chose prend
place sur une machine utilisant déjà systemd comme init (pid 1). Et
là, le redémarrage peut être problématique avec des processus
d'extinction qui ne finissent JAMAIS (attente infinie sur... rien
parce que la version du binaire a changé !).

Je ne sais pas si j'ai eu des maj de systemd (je suppose quand même),
mais je n'ai jamais eu de problème. Lors des maj, je regarde juste s'il
y a eu des versions du noyau pour le recopier sur le répertoire de boot.
En fait, avec systemd, on est arrivé à un état problématique. Plus
exactement, il est désespérant de voir que ce que les développeurs
de Linux il y a 20 ans reprochaient à Windows se retrouve tel quel
avec les mêmes inconvénients dans Linux.

Tu peux voir systemd comme une étape aussi. Là, on a un truc énorme qui
fait plus que de l'init. Mais d'abord, il permet de s'affranchir du
shell. Ensuite, il oblige à une certaine homogénéisation : pour
s'interfacer il faut que les autres suivent un certain formalisme. Ce
qui fait peur à certains. Mais à partir du moment où c'est un format
ouvert, c'est pas forcément choquant d'avoir une norme. Ensuite, une
fois que tout ce qui est initialisé au démarrage par systemd est
uniforme, il sera possible de remplacer systemd par un ou plusieurs
autres systèmes mieux conçus qui ne nécessiteront que les mêmes
interfaces.
Le problème de cette page en particulier, comme de ce wiki en
général, c'est que c'est plus une liste de recettes qu'une doc. Si tu
connais systemd, c'est très bien. Si tu découvres systemd en arrivant
sur archlinux, tu fais des devinettes en espérant que ça marche. Ils
t'expliquent comment faire, mais pas pourquoi. Et se plonger dans la
doc de systemd au moment de l'installation d'un OS est quand même
très contraignant.

Après aussi, remarque bien.

Peut-être, mais ça peut pas être pire qu'avant. Et j'ai moins de
contrainte après que pendant. Parce que pendant, il fallait aussi que je
découvre l'uefi par exemple. Entre autre.
Systemd est piégeux, son développement n'a visiblement pas été plus
ou pas été mieux pensé que celui de PL/1. Nouveau besoin, nouveau
patch et, à la fin, on a une usine à gaz avec des fuites qui marche
dans 95% des cas. Tant pis pour toi si tu es dans les 5% restants.

Je ne dis pas que c'est parfait systemd. Mais pour SysV c'est pas tout
rose non plus. Et pour les autres, à part dire que puisque c'est pas
systemd c'est forcément mieux, j'ai jamais vu d'explication sur leurs
points forts.
Mais pour moi, systemd, c'est un peu comme Android. Il y a des défauts,
mais ça fait son travail et je n'ai pas vu d'alternative valable.
--
Si vous avez du temps à perdre :
https://scarpet42.gitlab.io
Avatar
JKB
Le 05 Jun 2020 14:35:06 GMT,
Stéphane CARPENTIER écrivait :
Le 05-06-2020, JKB a écrit :
Le 05 Jun 2020 10:21:44 GMT,
Stéphane CARPENTIER écrivait :
Je comprends aussi pourquoi les machines sous-dimensionnées de JKB ont
du mal à démarrer.

Dans l'embarqué, tu ne te trimballes pas 4 Go de mémoire pour te
faire plaisir. Je ne vois pas en quoi avoir seulement 512 Mo de
mémoire est sous-dimensionné pour l'immense majorité des cas.

OK, je croyais que c'étaient des vieux serveurs. Mais l'embarqué, si
c'est pas du serveur, c'est pas du poste de travail non plus.
OK, je ne faisais que la distinction serveur/desktop et effectivement,
l'embarqué est clairement une autre catégorie plus proche du serveur que
du poste de travail.
Par ailleurs, certains problèmes de systemd seraient acceptables si,
par exemple, on pouvait simplement lui demander de ne pas essayer de
tout lancer en parallèle.

Ça me semble dur car ça me semble prévu par design. Et effectivement, ce
que j'ai vu de systemd n'est pas fait pour l'embarqué. Tu ne peux pas
dire qu'il suffit de lire le socket en attendant que le périphérique
soit prêt on ne sait pas trop quand. Enfin pas sur de l'embarqué, sur du
poste de travail, je ne vois pas le problème.
Ce n'est pas parce que systemd est vraiment orienté poste de travail
qu'il doit être considéré comme néfaste sur les postes de travail.

Mais je me contrefous royalement du fait qu'il peut ne pas être
néfaste sur un poste de travail. Si systemd était _juste_ un système
de démarrage, je n'aurais a priori rien contre s'il était bien
ficelé. Le problème est qu'il n'est pas que cela et que
de plus en plus de soft s'appuient sur systemd pour tourner. Et là,
c'est assez catastrophique parce que, soit tu es contraint de te
taper l'insertion dans d'autres systèmes d'init, soit tu es obligé
de faire avec systemd même si tu n'en veux pas.
C'est
comme le gestionnaire de fenêtre, c'est super sur un poste de travail,
c'est plus discutable sur un serveur, sur de l'embarqué, j'ai encore
plus de mal à voir. Pourquoi le système d'initialisation devrait être le
seul composant du système d'exploitation qui devrait être identique
partout ?

Parce qu'aujourd'hui, tu n'as pas vraiment le choix sauf à taper
dans de la distribution Linux customisée à mort. Si tu veux tourner
sur un arm, tu as bien plus intérêt à prendre une debian armhf
qu'une distribution pour l'embarqué (sauf cas très spéciaux avec des
ressources très limitées ou des composants scabreux). Pourquoi ? Parce
que ces distributions ont beaucoup plus d'utilisateurs et les bugs
sont remontés bien plus vite et corrigés. Dans les distributions pour
l'embarqué, tu peux avoir des bugs qui traînent des années (j'ai des
souvenirs cuisants avec les Mips et les iMX-6).
Sauf erreur de je n'ai pas trouvé dans la doc un drapeau de
configuration permettant de dire à systemd "merci de ne pas forker
comme un goret et d'être gentil en lançant tout séquentiellement".

Je ne me suis pas plongé dedans, mais d'après ce que j'en comprends,
c'est by design et tu ne devrais rien trouver. Il faudrait que j'analyse
plus ce que ça fait quand j'ai dit à systemd qu'un service devait être
démarré après un autre.
Parce que par disgn, puisqu'à la place de lier directement deux
services, tu fais un socket (je ne sais plus je crois que ce n'est pas
le terme mais le principe). Du coup, tu n'as plus à t'énerver à savoir
dans quel ordre chaque composant doit se lancer, le noyau met en cache
en attendant que l'autre soit prêt. Du coup, tu lances tout en parallèle
et il n'y en a pas un qui ralenti l'autre.

Ça, c'est la théorie. La théorie, c'est toujours beau dans un monde
aux ressources illimitées.
Sauf que si tu es limité en mémoire avec un périphérique lent à
démarrer, la mise en cache du noyau peut saturer ta mémoire.

Voilà.
L'avantage, c'est que sur un poste de travail, tu peux venir avec ton
matériel et brancher et débrancher tes trucs à l'envie (je me souviens
de Windows NT où lorsque tu débranchais ta souris il fallait rebooter).
Mais c'est un avantage pour un poste de travail, sur un serveur ou un
matériel embarqué, le plug-and-play ont moins leur place.

On sait faire cela sans systemd, faut pas exagérer !
Mais d'un autre côté, devoir attendre deux minutes
qu'un périphérique non vital soit reconnu sur ma machine pour pourvoir
l'utiliser parce que sinon, les serveurs qui ont 40 ans ne démarrent pas
me gêne.

Ce qui me dérange plus, c'est l'attente infinie sur certains
périphériques non critiques.

Ça, si je comprends ce que tu veux dire, c'est pour permettre le
plug-and-play.

Non. Il y a des cas très drôles d'ordre de montage de disques qui
aboutissaient une fois sur deux à un blocage au boot (un vrai, seul
moyen de s'en tirer, le bouton reset !). Rien à voir avec le
plug'n-play. J'ai aussi un cas récent (un peu particulier je
l'avoue) d'une machine qui fait tourner une petite base de données
MySQL sur un disque NFSv3/TCP. J'ai beau indiquer à systemd que
Mariadb doit être lancé après que les disques sont montés, systemd
n'en a rien à faire une fois sur deux et le service échoue. Il y a
des cas marants aussi sur les interfaces réseau avec des choses
comme les VPN. Il faut d'abord que les interfaces physiques soient
montées, puis les VPN et enfin les services dépendant de ces VPN.
Problème : si tu configures dans Apache des interfaces
explicitement, le truc se tire une balle dans le pied une fois sur
deux. Et la solution que tu trouves après avoir étudié le
fonctionnement du machin est valable pour la version n et pas pour
la n+1 la plupart du temps. Sans compter que systemd vient aussi avec
certaines versions du noyau. Et je te prie de croire que je fais la
différence entre After, Wants et les autres mots-clefs de configuration.
Il y a même des cas où des services ne démarrent pas sans aucune
explication valable (je pense à Zoneminder récemment) : tout est bon,
mais systemd échoue à le faire démarrer (alors que la même commande en
ligne de commande fonctionne parfaitement).
Ou le simple fait que l'ordonnanceur ne soit pas fiable : ce qui
fonctionnait avec telle version de systemd est fichu de ne plus se
lancer dans le même ordre avec la version suivante.

D'après ce que je comprends de la conception, c'est que le but est
justement de ne pas avoir s'énerver avec l'ordonnanceur puisque tout est
lancé en même temps et si l'un est pas prêt, le noyau catch les messages
en attendant que l'autre soit prêt.

Et c'est justement le problème. Une explosion de consommation de
ressources, de PID...
Du coup, je ne suis pas trop surpris que l'ordonnanceur ne soit pas
fiable. Pour moi, ça va surtout poser des problèmes sur l'embarqué ou
sur des serveurs, pas sur des postes de travail.

Rien à voir. Les BSD par exemple utilisent un système avec des
balises REQUIRE et PROVIDE. C'est fiable et l'ordonnanceur se
débrouille sans forker dans tous les sens. Je rajoute que j'ai deux
serveurs dans des configurations à peu près identiques, l'un sous
Linux (debian/testing), l'autre sous NetBSD 9.0. Le BSD fait le même
boulot (même plus) et démarre trois fois plus vite que le Linux. Et
je n'ai pas à croiser les doigts pour que tout démarre correctement.
Alors il est vrai que c'est sur des trucs comme des
disques iSCSI ou des choses bizarres qu'on ne retrouvera pas chez
madame Michu (enfin, normalement), mais lorsque tu redémarres une
machine, tu aimes bien que ça se comporte de manière prévisible
d'une version à l'autre. Avec systemd, ce n'est pas le cas. Ça
ressemble vraiment au démarrage de type Windows avec en plus un
petit air d'advienne que pourra.

De ce que je comprends, oui, c'est le principe. Pas de lancer à la
Windows, mais de tout lancer en même temps et quand tout sera lancé tout
marchera. Si tu remarques qu'il y a un truc qui s'est bannané, tu
corriges le truc en question et tout ce qui en dépendait fonctionne (je
te parles de la théorie, là, hein, du principe, dans la vraie vie, ça
dépend : ça dépasse). Sur de l'embarqué, tu peux pas te le permettre.
Une fois que ton satellite est dans l'espace tu ne peux pas remarquer
que tu as un truc dans la main que tu as oublié de brancher. Mais sur un
poste de travail, ça a du sens.

Pas plus en fait. Le seul intérêt de la chose est de présenter une
durée de boot la plus petite possible. Et j'avoue que ce genre de
compétition me dépasse.
Un autre truc m'énerve au plus haut point. Lorsqu'on choisit un
système de démarrage, on s'y tient ! Avec systemd, dans certains
cas, on ne sait plus ce qui démarre avec une compatibilité SysV en
réécrivant à la volée des modules systemd, ce qui démarre en vrai
SysV, ce qui est lancé depuis /lib/systemd/system ou /etc/systemd
voire /lib/systemd/user et /etc/systemd/user... Lorsque tu as à la
fois un module systemd et un script SysV, tu as intérêt de chercher
attentivement ce que systemd fera parce que là encore, d'une
versionà une autre, il ne se comporte pas forcément de la même
manière. J'ai pensé naïvement qu'il utilisait toujours en priorité
ses modules. Raté, ce n'est pas toujorus vrai (je n'ai pas cherché à
savoir si c'était un bug ou une fonctionnalité).

Là, oui, D'après ce que j'ai compris, le but est de permettre de
basculer en douceur de SysV à systemd. Le bon admin sys ou le bon
gestionnaire de distribution devrait donc dégager tout SysV et ne garder
que systemd. Pendant la phase de transition ou parce que quelqu'un a
décidé de garder des scripts SysV jusqu'au bout, oui, ça peut poser des
problèmes.

Le problème n'est pas là. Lorsque je veux utiliser un script
/etc/init.d, systemd n'a pas à intérférer là-dedans pour utiliser un
bout de /etc/systemd ou /lib/systemd (sans le dire, sinon, ce n'est
pas drôle). Point barre. Il ne sait pas mieux que moi ce que je veux
faire.
C'est un merdier sans nom d'autant plus que je suis tombé sur une
bizarrerie d'un paquet debian qui modifie /lib/systemd/system et...
qui est réécrasé à la prochaine mise à jour de systemd.

Mais là, si debian fait n'importe quoi avec sa gestion des
configurations, ce n'est pas un problème systemd. Il aurait pu faire
tomber n'importe quelle partie de ton système.

Certes. C'était juste pour indiquer l'incohérence de la chose.
Pourquoi est-ce que les devs de systemd n'ont pas tout mis au même endroit
en retirant /etc/init.d de l'équation ?

Ça je ne sais pas, je ne me suis pas plongé dedans, mais quand j'ai
installé mon système, j'ai mangé pour savoir où étaient installés mes
trucs. Arriver sur systemd, c'est assez ardu, oui.
Mais le résultat est qu'on a un truc qui explose en vol plus souvent
qu'à son tour.

Chez moi c'est stable mais c'est un poste de travail.
Il y a aussi un truc étrange depuis quelques semaines. Lorsque mon
poste de travail (diskless avec swap en iSCSI) se met à swapper un
peu trop, systemd me ferme ma session graphique. C'est très gentil
de sa part et très pratique. Je suppose qu'il y a maintenant dans le
bouzin un genre de watchdog.

Le seul truc que j'ai vu sur les processus utilisateurs, c'est qu'il les
ferme sur des utilisateurs délogués. Certains considèrent que c'est un
bug, d'autre une fonctionnalité. Mais les processus utilisateurs logués,
je ne sais pas.
Dernière chose, et non des moindres. Les mises à jour de systemd
sont problématiques parce une nouvelle version de la chose prend
place sur une machine utilisant déjà systemd comme init (pid 1). Et
là, le redémarrage peut être problématique avec des processus
d'extinction qui ne finissent JAMAIS (attente infinie sur... rien
parce que la version du binaire a changé !).

Je ne sais pas si j'ai eu des maj de systemd (je suppose quand même),
mais je n'ai jamais eu de problème. Lors des maj, je regarde juste s'il
y a eu des versions du noyau pour le recopier sur le répertoire de boot.
En fait, avec systemd, on est arrivé à un état problématique. Plus
exactement, il est désespérant de voir que ce que les développeurs
de Linux il y a 20 ans reprochaient à Windows se retrouve tel quel
avec les mêmes inconvénients dans Linux.

Tu peux voir systemd comme une étape aussi. Là, on a un truc énorme qui
fait plus que de l'init. Mais d'abord, il permet de s'affranchir du
shell.

En quoi est-ce une bonne chose ?
Ensuite, il oblige à une certaine homogénéisation : pour
s'interfacer il faut que les autres suivent un certain formalisme. Ce
qui fait peur à certains.

Effectivement, si on écrit des scripts rcorder ou SysV à l'arrache,
ça ne fonctionnera pas bien. Dans tous les systèmes, il y a un
formalisme à respecter sous peine de se prendre un coup de pied dans
les fesses.
Mais à partir du moment où c'est un format
ouvert, c'est pas forcément choquant d'avoir une norme. Ensuite, une
fois que tout ce qui est initialisé au démarrage par systemd est
uniforme, il sera possible de remplacer systemd par un ou plusieurs
autres systèmes mieux conçus qui ne nécessiteront que les mêmes
interfaces.

Pourquoi ne pas faire juste une seule fois le boulot ?
Le problème de cette page en particulier, comme de ce wiki en
général, c'est que c'est plus une liste de recettes qu'une doc. Si tu
connais systemd, c'est très bien. Si tu découvres systemd en arrivant
sur archlinux, tu fais des devinettes en espérant que ça marche. Ils
t'expliquent comment faire, mais pas pourquoi. Et se plonger dans la
doc de systemd au moment de l'installation d'un OS est quand même
très contraignant.

Après aussi, remarque bien.

Peut-être, mais ça peut pas être pire qu'avant. Et j'ai moins de
contrainte après que pendant. Parce que pendant, il fallait aussi que je
découvre l'uefi par exemple. Entre autre.

Je ne vois franchement pas le rapport.
Systemd est piégeux, son développement n'a visiblement pas été plus
ou pas été mieux pensé que celui de PL/1. Nouveau besoin, nouveau
patch et, à la fin, on a une usine à gaz avec des fuites qui marche
dans 95% des cas. Tant pis pour toi si tu es dans les 5% restants.

Je ne dis pas que c'est parfait systemd. Mais pour SysV c'est pas tout
rose non plus. Et pour les autres, à part dire que puisque c'est pas
systemd c'est forcément mieux, j'ai jamais vu d'explication sur leurs
points forts.

Le meilleur système serait un mix entre SysV et rcorder. Différents
_vrais_ runlevels (pas les trucs dégénérés de systemd) et à
l'intérieur de ces runlevels, des bouts de rcorder pour ordonner
proprement le tout. C'est un peu ce qu'on trouvait dans la Redhat
5.0 (celle de la fin des années 1990), ça ne nous rajeunit pas.
Mais pour moi, systemd, c'est un peu comme Android. Il y a des défauts,
mais ça fait son travail et je n'ai pas vu d'alternative valable.

Ah.
JKB
--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr
=> http://loubardes.de-charybde-en-scylla.fr
1 2 3 4 5