Vad på jorden är Dracut?
NyheterDracut är ett nytt system för att generera, på samma sätt för alla Gnu / Linux-distributioner, de speciella programmen och filerna som gör Linux-start.
Linux Format bestämde sig för att ta reda på mer.
F. OK, nu förstår jag vad vi pratar om. Men vad är det som initramfs sak?
en. Låt mig kolla något innan jag svarar på den frågan. Du kommer ihåg att Linux bara är en kärna, och vad är gränserna, inte du?
Q. Er ... säkert. Ja självklart gör jag det. Linuxkärnan ...
en.... är den grundläggande mjukvaran som utför order för att göra allt och bara de mycket grundläggande, lågnivåerna i en dator, från att hantera hårdvaredrivrutiner till schemaläggning av olika processer.
Q. Rätt, allt blir klart nu ... Så, vad gör det?
en. När en Linux-kärna stöter är det första som det måste göra att hitta och montera filsystemet värd det första programmet som ska köras. Det är programvaran, vanligtvis kallad init, som vet hur man startar alla andra program på ett ordnat sätt och var man hittar dem (eftersom de i allmänhet kan vara på en annan disk eller på något annat server).
Q. Det låter inte som en väldigt komplicerad uppgift. Kunde inte kärnan göra det själv?
en. Teoretiskt ja. Det är faktiskt en komplicerad uppgift (för en kärna, åtminstone) när du börjar överväga alla olika möjligheter. Idag kör Linux på praktiskt taget allt, från mainframes till mobiltelefoner och bilunderhållningssystem. Förutom mikroprocessorn kan det första filsystemet installeras på bra gamla hårddiskar, men det används också på USB-nycklar, nätverksenheter, flashchips och RAID-arrays. Dessutom kan även filsystemen på två identiska datorer ha helt olika konfigurationer.
F. Varför säger du "helt" annorlunda? Bortsett från sin egen typ, det är ext3 eller ext4, hur annars skulle filsystemen på två identiska datorer kunna skilja sig?
en. Tja, de kan eller kanske inte komprimeras eller krypteras, för att bara nämna de vanligaste fallen. Det betyder att kärnan inte bara ska ha rätt programvaruverktyg för åtkomst till dem, men i det senare fallet också rätt lösenord. Slutligen, i en värld full av bärbara datorer måste Linux också kunna hantera viloläge - det vill säga att starta tillbaka till exakt det tillstånd som det var vid när det avbröts.
Q. OK, så det finns ju många möjligheter.
en. Verkligen. Det finns åtminstone tillräckligt att det är mycket svårt att beskriva dem alla bara med kommandoradsalternativ för kärnan. Dessutom är kärnan ett så märkligt program som det också är svårt att få det att utföra alla möjliga åtgärder som behövs för att hitta rotenheten. Vissa utvecklare uttrycker detta begrepp genom att säga att kärnan är byggd endast för att ta order och förfrågningar, inte att fatta beslut.
Q. Och hur går initramfs för att lösa detta problem? Jag menar, vad är en initramfs ändå?
en. Det är, som namnet antyder, ett litet "initialt filsystem" som introducerades med 2.6-versionen av Linux-kärnan, byggd för att laddas i RAM och sprang helt från den. Syftet med en initramfs är att värd, på ett ställe och format som säkert kan användas av kärnan, en anpassad version av init-programmet och alla drivrutiner och verktyg som det kan behöva vid start.
När kärnan hittar och lanserar den applikationen behöver den inte längre utföra några andra speciella uppgifter. Det är det init-programmet inom initramfs som hittar det riktiga filsystemet - den där din Gnu / Linux-distribution lever - och starta det.
Q. Men är inte ett filsystem en permanent datastruktur? Hur kan man bo i RAM?
en. Jo, i allmänhet är ett filsystem bara en massa byte som, som du redan vet, kan kopieras överallt - det är internt formaterat på ett sådant sätt att vara värd för och enkelt hitta mappar och filer. Men för att göra den användbar även från RAM kan en initramfs monteras som om den var en riktig skiva som av skäl som är för tekniskt att täcka här inte behöver någon förare.
Q. Och du sa att initramfs redan användes före Dracut, gjorde du inte?
en. Det stämmer. Det har använts så mycket att genom varje år har varje GNU / Linux-distribution utvecklat egna anpassade verktyg för att generera dessa typer av filsystem.
Q. Tillbaka till Dracut: hur går det in på den här bilden?
en. Dracut är både en serie verktyg och en ny metod, baserad på Udev-händelser, för att skapa en generell initramfs. Det skapades 2009 för att övervinna vissa gränser för tidigare distributionsspecifika system.
Q. Vänta! Du gjorde det igen! Kasta runt konstiga namn. Jag menar, vad är Udev?
en. Udev är den demon som skapar, namnger och raderar enhetens noder - det är mjukvarans gränssnitt till hårdvaruenheter, i alla GNU / Linux-system.
Q. Varför behöver vi en demon för det?
en. Den främsta anledningen är att ha ett vanligt sätt att få uthålliga enhetsnamn, även för flyttbara enheter. Udev-åtgärder meddelas alla program som begär att bli underrättad om dem.
Fråga Tack. Så varför började Dracut? Vad är dess syfte?
en. För slutanvändare är den mest synliga motiveringen för Dracut snabbare uppstartstider. Dracut ska göra det lättare att montera och använda det riktiga rotfilsystemet, det vill säga att lämna initramfsna med alla dess begränsningar så snart som möjligt.
F. Vad sägs om utvecklare och underhållare? Vad får de från Dracut?
en. I ett nötskal, mindre kod att köra och felsöka, och effektivare sätt att göra det. Så länge varje distribution har sina egna verktyg för att skapa en initramfs, finns det fler saker som kan gå fel. Den första tanken bakom Dracut är att flytta generationen av initramfs utanför distributionerna, och att göra det enklare att använda för sina underhållare.
F. Hur skulle Dracut göra det?
en. Genom ett enklare, generiskt init-program som använder, för alla installationsmetoder och startkonfigurationer, standard udev-verktyget, inuti en gemensam och mycket mer allmän initramfs. Ett annat sätt på vilket Dracut skulle göra utvecklarens liv enklare är att det innehåller ett diagnostiskt skal. Det finns också någon aktivitet att skapa "krokar", det är sätt att köra godtyckliga kommandon.
F. Men hur skulle en generisk init fungera i alla fall?
en. Bara på grund av tillgängligheten av udev i den nya initramfsen, vrider Dracut de gamla procedurerna upp och ner. I stället för att varje distribution, på ett annat sätt, fyller dess initramfs med alla möjliga svarta magiska verktyg för hårdvaredetektering, möjliggör init-programmet i initramfs genererade av Dracut udev att skapa enhetsnoder.
Q. Du menar, precis som det händer under normal drift, när jag pluggar en USB-nyckel i min dator?
en. Exakt.
Q. Vad händer efter det?
en. Startfasen är praktiskt taget över. Så snart enhetskoden för det verkliga rotfilsystemet är monterat, springer kärnan till det och lämnar initramfs för att starta den verkliga init.
F. Kan Dracut skapa en initramfs optimerad för mitt system?
en. Ja. Du kan till exempel enkelt skapa mindre bilder genom att gå till Dracut-skriptet -H-alternativet. Detta kommer att lämna en initramfs på hårddisken som i allmänhet inte startar om du flyttar den enheten till en dator med en annan konfiguration, men hur ofta är det här ett problem?
Fråga om vad jag vill, istället för att påskynda uppstartsprocessen?
en. I det fallet bör du beskriva dig själv för Dracut, med rätt kommandoradsalternativ, hur systemet är konfigurerat och hur du vill att det ska startas. Om du gör det kommer Dracut att översätta all den informationen till korrekta kärnalternativ och andra anpassningar för att skapa en initramfs som från första början vet hur rootfilsystemet är.