bootloader

Upstart - Hoe is het beter of slechter dan de anderen??

Upstart - Hoe is het beter of slechter dan de anderen??
Toen Upstart voor het eerst werd bedacht door Canonical, was het heersende systeem nog steeds sysvinit, dat alles in de juiste volgorde begon en daarna min of meer stopte. Het zorgde er wel voor dat het systeem ook gracieus werd afgesloten. Dit maakte het noodzakelijk om andere oplossingen te hebben voor hot-plugging apparaten zoals USB-sticks en dergelijke. Het belangrijkste idee van de ontwerpers was om het evenementgestuurd te maken, dit maakte het gemakkelijk om de genoemde hot-plugging-evenementen af ​​te handelen. Upstart kan ook ongewijzigde sysvinit-scripts uitvoeren, dus u kunt migreren naar Upstart met slechts een installatie. Dit project bevindt zich alleen in de onderhoudsmodus, dus gebruik dit bericht als een interessant stuk. U kunt dit systeem tegenkomen in oude bijgewerkte systemen.

Hoe verschilt Upstart??

Upstart heeft een model voor het starten van een beschikbare baan wanneer de gebeurtenis plaatsvindt. Vergelijk dit met system, dat processen start waarop alle andere systemen draaien. Het belangrijkste verschil is dat Upstart op gebeurtenissen wacht en systemd afhankelijkheden coördineert. Beide systemen kunnen reguliere scripts uitvoeren en beide proberen parallel te starten. Omdat de verschillen zo klein zijn, kunnen Upstart-scripts meestal gewoon worden aangeroepen met een systemd-servicebestand. Ze kunnen ook beide ongewijzigde systemV-bestanden uitvoeren run. In feite zoeken beide standaard naar een oude systemV-bestandsstructuur. Het grote verschil is dat Upstart zoekt naar gedefinieerde gebeurtenissen om iets te starten. Dus als je je eigen service wilt toevoegen, moet je uitzoeken in welke context je je service nodig hebt. Meestal is dit gemakkelijk, omdat je iets wilt dat bijvoorbeeld op je bureaublad draait. De desktop begint met event runlevel 5, dus dat stel je in in je script. Voor systemd daarentegen is dit het grafische doel. In upstart heb je ook andere evenementen die je kunt gebruiken, zoals montage, gemonteerd en toetsenbordverzoek. Deze worden afgehandeld met systemd through sockets en dbus.

Hoe migreer je scripts?

Je hebt alle Upstart-scripts in /etc/init, hun namen zijn taaknaam met een 'conf'-extensie. De scripts zijn niet uitvoerbaar, ze verwijzen alleen naar één of meer uitvoerbare bestanden die moeten worden uitgevoerd. In alle Upstart-scripts hebt u gedefinieerd op welke gebeurtenis het script moet starten en wanneer het moet stoppen. U moet ook pre-start- en post-stop-items hebben. Deze zullen de omgeving voorbereiden en opruimen na uitvoering. Een voorbeeldscript staat hieronder:

omschrijving "Een eenvoudig script"
start op runlevel [2345]
stop op runlevel [06]
respawn
env SCRIPT_ENV_VAR='/pad/naar/bestand.configuratie'
chdir /pad/naar/script/
exec bash-script.sh

De 'exec'-instructie zegt wat er zal gebeuren als je het handmatig start. De start- en stoprichtlijnen bepalen wanneer het script automatisch wordt gestart. Zoals je kunt zien, kun je ook de map instellen waarin het wordt uitgevoerd. Er zijn veel meer aspecten aan Upstart, maar u moet leren hoe u eruit kunt migreren.

Om dit script in systemd te laten werken, moet u een servicebestand maken.

Eenheid]
Description=Een eenvoudig script
[Onderhoud]
Omgeving= SCRIPT_ENV_VAR =/pad/naar/bestand.configuratie
WorkingDirectory=/pad/naar/script
ExecStart=/usr/bin/bash-script.sh
Opnieuw opstarten=altijd
[Installeren]
WantedBy=meerdere gebruikers.doelwit

Hier kun je zien dat dezelfde dingen gebeuren, maar met andere trefwoorden. Het formaat is eenvoudig en to the point. In plaats van runlevels te hebben, wijs je naar welk doel je script wil. Dit benadrukt dat systemd alles te maken heeft met afhankelijkheid en dingen starten voor de specifieke omgeving specific. Merk ook op dat de ExecStart naar een globaal pad verwijst, het gebruikt nooit een lokaal pad.

Waar blinkt het uit??

Upstart is ontworpen voor parallel gedrag, maar is ook ontworpen om klein te zijn. Als je dit ergens nog steeds vindt, is het in embedded systemen en ChromeOS. Ja, ChromeOS had het. De reden is dat het vanaf het begin bovenop is gebouwd als Ubuntu, op het moment dat Ubuntu een nieuw begin had als het standaard initiële systeem. ChromeOS is sindsdien overgegaan op het gebruik van Gentoo als basis.

Conclusie

Upstart is een interessant onderwerp, maar vooral historisch. Je hebt het misschien alleen nodig als je oude systemen tegenkomt. Het meest voorkomende alternatief op Linux is nu systemd. Als je bedenkingen hebt met betrekking tot systemd, moet je op zoek gaan naar andere minimale systemen. Een interessante is de suckless, sinit. Het ondersteunt drie signalen en je moet er zelf alle scripts voor schrijven, of de scripts van iemand anders aanpassen. Dit kan een interessante oefening zijn, maar is alleen nuttig als je aan een zeer minimaal en gespecialiseerd systeem werkt.

Top 5 Game Capture-kaarten
We hebben allemaal gezien en genoten van streaming gameplays op YouTube. PewDiePie, Jakesepticye en Markiplier zijn slechts enkele van de beste gamers...
Hoe een spel op Linux te ontwikkelen
Tien jaar geleden zouden niet veel Linux-gebruikers voorspellen dat hun favoriete besturingssysteem ooit een populair spelplatform voor commerciële vi...
Open source-poorten van commerciële game-engines
Gratis, open source en platformonafhankelijke game-engine-recreaties kunnen worden gebruikt om zowel oude als enkele van de vrij recente gametitels te...