<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog de Gnux &#187; systemd</title>
	<atom:link href="https://blog.developpez.com/gnux/ptag/systemd/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/gnux</link>
	<description>Trucs et astuces autour du logiciel libre</description>
	<lastBuildDate>Tue, 25 Jun 2013 10:04:27 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>La question &#171;&#160;systemd&#160;&#187;&#8230;</title>
		<link>https://blog.developpez.com/gnux/p11445/linux/la-question-systemd</link>
		<comments>https://blog.developpez.com/gnux/p11445/linux/la-question-systemd#comments</comments>
		<pubDate>Sun, 21 Oct 2012 14:35:40 +0000</pubDate>
		<dc:creator><![CDATA[Gnux]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Logiciels]]></category>
		<category><![CDATA[systemd]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/gnux/?p=78</guid>
		<description><![CDATA[Ou &#171;&#160;comment Arch Linux est-elle devenue une distro Linux comme les autres?&#160;&#187; Systemd est un nouveau système d&#8217;amorçage pour les systèmes Linux. En fait au démarrage il existe un premier processus qui est l&#8217;ancêtre de tous les processus du système. &#8230; <a href="https://blog.developpez.com/gnux/p11445/linux/la-question-systemd">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Ou &laquo;&nbsp;comment <a href="http://www.archlinux.org/" target="_blank">Arch Linux</a> est-elle devenue une distro Linux comme les autres?&nbsp;&raquo;</p>
<p><a href="http://www.freedesktop.org/wiki/Software/systemd" title="Systemd website" target="_blank">Systemd</a> est un nouveau <a href="http://fr.wikipedia.org/wiki/Init" title="init wp" target="_blank">système d&rsquo;amorçage</a> pour les systèmes Linux. En fait au démarrage il existe un premier processus qui est l&rsquo;ancêtre de tous les processus du système. Le PID 1, init. Il est lancé par le noyau et c&rsquo;est lui qui est chargé de vous amener à bon port vers un système utilisable en lançant les processus utiles. Son importance est donc capitale.</p>
<p>Systemd est une tentative pour améliorer ce qui se faisait avant, c&rsquo;est-à-dire les SysVinit. Ou les initscripts sous Arch Linux. Je dois dire que j&rsquo;étais plutôt sceptique au début en particulier concernant les diverses contraintes techniques qui, au final, ne se justifiaient que pour une chose: une grande rapidité de boot, voire <a href="http://lwn.net/Articles/511193/" title="Explication vaseuse" target="_blank">faciliter la vie des développeurs upstream</a>. Moi je ne cherche pas vraiment la rapidité, je trouvai ça rapide d&rsquo;ailleurs avec initscripts, mais plutôt le contrôle pointilleux des daemons lancés. Ce principe très Unix qui veut que par défaut aucun service ne soit lancé, sauf ceux dont on a <strong>explicitement</strong> souhaité le lancement dans un fichier plain-text. Ce qui est très simple. Plus simple à mon sens que d&rsquo;utiliser chkconfig ou systemctl.</p>
<p>C&rsquo;est pour cela que j&rsquo;aimais tellement Arch Linux: cela m&rsquo;offrait les avantages de <a href="http://www.freebsd.org/fr/" target="_blank">Free BSD</a> (un rc.conf pour mes daemons + un système de paquets fiable et efficace) sans les inconvénients (temps de compilation pour obtenir via les ports des paquets &laquo;&nbsp;edge&nbsp;&raquo;). Sans compter que l&rsquo;approche <a href="http://en.wikipedia.org/wiki/Do_it_yourself" title="DiY" target="_blank">DiY</a> couplée à la <a href="https://wiki.archlinux.org/index.php/The_Arch_Way" target="_blank">philosophie KISS</a> qui n&rsquo;était pas sans me rappeler <a href="http://slackware.com/" title="Slackware" target="_blank">Slackware</a> me convenaient plutôt pas mal. Bref, j&rsquo;avais trouvé chaussure à mon pied, et je coulais depuis des <del datetime="2012-10-21T14:02:40+00:00">jours</del> années très heureuses.</p>
<p>Alors là voir débarquer ce logiciel monolithique sans ficher de configuration unique mais avec plein de fichiers &laquo;&nbsp;units&nbsp;&raquo; et des liens symboliques dans tous les sens. Voir les dépendances précoces comme dbus ou encore le rc.conf devenir &laquo;&nbsp;DEPRECATED&nbsp;&raquo;. Ca m&rsquo;a mis un coup, pour dire le moins. Notez que <a href="https://bbs.archlinux.org/viewtopic.php?id=147272" target="_blank">je suis pas le seul</a>&#8230;</p>
<p>Néanmoins avant de jeter l&rsquo;anathème, il faut tester. Se faire sa propre opinion. Je viens de faire un premier test d&rsquo;une &laquo;&nbsp;mixed installation&nbsp;&raquo; à la <a href="http://bit.ly/OTz5T5" target="_blank">Arch</a> et, franchement, la rapidité de boot est à première vue stupéfiante. Sur ma machine de bureau où beaucoup de daemons sont lancés en background, via @, dans mon rc.conf. A la maison, cela ne change quasiment rien quant au temps de boot, par contre, j&rsquo;ai retrouvé ce pour quoi je n&rsquo;utilisais plus les distros mainstream habituelles (Debian, Mandriva etc&#8230;). Ce qui m&rsquo;agaçait au plus haut point: des services qui sont démarrés alors que je ne l&rsquo;ai JAMAIS demandé et que je ne les utiliserai jamais. C&rsquo;est ainsi qu&rsquo;au premier boot de ma machine perso sous systemd j&rsquo;ai vu le daemon &laquo;&nbsp;colord&nbsp;&raquo; pour la détection des scanners qui s&rsquo;est lancé. Je n&rsquo;ai jamais eu de scanners sur cette machine et n&rsquo;en aurait jamais. Alors il faut faire une systemctl disable comme sous Debian je faisais un chkconfig stop &#8230; Il va me falloir _lire_ les logs pour _désactiver_ ce dont je n&rsquo;ai pas besoin. Plutôt que d&rsquo;éditer un fichier pour _préciser_ ce que _je veux_. Et ça je n&rsquo;aime pas, j&rsquo;aime qu&rsquo;on me demande ce que je veux directement, plutôt que de devoir perdre du temps à l&rsquo;obtenir&#8230;</p>
<p>Seulement voilà, le journal de systemd se veut totalement innovant comme le reste.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># less system.journal <br />
&quot;system.journal&quot; may be a binary file. &nbsp;See it anyway?</div></div>
<p>Eh oui, les logs sont stockés par défaut au format binaire. Voilà le truc vachement pratique pour faire une p&rsquo;tit fgrep ni vu ni connu.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># fgrep -i samsung system.journal <br />
Fichier binaire system.journal concordant</div></div>
<p>C&rsquo;est là que l&rsquo;on réalise toute la portée de cette <a href="http://en.wikipedia.org/wiki/Unix_philosophy#McIlroy:_A_Quarter_Century_of_Unix" title="Unix Philosophy" target="_blank">phrase</a>: &laquo;&nbsp;Write programs to handle text streams, because that is a universal interface.&nbsp;&raquo; Bref, pour cela il faut passer par journalctl:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># journalctl | grep -i samsung<br />
Oct 21 14:04:59 mnemosyne kernel: ata1.00: ATA-8: SAMSUNG HM160HC, LQ100-10...00<br />
Oct 21 14:05:02 mnemosyne systemd[1]: Found device SAMSUNG_HM160HC.<br />
Oct 21 14:05:02 mnemosyne systemd[1]: Found device SAMSUNG_HM160HC.<br />
Oct 21 14:05:02 mnemosyne systemd[1]: Found device SAMSUNG_HM160HC.</div></div>
<p>Bon c&rsquo;est pas si mal&#8230;Et il est même possible d&rsquo;utiliser une bidouille en plus pour retrouver syslog et les logs unix plain-text facilement greppable. Mais bon&#8230;</p>
<p>Mon avis est donc mitigé sur systemd, j&rsquo;avoue que je suis attaché aux vieux principes Unix comme le fait de tout fermer pour n&rsquo;ouvrir qu&rsquo;au besoin (au boot comme au firewall!), ou encore le fait d&rsquo;avoir principalement des fichiers plain-text tout à fait manipulables. Ceci dit, la rapidité de boot est visible, la transition de service/chkconfig est transparente et les units sont simples et bien construites. <strong>Systemd est un très bon logiciel, c&rsquo;est juste que ce n&rsquo;est pas la façon dont j&rsquo;aime concevoir mon boot.</strong> Mais je pense vraiment que ça vaut le coup de se pencher dessus et de faire des efforts pour apprendre à s&rsquo;en servir.<br />
C&rsquo;est son adoption par Arch Linux qui me fait noircir le tableau de systemd. Je suis TRES déçu de voir que cette distro&rsquo; a bradé son originalité et ce qui, pour moi, faisait tout son intérêt. Elle s&rsquo;est banalisée en revenant sur certains de ses principes fondateurs plus orienté vers BSD. Au final, aujourd&rsquo;hui, je peux tout aussi bien installer une Mandriva, je n&rsquo;aurai pas de rc.conf (qui a été vidé de sa substance sous Arch) et je n&rsquo;aurai pas besoin (encore!) d&rsquo;apprendre les commandes systemd, bien que cela me semble utile puisque toutes les distros l&rsquo;adoptent&#8230;<br />
Il y a de fortes chances que je teste <a href="http://crux.nu/" target="_blank">Crux</a> ou encore, carrément, <a href="http://linuxfr.org/news/netbsd-6-0" target="_blank">NetBSD</a>. Oui, peut-être est-il carrément temps pour moi de retourner sous BSD&#8230;Mieux vaut l&rsquo;original que la copie non?</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>
