Rekompilere kjernen for en perfekt fit

De fleste distribusjoner tilbyr en " one-size-fits-all " kernel, kompilert med de generiske alternativer, slik at alle kan bruke den. Hvis du har en Athlon XP CPU i stedet for en Intel 386 familie prosessor, eller masse RAM, eller en viss grafikkortet, kan du justere kjernen og kompilere den for optimal ytelse på en bestemt maskinvare. I prosessen, kan du også sannsynligvis frigjøre minne ved å bli kvitt unødvendige alternativer, forkorte oppstart, og øke reaksjonsevne.

En nesten tørr kjøre

Kompilering kjernen er ikke veldig vanskelig , men det er en distinkt mulighet for at du kan slange maskinen din og gjør den om til en paperweight (spør meg hvordan jeg vet!), så du blir nødt til å ta noen forholdsregler. Ha en backup kernel tilgjengelig; på den måten, bør du virkelig muck ting opp, kan du starte maskinen og starte på nytt. Jeg bruker opensuse, som det er lett å installere to eller flere kjerner: ved hjelp YaST administrasjonsverktøyet eller Smart pakkebehandleren, installere to ulike versjoner av kjernen. For eksempel har jeg både 2.6.18.8-0.3 og 2.6.18.8-0.5, og min boot siden viser:

 opensuse 10.2 - 2.6.18.8-0.5Failsafe - opensuse 10.2 - 2.6.18.8-0.5openSUSE 10.2 - 2.6.18.8-0.3Failsafe - opensuse 10.2 - 2.6.18.8-0.3 

Som standard, min maskin er satt til å starte opp med den tredje alternativ; Jeg la den versjonen alene (slik at jeg kan falle tilbake på det om nødvendig) og eksperimentere med det første. Etter å ha bygget og er fornøyd med den nye kjernen, kan du bruke standardverktøy (som YAST for opensuse) for å sette den som standard; mer eventyrlystne mennesker kan ty til redigering GRUB eller LILO boot konfigurasjonsfiler for hånd

Du vil også måtte installere noen spesifikke pakker. kernel-source plakater (kildekoden du kompilere), < em> gcc plakater (kompilatoren), bzip2
(nødvendig internt), og ncurses plakater (for konfigurasjonsmenyene).

Hvis du ønsker å optimalisere kernel, trenger du å vite om maskinens maskinvare. Ved å bruke kommandoene nedenfor, kan du merke til hva slags prosessor du har, jo RAM i maskinen din, og flere detaljer. Jeg foreslår at du skriver ut denne informasjonen ut og holde den ved din side mens du arbeider.

 lspci -vcat /proc /cpuinfocat /proc /meminfo 

Hvis du vil være sikker på at du har alt du kan trenge, du kan bygge din kernel uten å berøre noe. Arbeider som root, skriv inn kommandoene:

 cd /usr /src /linuxmake cleanmakemake modules_installmake installreboot 

Det gjør prosessen vil gå en stund, og kan produsere noen advarsler, men det bør ikke vise noen feil . Hvis du etter du starter, er alt fortsatt fint, er du satt for din kernel ombygging eventyr; faktisk, har du bare gjort ditt første slike bygg! (Og hvis noe gjorde
gå alvorlig galt, for eksempel fordi du manglet noen pakke, starter med backup-kjernen, fikse problemet, og prøve en " tørr kjøre ". Igjen)

Bare si " M "!

Nå, la oss lage en kjerne for ekte. Igjen, su for å jobbe som root, og skriv:

 cd /usr /src /linuxmake cleanmake menuconfig 

Du vil se en skjerm som viser en meny full av hundrevis av alternativer (så mange måter til mess up!), men vi vil endre seg bare noen få. Selvfølgelig, hvis du føler deg eventyrlysten, kan du endre alt du måtte ønske, så lenge du setter opp en ekstra kjerne bare i tilfelle. Hvis du ønsker å deaktivere et alternativ, fjerner du det og det vil ikke bli utarbeidet. For å navigere i menyene og se de tilgjengelige alternativene, bruk piltastene; trykk " H " for å se hjelp til enhver tid.

Linux-kjernen er monolittisk, som løst betyr at det er bare en stor stykke programvare med alt kastet i. Men du kan forlenge den ved hjelp av moduler, som er lastet på forespørsel og bare hvis det er nødvendig. Dermed, hvis du skulle samle alle mulige funksjoner som moduler, vil kjernen være så liten som mulig, og du vil bare lide en liten ytelse hit første gang en modul ble lastet. Men om du ikke ønsker å gjøre alt
en modul, fordi enkelte funksjoner må være tilgjengelig ved oppstart: for eksempel, kan du ikke lese den partisjonen som holder modulene hvis du ikke allerede har nødvendig kode i kernel. Men når det er rimelig, sette ting opp å være moduler.

Det er et argument i favør av moduler. Fjerne støtte for enhver tilsynelatende ubrukt stykke maskinvare kan føre til at noen merkelig problem: for eksempel, jeg fjernet muligheten om LVM og RAID-enheter og senere fant ut dette forårsaket en nødvendig modulen ikke skal bygges, som deretter forårsaket mange andre problemer. Den sikreste metoden er å markere uønskede alternativer med " M " (slik at de vil bli utarbeidet som moduler) og ikke la ut noe med mindre du er helt sikker på at du ikke trenger det; kort eller disk partisjonstyper du ikke har, for eksempel, er vanligvis trygt å fjerne. Men det er ingen garantier for at du fjerner noen alternativ vil ikke ha en sekundær, skjult, udokumentert effekt, noe som kan ende opp i noen form for problem. I så fall starte med backup-kjernen, og bare markere alternativet i spørsmålet igjen

Noen alternativer du kan studere, for å spare minne.

  • I Nettverk, fjern haken Amateur Radio Support mindre du koble PCen til amatørradio. De andre alternativene er vanligvis merket som " M "; la dem på den måten

    I filsystemer, kontrollere at alt er merket ". M. " Hvis du er sikker på at du ikke vil være behov for, sier, JFS, kan du fjerner det tilsvarende alternativet, eller enda bedre la det som en modul

    . Også i filsystemer, se partisjonstyper og fjern alt som doesn 't gjelder for deg. I mitt tilfelle, siden jeg har Windows-disker i maskinen min, jeg holdt på Windows-relaterte partisjoner

    I enhetsdrivere, undersøke hver del, og enten fjerne merket eller merket som ". M " hvilken som helst enhet du ikke har. SCSI eller ISDN finnes alternativer du sannsynligvis vil være i stand til å slippe

    I Bus alternativer, deaktivere EISA og MCA støtte med mindre hovedkortet bruker slike busser.; sjekke produsentens specs hvis du er usikker.

    Full fart fremover!

    Avhengig av om du bruker PCen som en server eller som en stasjonær maskin, du kan plukke flere alternativer å forbedre reaksjonsevne. Jeg anbefaler følgende for en stasjonær maskin:

    På Kode Maturity nivå alternativer, fjerner du merket " Spør for utvikling og /eller ufullstendige kode /drivere "; du trenger dette alternativet bare hvis du er utvikling eller testing noe i kjernen

    På General Setup, fjerner du merket ". Cpuset support " med mindre du har mer enn én prosessor; dual og quad-core prosessorer telle som mer enn én.

    At Block Layer, fjerner du merket alt med mindre du har disker som er større i størrelse enn 2TB.

    På prosessortype og funksjoner, fjerner du merket " Symmetrisk multi-prosessering support " med mindre du har mer enn én prosessor, eller en Duo eller Quad en. Velge riktig prosessor på Processor Family, og hvor mye RAM du har på høy minnestøtte. På Preemption Model, velge " Preemptible Kernel (Low Latency Desktop) " alternativ. Til slutt, sjekk " PREEMPT Big Kernel Lock, " og " Timer Frequency " plukke 1000Hz

    På Kernel Hacking, fjerner du merket alt -. du vil ikke gjøre kernel utvikling, vil du

    Etter at du er ferdig med å plukke alternativene, gå ut av konfigurasjonsprogrammet (? si " JA " når du blir spurt om å spare din nye kjernen konfigurasjon) og deretter kjøre:

     Makemake modules_installmake installere 

    Vær særlig oppmerksom på uventede feilmeldinger som kan vise et problem med den nye kjernen. Vær forberedt på å vente; på min laptop, tar make prosessen mer enn en halv time. Hvis får en feilmelding, kan du enten gå tilbake til menyen for å prøve og fikse det som var galt, eller bare starte med backup-kjernen. Hvis du ikke kan finne ut hva som skjedde (fullt mulig: det er ikke alltid like lett å forholde seg en feil på dine menyvalg), kan du alltid installere kernel (bruk YAST eller Smart, som ovenfor) og starte på nytt

    If. det var ingen feilmeldinger, omstart og prøve nye kjernen.

    I mitt tilfelle, jeg barberte ca 10 sekunder av støvelen tid, og også frigjort et par megabyte RAM. Støvelen speedup er egentlig ikke merkbar, men den bærbare føles nå litt mer fleksibelt - selv om det kan selvfølgelig være en placebo effekt. Uansett, jeg har lært litt mer om kjernen, optimalisert det for min egen bruk, og fått et nytt verktøy i min søken etter fart.

    I konklusjonen

    Hvis du vil ha den raskeste mulig Linux , ikke vær redd for å kompilere kjernen. Du kan lære mye, og i slutten du bør få bedre systemytelse

    -. Skriv for oss - og få betalt! -