Kernel (Italiano)
Da Wikipedia:
- il kernel è la componente più importante del sistema operativo; è un ponte tra le applicazioni e l'elaborazione dei dati eseguita a livello hardware. Le responsabilità del kernel comprendono la gestione delle risorse del sistema (la comunicazione tra le componenti hardware e software).
Esistono diversi kernel alternativi per Arch Linux oltre a quello principale. Questo articolo elenca alcune delle opzioni disponibili nei repository con una breve descrizione per ognuna. È anche presente una descrizione delle patch che possono essere applicate al kernel del sistema. L'articolo termina con una panoramica sulla compilazione dei kernel personalizzati con link ai vari metodi.
Kernel precompilati
Pacchetti ufficiali
- linux
- Il kernel Linux e i moduli dal repository [core]. Kernel vanilla con tre patch[link interrotto 2021-11-12] (dalla versione 3.1.3-1).
- linux-lts
- Il kernel linux e i moduli supportati a lungo termine (LTS) dal repository [core].
Pacchetti AUR
- linux-bfsAUR[broken link: package not found]
- Il kernel Linux e i moduli con il Brain Fuck Scheduler (BFS) - creato da Con Kolivas per computer desktop con meno di 4096 cores, con scheduler I/O BFQ opzionale.
- linux-ckAUR
- Il kernel Linux compilato con il patchset di Con Kolivas.
- Le opzioni aggiuntive che possono essere abilitate/disabilitate dal PKGBUILD includono: scheduler BFQ, nconfig, localmodconfig utilizzo del config del kernel in esecuzione.
- Queste sono patch progettate per migliorare la reattività del sistema con particolare enfasi nei desktop, ma adattabili a qualsiasi carico di lavoro. Le patch ck includono il BFS.
- Per ulteriori informazioni ed istruzioni per l'installazione, si prega di leggere l'articolo linux-ck.
- linux-fbcondecorAUR[broken link: package not found]
- Il kernel Linux e i moduli con supporto fbcondecor.
- linux-grsec[broken link: package not found]
- Il kernel Linux e i moduli con le patch grsecurity e PaX per una maggiore sicurezza.
- linux-iceAUR[broken link: package not found]
- Il kernel Linux e i moduli con il patchset dai sorgenti gentoo e il supporto TuxOnIce.
- linux-lqxAUR
- Liquorix è una distribuzione kernel sostitutiva costruita usando la migliore configurazione e i migliori sorgenti kernel per utilizzo desktop, multimediale e ludico, spesso usato per ottenere migliori prestazioni su Debian Linux. damentz, il mantenitore del patchset Liquorix, è anche sviluppatore del patchset Zen, quindi molti di quei miglioramenti possono essere trovati in questo patchset.
- linux-paxAUR[broken link: package not found]
- Il kernel Linux e i moduli con le patch PaX per aumentare la sicurezza.
- linux-pfAUR
- Il kernel linux e i moduli con il patchset del pf-kernel[link interrotto 2021-11-12] [patchset -ck (incluso BFS), TuxOnIce, BFQ], aufs2 e squashfs-lzma.
- linux-vanillaAUR[broken link: package not found]
- Il kernel Linux vanilla e i moduli senza le patch di Arch Linux.
- linux-aircrackAUR[broken link: package not found]
- Il kernel Linux e gli header - patchato per rendere funzionante la suite aircrack-ng.
- linux-zen
- Il Kernel Zen è il risultato della colaborazione tra kernel hacker per fornire il miglior kernel Linux possibile per i sistemi attuali.
- kernel-netbookAUR[broken link: package not found]
- Kernel statico per netbook con Intel Atom N270/N280/N450/N550 come l'Eee PC con l'aggiunta di firmware (broadcom-wl) e patchset (BFS + TuxOnIce + BFQ optional) esterni - Solo GPU Intel
Patch e Patchset
Ci sono diverse ragioni per patchare il proprio kernel, le principali riguardano le prestazioni o il supporto per caratteristiche secondarie come il supporto per il file system reiser4. Altre ragioni possono essere il divertimento e il vedere come funziona e quali sono i miglioramenti.
Comunque è importante notare che il modo migliore per aumentare la velocità del sistema è innanzitutto quello di ottimizzare il kernel per il proprio sistema, specialmente per l'architettura e il tipo del processore. Per queste ragioni è sconsigliato utilizzare versioni pacchetti di kernel personalizzati già pronti con impostazioni per un'architettura generica. Un ulteriore miglioramento può essere il ridurre la grandezza dell'immagine del proprio kernel (e quindi il tempo di compilazione) escludendo il supporto per ciò che non si possiede o non si usa.
Come installare
Il processo d'installazione dei pacchetti del kernel personalizzato si affida all'Arch Build System (ABS). Riguardo la creazione di pacchetti personalizzati, consultare i seguenti articoli: Arch Build System (Italiano) e Creating packages (Italiano).
Applicare patch o personalizzare un kernel non è così complicato come può apparire, ed esistono molti PKGBUILD nel forum per singoli patchset. In ogni caso, è raccomandato cominciare dalle basi facendo ricerche sui vantaggi di ogni patchset piuttosto che installare il primo che capita: in questo modo si acquisiranno molte più conoscenze sulle differenze tra i vari kernel.
Vedere #Compilazione.
Patchset principali
Prima di tutto è importante notare che i patchset sono sviluppati da diverse persono. Alcuni sono fanno effettivamente parte della produzione del kernel Linux, altri sono hobbisti, il che può riflettere il loro livello di affidabilità e stabilità.
È anche importante notare che alcuni patchset sono costruiti dietro altri patchset (il può o meno influenzare la validità della patch). I patchset (e gli aggiornamenti del kernel) possono essere rilasciati molto frequentemente e spesso non vale la pena seguirli TUTTI per non impazzire, a meno che non diventi un hobby!
Si possono anche cercare altri patchset tramite google - ricordarsi di utilizzare le virgolette "-nitro"
per esempio altrimenti google NON mostrerà deliberatamente i risultati voluti!
-ck
Queste sono patch progettate per migliorare la reattività del sistema, in particolar modo per i desktop, ma utilizzabile in ogni sistema. Le patch sono create e mantenute da Con Kolivas, il suo sito internet è http://users.on.net/~ckolivas/kernel/. Con mantiene un set completo, ma fornisce anche singolarmente le patch così da poter aggiungere solo quelle desiderate.
Le patch -ck possono essere trovate su http://ck.kolivas.org/patches/3.0/
-rt
Questo patchset è mantenuto da un piccolo gruppo di sviluppatori core, con a capo Ingo Molnar. Questa patch permette a quasi tutto il kernel di essere prevaricato, ad eccezione di un parte molto piccola di codice ("raw_spinlock critical regions"). Ciò è ottenuto sostituendo la maggior parte degli spinlock con mutex che supportano l'eredità della priorità, ma anche spostando gli interrupt e i software interrupt nelle istanze del kernel.
Inoltre sono presenti timer ad alta risoluzione - un patchset, mantenuto indipendentemente.
[come scritto sulla Real-Time Linux Wiki]
patch su https://www.kernel.org/pub/linux/kernel/projects/rt/
-bld
BLD è meglio descritto come una tecnica di selezione CPU 0(1). Essa consiste nel riordinare le code di esecuzione in base ai carichi delle code. In altre parole, mantiene informato lo scheduler sui cambiamenti di carico, il che lo aiuta a tenere ordinate le code di esecuzione. Questa tecnica non dipende dal funzionamento dello scheduler. Le due cose più semplici in essa sono: tracciamento del carico e riordinamento delle code; le quali sono operazioni abbastanza semplici. Il tracciamento del carico viene eseguito ogni volta in cui avviene un cambiamento del carico di sistema e a seconda di questo cambiamento vengono riordinate le code di esecuzione. Lo scheduler può selezionare la coda più bassa senza dover calcolare e confrontare al momento di inserire un'attività in una coda. Cercando di distribuire il carico allo sched_exec e sched_fork, la scelta migliore è quella di prendere la coda del sistema meno occupata. In tal modo il sistema rimane bilanciato senza dover effettuare un bilanciamento del carico. Al momento del try_to_wake_up selezionare la coda meno attiva ha la massima priorità, ma viene effettuato secondo il dominio per utilizzare la cache della CPU in modo appropriato ed è il punto in cui si richiede una maggiore concentrazione.
Pagina di Google code: https://code.google.com/p/bld/
È disponibile solo la patch per la versione 3.3-rc3
-grsecurity
Grsecurity è un patchset per la sicurezza. Aggiunge numerose feature legate alla sicurezza come Role-Based Access Control e utilizza caratteristiche del progetto PaX. Può essere usato su desktop, ma si trae il maggior beneficio su un server pubblico. Alcune applicazioni sono incompatibili come le misure di sicurezza implementate da questo patchset. In questo caso, è consigliabile usare un livello di sicurezza più basso.
Le patch -grsecurity si trovano su at https://grsecurity.net
Tiny-Patch
Lo scopo di Linux Tiny è di ridurre le tracce nella memoria e sul disco, così come aggiungere feature per permettere di lavorare su sistemi ridotti. Gli utenti designati sono sviluppatori di sistemi integrati e utenti di macchine ridotte o datate come le 386.
I rilasci della patch rispetto a quelli del kernel Linux sono discontinui. Gli sviluppatori hanno scelto di concentrarsi su alcune patch ed utilizzare il proprio tempo per cercare di unirle all'interno del kernel.
Patch individuali
Queste sono patch che possono essere semplicemente incluse in ogni build del kernel vanilla o incorporate (magari insieme a modifiche maggiori) in altri patchset. Qui sono presenti alcune delle più comuni.
Reiser4
Gensplash/fbsplash
Gensplash - http://dev.gentoo.org/~spock/projects/[link interrotto 2020-07-28]
Compilazione
Arch Linux fornisce metodi diversi per la compilazione del kernel.
Usare l'Arch Build System (consigliato)
Usare l'Arch Build System è consigliato per poter trarre vantaggio dall'alta qualità del PKGBUILD linux esistente ed avere i benefici della sistema di gestione dei pacchetti. Il PKGBUILD è strutturato in modo da poter fermare la compilazione appena i sorgenti sono stati scaricati e configurare il kernel.
Vedere Kernels/Arch Build System (Italiano).
Tradizionale
Alternativamente è possibile compilare un kernel senza l'Arch Build System (metodo tradizionale). Questo metodo comporta lo scaricamento manuale della tarball dei sorgenti e la compilazione nella propria cartella home come normale utente. Una volta configurato, vengono offerti due metodi di compilazione/installazione: quello tradizionale e quello con makepkg/pacman.
Un vantaggio del metodo tradizionale è che funziona su altre distribuzioni Linux.
Vedere Kernels/Compilation/Traditional.
È disponibile uno script che automatizza il metodo non-Arch Build System. Vedere Kernels/Compilation/Script.
Driver proprietari NVIDIA
Consultare NVIDIA (Italiano)#Installazione alternativa: kernel personalizzato per istruzioni riguardo l'utilizzo dei driver proprietari NVIDIA con un kernel personalizzato
Vedere anche
- O'Reilly - Linux Kernel in a Nutshell (free ebook)