Waarom Linux systemd Is Nog steeds Verdeeldheid Na Al die Jaren

0
223
fatmawati achmad zaenuri/Shutterstock

systemd is 10 jaar oud, maar gevoelens over het in de Linux-gemeenschap nog niet waar—het is als verdeeldheid nu als het ooit was. Hoewel het wordt gebruikt door vele grote Linux-distributies, de hardcore oppositie niet relented.

De Linux Boot-Sequence

Wanneer u op uw computer, de hardware laarzen, en dan (afhankelijk van het type boot sector die uw computer gebruikt) ofwel de master boot record (MBR) voert of de Unified Extensible Firmware Interface (UEFI) is uitgevoerd. De laatste actie van deze beide is het opstarten van de Linux kernel.

De kernel is geladen in het geheugen, decomprimeert zelf, en initialiseert. Een tijdelijk bestand systeem is gemaakt in het RAM-geheugen, meestal door een utility genaamd initramfs of initrd. Dit maakt het mogelijk de vereiste stuurprogramma ‘ s te worden bepaald en geladen. Dit, op zijn beurt, maakt het voor de gebruiker-ruimte-bestand systeem te laden en voor te bereiden om de gebruiker omgeving in de ruimte.

De oprichting van de user-space-omgeving wordt uitgevoerd door het init-proces, dat is het eerste proces gestart door de kernel in een gebruikersruimte. Het is een proces-ID (PID) van 1. Alle andere processen zijn, direct of indirect, kinderen van het init-proces.

Voor systemd, de mainstream standaard voor het init-proces was een herwerking van de Unix System V init. Er waren andere opties, maar het System V init is de standaard optie in de meeste niet-Berkeley Software Distribution (BSD) afgeleide distributies. Omdat het vandaan kwam rechtstreeks uit het Systeem V Unix—de geestelijke voorvader van Linux—veel mensen beschouwen het als “de officiële manier” te doen init.

Het init proces begint alle daemons en services die nodig zijn om het besturingssysteem te werken in een zinvolle, interactieve manier. Deze daemons dingen zoals de netwerk stack, waardoor de andere hardware in de computer, en het verstrekken van een boot scherm.

Veel van deze achtergrond processen worden uitgevoerd nadat ze beginnen. Ze doen dingen als logboek van informatie, kijk voor wijzigingen in de hardware als u invoegen of verwijderen van apparaten, en het beheren van gebruikers-logins. Het is niet verwonderlijk dat de init systeem bevat ook functies voor het beheren van diensten.

We kunnen gebruik maken van ps te zien van het proces dat heeft de PID-1. Gebruiken We de f (full-formaat listing) en p (PID) opties:

ps -fp 1

We zien het proces met PID 1 is systemd. Het uitvoeren van de dezelfde opdracht op Manjaro Linux geleid tot een ander resultaat. Het proces met PID 1 is geïdentificeerd als /sbin/init. Een snelle blik op dat bestand toont een symbolische link naar systemd:

ps -fp 1
ls -hl /sbin/init

Met behulp van de ppid (parent process ID) optie met ps, we kunnen zien welke processen zijn direct gestart door systemd:

ps -f –ppid 1

Het is een vrij lange lijst, zoals je kunt zien in de afbeelding hieronder.

De Alternatieven

Verschillende projecten hebben geprobeerd om een alternatief voor de traditionele System V init. Een van de belangrijkste problemen is, met System V init, alle processen zijn gestart na elkaar, de één na de ander. Om de efficiëntie te verbeteren van de boot sequence, veel alternatieve projecten gebruik van parallellisme processen te starten gelijktijdig en asynchroon.

Hier is wat info over een aantal van deze:

  • Upstart: Ontwikkeld door Canonical, het werd gebruikt in Ubuntu 9.10, Red Hat Red Hat Enterprise Linux (RHEL) 6, CentOS 6, en Fedora 9.
  • Runit: werkt op FreeBSD en andere BSD derivaten, macOS, en Solaris, en als Linux systemen. Het is ook de standaard init systeem op Nietig Linux.
  • s6-linux-init: Deze vervanging voor System V init werd ontworpen om de voet te volgen de Unix-filosofie, die is vaak beperkt tot de sound bite “doe één ding en doe het goed.”

Er zijn vele anderen van verschillen in functionaliteit en design. Echter, geen van ze zijn gemaakt van de woede systemd deed.

De Manier systemd

systemd werd uitgebracht in 2010 en werd gebruikt in Fedora in 2011. Sindsdien is vastgesteld door veel linux-distributies. Het werd ontwikkeld door Lennart Poettering en Kay Sievers, twee software engineers van RedHat.

systemd is veel meer dan een init vervanging. Integendeel, het is een suite van ongeveer 70 binaire bestanden voor het verwerken van de initialisatie van het systeem daemons en services, logging en journaling, en vele andere functies die reeds werden behandeld door gespecialiseerde modules in Linux. De bulk van deze hebben niets te maken met de initialisatie van het systeem.

Sommige van de daemons die door systemd zijn:

  • systemd-udevd: Beheert de fysieke apparaten.
  • systemd-logind: Beheert gebruikers-logins.
  • systemd-opgelost: Geeft de naam van het netwerk resolutie voor plaatselijke toepassingen.
  • systemd-networkd: Beheert en detecteert apparaten in het netwerk, en beheert het netwerk configuraties.
  • systemd-tmpfiles: Maakt, verwijdert, en reinigt tot vluchtige en tijdelijke bestanden en mappen.
  • systemd-localed: Beheert het systeem landinstellingen.
  • systemd-mechanisch bewerkt: Detecteert en controleert de virtuele machines en containers.
  • systemd-nspawn: Kan starten met een opdracht of ander proces in een lichtgewicht naamruimte container, het geven van een vergelijkbare functionaliteit als chroot.

En dat is slechts het topje van de ijsberg, dat is ook de kern van de zaak. systemd is allang meer dan wat nodig is van een init systeem, die, volgens zijn tegenstanders, is de definitie van scope creep.

“Hij is Te Groot. Het Doet Te Veel.”

Tegenstanders van systemd wijzen op de grote, merkwaardige mix van functionaliteit met zich meebrengt. Al deze functies al in Linux, en, misschien, een aantal van hen nodig vernieuwen of een nieuwe aanpak. Echter, voor het bundelen van al deze functionaliteit in wat wordt verondersteld een init systeem is architectonisch een raadsel.

systemd is wel een single point of failure te veel belangrijke functies, maar dit lijkt niet te rechtvaardigen. Toegegeven, het gooit de Unix filosofie van het maken van kleine hulpprogramma ‘ s die samenwerken in plaats van grote stukken van de software die alles uit het raam. Terwijl systemd is niet strikt monolithische (zij bestaat uit vele binaire bestanden in plaats van één groot), het omvat veel uiteenlopende management tools en commando ‘ s onder één paraplu.

Terwijl het misschien niet monolithisch, het is groot. Om een idee te krijgen van de schaal, we tellen de regels van de tekst in de kernel 5.6.15 codebase en de systemd master branch van de GitHub repository.

Dit was een relatief ruwe gegeven. Telde de lijnen van de tekst, niet alleen de regels van de code. Zo, dit waren opmerkingen, documentatie, en alles anders. Echter, het was een like-for-like vergelijking en gaf ons een eenvoudige maatstaf:

( vinden ./ -name ‘*.*’ -print0 | xargs -0 kat ) | wc-l

De kernel had bijna 28 miljoen (27,784,340, om precies te zijn) regels tekst. Door contrast, systemd had 1,349,969, of bijna 1,4 miljoen. Met onze happy-go-lucky gegeven, systemd komt uit op ongeveer 5 procent van de grootte van de kernel, die is gek!

Als een andere vergelijking, de lijn rekenen voor een moderne uitvoering van het System V init voor de Arch Linux distributie kwam 1,721 lijnen.

Poettering duidelijk heeft geen aandacht voor de Institute of Electrical and Electronics Engineers (IEEE Computer Society, noch de Portable Operating System Interface (POSIX) standaard. In feite, hij moedigde de ontwikkelaars te negeren POSIX:

“Zo, krijg je een kopie van De Linux Programming Interface, het negeren van alles wat het zegt over de POSIX-compatibiliteit en hack afstand van uw geweldige Linux software. Het is heel verlichten!”

Er zijn beschuldigingen dat systemd is een Red Hat project dat alleen voordelen, Red Hat, maar het wordt van kracht-gevoerd naar de bredere Linux wereld. Ja, het was geboren in de Rode Hoed en wordt bestuurd en aangestuurd door het. Echter, van de 1,321 medewerkers, slechts een fractie werk voor Red Hat.

Dus, wat zijn de voordelen voor de Rode Hoed?

Jim Whitehurst, de president van IBM, die was ooit de CEO van Red Hat, zei:

“Red Hat beschouwd vele beschikbare opties en zelfs gebruikt Canonieke de Parvenu voor Red Hat Enterprise Linux 6. Uiteindelijk kozen we voor systemd want het is de beste architectuur die zorgt voor de uitbreidbaarheid, eenvoud, schaalbaarheid en goed gedefinieerde interfaces om de problemen die we vandaag de dag zien en voor de toekomst.”

Whitehurst ook zei ze zagen voordelen in embedded systemen, ook. Red Hat partners met “de grootste ingesloten leveranciers in de wereld, met name in de telecom en automotive industrie, waar de stabiliteit en de betrouwbaarheid is zorg nummer één.”

Deze lijken als technisch deugdelijke motivering. U kunt begrijpen de noodzaak voor betrouwbaarheid, en het is niet onredelijk voor Red Hat om uit te kijken naar zijn eigen belang, maar moet iedereen volgen?

Het drinken van de systemd Kool-Aid?

Sommige tegenstanders van systemd zeggen uitkeringen en mensen zijn gewoon blind volgende Red Hat ‘ s leiden en de vaststelling van het.

Echter, net als de zin “het drinken van de Kool-Aid,” dat is niet helemaal goed. Bedacht in 1978 na sekteleider Jim Jones, gedwongen zijn meer dan 900 volgers zelfmoord te plegen door het drinken van een druif-op smaak gebrachte vloeistof, doorspekt met cyanide, de zin verkeerd schande Kool-Aid. De groep eigenlijk dronk Smaak Steun, maar Kool-Aid is geteerd door die kwast sinds.

Plus, Linux-distributies niet blindelings volgende Rode Hoed; ze vaststelling van systemd na ernstig beraad. Het debat woedde op de Debian mailinglists voor een lange tijd. Echter, in 2014, de gemeenschap gestemd te nemen systemd als de standaard init systeem, maar ook de ondersteuning van alternatieven.

Debian is een belangrijk voorbeeld, want het is niet afgeleid van RedHat, Fedora, of CentOS. Er is geen tussendek toegepast op Debian van Red Hat. En Debian, zoals PID 1 heeft vele nakomelingen, met inbegrip van Ubuntu en de vele spin-offs.

De beslissingen van de Debian-gemeenschap zijn verstrekkend. Ze zijn ook sterk bediscussieerd en gestemd over het gebruik van de Condorcet stemmen methode. De gemeenschap, niet het maken van dergelijke keuzes licht, hetzij.

Het weer gestemd in December 2019 te blijven richten op systemd en te blijven zoeken naar alternatieven. Het tegenovergestelde van blind het volgende, dit is eigenlijk een schoolvoorbeeld van democratie en vrijheid van keuze op het werk.

De Beperkingen van de Keuze

U hoeft over het algemeen niet krijgen om te kiezen of u gebruik wilt maken van systemd met een bepaalde Linux-distributie. Integendeel, de uitkeringen zelf kiezen of ze willen om het te gebruiken, en u kunt kiezen welke Linux distro u de voorkeur geeft. Misschien is een Linux distributie die je liefde overgestapt naar systemd. Als een favoriete muzikant die veranderingen genres, dit kan schokkend.

Mensen die gebruik maken van Debian, Fedora, CentOS, Ubuntu, Arch, Solus, en openSUSE, en voorwerp van de aanneming van systemd, misschien voelen ze worden weggedrukt van het gebruik van de distributie van de keuze. Als ze het gevoel sterk genoeg is over de architecturale keuzes, scope creep, of minachting voor POSIX, ze vinden het misschien niet houdbaar te houden met de verdeling.

Er is een spectrum, natuurlijk. Aan de ene kant, je hebt de mensen die het niet begrijpen van de problemen (of zelfs zorg), en bij de andere heb je de gepassioneerde bezwaarden. Ergens in het midden zijn degenen die niet van veranderingen, maar zijn niet lastig genoeg over het schip springen. Maar hoe zit het met de verdeling van de vluchtelingen, die niet kunnen blijven op hun gekozen distributie door hun voorkeuren of principes?

Helaas, het is niet zo eenvoudig als de installatie van welke init systeem dat u wilt. Niet iedereen heeft de technische mogelijkheid om dat te doen, nevermind de moeilijkheden die ontstaan wanneer toepassingen of desktop omgevingen zoals GNOME, afhankelijk van systemd.

Wat over het verplaatsen naar een andere distributie? Sommige, zoals Devuan, verschenen als niet-systemd vorken van uitkeringen (in dit geval, Debian), die had vastgesteld systemd. Met behulp van Devuan moet gelijk zijn aan de bovenliggende distributie, maar dat is niet het geval voor alle niet-systemd vorken. Bijvoorbeeld, als je Fedora en verplaatsen naar AntiX, Gentoo of Slackware, je gaat naar een heel andere ervaring.

Het is Niet Overal te Gaan

Ik hou van wat systemd is (eenvoudige en gestandaardiseerde controle mechanismen voor processen). Ik begrijp de beweegredenen voor wat het doet (binaire logs). Ik heb ook een hekel aan sommige van wat het doet (het opknappen van home-mappen—wie vroeg dat?).

Distributies zoals Debian doet het heel slim en het onderzoeken van alternatieven om haar opties open. Echter, systemd is in het voor de lange termijn.

Als u het beheren van Linux-machines voor anderen, leren systemd en u weet het System V init. Op deze manier, maakt niet uit welke je tegenkomt, zult u in staat om uw taken.

Gebruik gewoon Linux thuis? Als dat zo is, kies een verdeling die zowel voldoet aan uw technische behoeften en vormt een aanvulling op uw Linux-ideologie.

GERELATEERD: Systemd Zal Veranderen Hoe Je Linux Home Directory Werkt

LEES VERDER

  • “Hoe u het Formaat van Uw Start-Menu in Windows 10
  • “Wat Is Google Voldoen, en Hoe Kan Je Het Gratis Gebruiken?
  • “Duurt Het Echt 60 Seconden om het Spoor van een telefoongesprek?
  • “Hoe te handelen met Andere Spelers in ‘Animal Crossing: New Horizons”
  • “Wat Doet “IDK” Betekenen, en Hoe Gebruik Je Het?