Demystificerend SystemD

Elke dag worden onze computers een steeds belangrijker onderdeel van ons leven; als ze problemen hebben, heeft dat invloed op ons humeur, onze humor, haha. Windows-gebruikers zijn natuurlijk vatbaarder voor paniekaanvallen: virussen ( lang leve Linux! ), het defragmenteren van de harde schijf, het zoeken en installeren van Clean Master voor pc ( hoewel we hier in Linux ook het systeem moeten opschonen; BleachBit is een van de aanbevolen alternatieven ). De laatste tijd ervaren sommige Linux-gebruikers een bepaalde hoofdpijn genaamd systemd.

Goed, om tot de kern van de zaak te komen: ik heb een interessant artikel gelezen over systemd , dat tegenwoordig erg populair lijkt te zijn.

Systemd , dat door sommigen ( en ik gebruik de woorden van een vriend ) wordt beschouwd als "de ultieme oplossing "... staat anderen onverschillig; zolang de computer maar goed werkt, maakt het hen niet uit of init dit of dat doet, of dat systemd wordt gebruikt. Wat mij betreft, nou ja... laten we zeggen dat ik de voorkeur geef aan init; ik vind het eenvoudiger.

Ik laat het artikel hier achter:

Voordat ik begin, moet ik zeggen dat ik het absoluut niet eens ben met de beslissing om dingen in Debian te veranderen, maar ik ben niet van plan mijn geliefde spiraal te verlaten. Ik probeer er alleen voor te zorgen dat we, als we een onderwerp gaan bespreken, dat zo goed mogelijk voorbereid doen, ook al beschouw ik mezelf niet als een voorstander van systemd. Om systemd te ontmystificeren, zal ik gebruikmaken van een website waar ontwikkelaars hun perspectieven delen . Deze website kwam onder mijn aandacht via een collega die wél een voorstander van systemd lijkt te zijn, hoewel hij geen Debian-gebruiker is. Nu ik dat gezegd heb, denk ik dat ik kan proberen de misvattingen over systemd te verduidelijken.

systemd is binair gebaseerd

Misschien is dit een van de aspecten die ons het meest choqueren, als alles op binair is gebaseerd, hoe kunnen we dan de dingen die we gewoonlijk doen door middel van logboeken volgen? Ik heb geen idee hoe deze mythe is ontstaan, maar het is niet absoluut waar.

systemd wordt bijna uitsluitend geconfigureerd via platte tekstbestanden. Sommige instellingen kunnen ook worden gewijzigd met de kernelopdrachtregel en via omgevingsvariabelen. Er is niets binair in uw configuratie (zelfs geen XML). Gewoon een eenvoudig, duidelijk en gemakkelijk te lezen tekstbestand.

systemd fans homer simpson

Dat ding is monolithisch en controleert alles

Voordat ik de bovengenoemde website bereik, moet ik bekennen dat ik zelf zo dacht, maar na het lezen van wat de ontwikkelaars zeggen, heeft mijn mening iets veranderd ...

Als je systemd compileert met alle configuratieopties ingeschakeld, compileer je 69 afzonderlijke binaire bestanden . Deze binaire bestanden vervullen verschillende taken en zijn om diverse redenen zorgvuldig van elkaar gescheiden. Zo is systemd bijvoorbeeld ontworpen met beveiliging in het achterhoofd; daarom draaien de meeste daemons met minimale privileges (bijvoorbeeld door gebruik te maken van kernelmogelijkheden) en zijn ze alleen verantwoordelijk voor zeer specifieke taken, waardoor hun beveiligingsrisico en impact minimaal zijn. Bovendien paralleliseert systemd het opstarten meer dan welke eerdere oplossing dan ook. Deze "parallelisering" wordt bereikt door meerdere processen parallel uit te voeren. Het is dus duidelijk dat systemd zeer goed is opgedeeld in vele binaire bestanden en, bijgevolg, processen. Sterker nog, veel van deze binaire bestanden zijn zo goed gescheiden dat ze ook buiten systemd zeer nuttig zijn.

Een pakket met 69 afzonderlijke binaire bestanden kan moeilijk monolithisch genoemd worden . Wat echter verschilt van eerdere oplossingen, is dat we meer componenten in één tarball leveren en deze in één repository met een uniforme releasecyclus aan elkaar koppelen.

Dat lijkt niet op Unix

Daar zit zeker een kern van waarheid in. De systeembronbestanden bevatten geen enkele regel code van de originele UNIX-regels. De inspiratie is echter afgeleid van UNIX, en dus zit er veel UNIX in systemd. Een voorbeeld zou het UNIX-idee zijn "alles is een bestand" dat tot uiting komt doordat in systemd alle services tijdens runtime worden weergegeven in een kernelbestandssysteem, de cgroepfs. Een van de oorspronkelijke kenmerken van UNIX was dus ondersteuning voor meerdere stoelen, gebaseerd op ingebouwde terminalondersteuning. Met systemd hebben we weer native ondersteuning voor meerdere stoelen gebracht, maar deze keer met volledige ondersteuning voor de hardware van vandaag, met afbeeldingen, muizen, audio, webcams en meer. In feite is het ontwerp van systemd als een reeks geïntegreerde tools die elk hun eigen doelen hebben, maar wanneer ze samen worden gebruikt, meer zijn dan de som der delen, wat min of meer de kern vormt van de UNIX-filosofie. Dus de manier waarop ons project wordt afgehandeld (d.w.z. het grootste deel van de kernel van het besturingssysteem in een enkele git-repository houden) ligt veel dichter bij het BSD-model (dat een echte UNIX is, in tegenstelling tot Linux) om dingen voor elkaar te krijgen (waarbij het grootste deel van het kernbesturingssysteem in een enkele CVS / SVN-repository wordt bewaard), wat nooit het geval was onder Linux.

Uiteindelijk doet de vraag of iets UNIX is of niet, er weinig toe. Omdat het technisch uitstekend is, is het nauwelijks uniek voor UNIX. Voor ons is UNIX een grote invloed (in feite de grootste), maar we hebben ook andere invloeden. Daarom zal systemd in sommige gebieden erg UNIX zijn, en in andere iets minder.

Dat is erg complex ...

Daar zit zeker een kern van waarheid in. Moderne computers zijn complexe beesten en het besturingssysteem dat erop draait zal dat natuurlijk ook zijn, dus ze moeten complex zijn. Systemd is echter zeker niet complexer dan eerdere implementaties van dezelfde componenten. Het is eenvoudiger en heeft minder redundantie. Aan de andere kant zal het bouwen van een eenvoudig systeemgebaseerd besturingssysteem veel minder pakketten met zich meebrengen dan bij traditioneel Linux-gebruik. Minder pakketten maakt het gemakkelijker om uw systeem te bouwen, het verwijdert de onderlinge afhankelijkheden en veel van het verschillende gedrag van alle betrokken componenten.

Dat laat me geen shell-scripts gebruiken

Dit is volkomen onjuist. We gebruiken ze simpelweg niet voor het opstartproces omdat we vinden dat ze daarvoor niet de beste tool zijn, maar dat betekent niet dat systemd er niet mee compatibel is. Je kunt shellscripts gemakkelijk als systemd-services of -daemons uitvoeren; je kunt scripts in elke programmeertaal als systemd-services uitvoeren, aangezien systemd er helemaal niet om geeft wat er in je uitvoerbare bestand staat. Bovendien gebruiken we shellscripts zelf veelvuldig: voor het installeren, compileren en testen van systemd. En je kunt de scripts in het opstartproces plakken, ze gebruiken voor normale services, ze uitvoeren tijdens het afsluiten – er zijn praktisch geen grenzen.

Op dit punt zijn, denk ik, een aantal van de belangrijkste overtuigingen wellicht verduidelijkt. Hoewel ik mezelf niet beschouw als een voorstander van verandering en mijn bedenkingen heb bij het idee van " één demon die over alles heerst ", denk ik dat uiteindelijk niemand zal durven beweren dat het helemaal niet werkt. Ik ken zelfs gebruikers die merken dat "de pc sneller draait" met systemd, maar dat is een onderwerp voor een andere discussie. Voorlopig kan ik jullie alleen maar uitnodigen om hier jullie standpunten te bespreken over het init-systeem dat door veel distributies is overgenomen, hoewel de sterkste reacties momenteel te zien zijn binnen de Debian-gemeenschap, die hierdoor zelfs een nieuwe fork heeft voortgebracht. Of je het nu leuk vindt of niet, is een persoonlijke kwestie; wat mij betreft wil ik gewoon mijn steentje bijdragen om systemd te ontmystificeren, dat uiteindelijk aanwezig zal zijn in Jessie, de volgende stabiele versie van Debian.

Ik zag het artikel op GUTL (dat op zijn beurt weer van DesdeAbreus afkomstig was ).

poëzie-1984

Systemd actueel?

Ik ben een van degenen die niet veel nieuws leest als iets zoveel controverse veroorzaakt, ik blijf liever bij meer technische details. Het ding is…. Soms heb ik het gevoel dat bepaalde onderwerpen niet langer een puur technische discussie of debat zijn, maar een van die showbizz-roddels worden 

Eerst een openlijke tirade van een gebruiker over systemd, getiteld "systemd VS intelligence" , vervolgens Linus Torvalds die zegt dat systemd niet zo slecht is als men beweert ( en hij heeft een punt ), een fork genaamd uselessd ... geen commentaar... en om een ​​lang verhaal kort te maken, uiteindelijk Devuan.

Ik ga niet zeggen of het zo slecht is als ze zeggen, minder slecht of erger. Het systeem werkt prima voor mij, maar persoonlijk geef ik de voorkeur aan init, omdat ik de manier waarop het verschillende dingen organiseert (zoals logs bijvoorbeeld) prettiger vind. Maar goed, als systemd een racepaard genoemd gaat worden en init moet vervangen ( zou het ons werkpaard zijn, dat alles doet maar dan langzaam? ), nou ja... zolang de verandering niet te drastisch is, gebruikers zich zonder al te veel moeite kunnen aanpassen en het systeem beter werkt (ja, beter, misschien is dat voor mij niet genoeg!), dan verwelkom ik het! 😉


Voeg dit toe als voorkeursbron in Google.