Linux Kernel (Hac|Ma)king Come compilarsi da soli il proprio kernel - # make it simple.

Slides:



Advertisements
Presentazioni simili
1 Introduzione ai calcolatori Parte II Software di base.
Advertisements

Accesso ai dati su file LSA: Laboratorio di Sistemi Informativi Economico Aziendali Salvatore Ruggieri Dipartimento di Informatica, Università di Pisa.
Gestione della memoria centrale
Università degli Studi di Napoli "Federico II" - a.a. 2002/2003 Le TD nei processi di apprendimento: strategie di apprendimento collaborativo supportate.
MODULO 3 – ELABORAZIONE TESTI
Modulo 1 – Ambiente di lavoro Windows 7
Installazione di Apache 2, PHP5, MySQL 5
Webb.it 2002 Fabio Busatto Linux Startup: configurazione sicura post installazione
Sistemi Operativi Menù: 1) Introduzione al sistema operativo
Da Unix a Linux Alessio Coraci V Dp.
Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette all'utente.
1 Approfondimenti su Linux. Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dellInformazione 2 La storia Il sistema operativo Linux è
Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dellInformazione 1 Sistemi Operativi I- Laboratorio-a.a. 2003/2004 a cura di Stefano Bencetti.
Introduzione a Linux Dr. Giovanni Stracquadnio
Dr. Giovanni Stracquadanio
Giuseppe Fabio Fortugno.
Sistema Operativo Preparazione e prima fase di installazione del sistema Reperite tutti i driver più aggiornati per il vostro hardware scaricandoli da.
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Installazione pacchetti sotto Linux. Linux: Installare le applicazioni Adesso che abbiamo configurato Linux vogliamo imparare a installare qualche programma.
Guida Linux Molto rapida…. Due parole sullambiente grafico Potete usare: KDE o GNOME Si sceglie prima di mettere la password. Questione di gusti…
Uso di openafs Come usare il tool openafs per accedere e gestire i propri files sotto AFS.
Internet Explorer Il browser.
Struttura dei sistemi operativi (panoramica)
Windows Sistema operativo con interfaccia grafica per PC IBM compatibili (varie versioni dal 95) La gestione dei file viene fatta secondo le modalità.
ASP Lezione 1 Concetti di base. Introduzione ad ASP ASP (che è la sigla di Active Server Pages) è un ambiente di programmazione per le pagine web. La.
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net Web Part e controlli di login Elaborazione di Franco Grivet Chin.
Gestione delle stampe Collegamento fra il mondo virtuale e quello reale, per certi aspetti, è il documento stampato. Lezione 4 Modulo 2 ECDL.
Tecnico hardware Di Adone Amaddeo
WINDOWS XP PRIMI PASSI. Caratteristiche del sistema Le caratteristiche di base del PC (tipo e versione del sistema operativo installato, tipo e velocità
Modulo 7 – reti informatiche u.d. 3 (syllabus – )
Installare Code::Blocks su macchine LINUX
Inserire il CDROM CygWin nel lettore, aprite la directory cyg e lanciare in esecuzione (con un doppio click del pulsante sinistro del mouse sulla relativa.
Usare la posta elettronica con il browser web
Introduzione a Linux... Un sistema operativo LIBERO ! L'uso...
Concetti di base sul Software dei PC Unitre Anno
PROGRAMMARE IN C Un ambiente di sviluppo `e un software che serve per scrivere ed eseguire programmi. Generalmente integra almeno 3 funzionalita’: Editor:
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Configurazione in ambiente Windows Ing. A. Stile – Ing. L. Marchesano – 1/23.
Il Sistema Operativo (1)
Il kernel di Linux Riferimenti: – (Dzintars Lepešs, University of Latvia)
Internet Explorer I preferiti Stampa di pagine web Salvataggio di pagine web Copia di elementi di pagine web in altri applicativi.
Backup and Migrate, Captcha ReCaptcha e Spamicide Docente: Simone Zambenedetti. Moduli per la Sicurezza.
BIOINFO3 - Lezione 361 RICERCA DI SIMILARITA TRA SEQUENZE Un altro problema comunissimo in bioinformatica è quello della ricerca di similarità tra sequenze.
BIOINFO3 - Lezione 301 CGI-BIN Abbiamo visto che CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. In particolare.
Introduzione a Linux... Un sistema operativo LIBERO ! L'installazione...
LEZIONE 13 INFORMATICA GENERALE Prof. Luciano Costa
Amministrazione della rete: web server Apache
Lezione 1 Approccio al sistema operativo : la distribuzione Knoppix Live Cd Knoppix 3.6 Interfacce a caratteri e grafica: console e windows manager File.
Installazione Come tecnico, si potrebbe aver necessità di effettuare una installazione pulita di un sistema operativo. L'esecuzione di una installazione.
MS-DOS è il sistema operativo, Come praticamente tutti i sistemi operativi per i computer del periodo, l'MS- DOS era un sistema operativo mono utente.
prof. Antonella Schiavon ottobre 2009
Programma di Informatica Classi Prime
I sistemi operativi1 CONCETTI FONDAMENTALI l HARDWARE: il componente “materiale” di un sistema informatico l SOFTWARE: il componente “immateriale” di un.
Come preparare una chiavetta USB per essere avviabile in DOS ed effettuare il flash del tuo VBIOS Avviso: Il Vbios di esempio è per la scheda VAPOR-X R9.
Formattazione, Partizioni e dischi
Autori:  Gazzola Alex  Cassol Simone  Kawkab Wassim Data: 14/04/2014 Classe: 3° INF.
Fabrizio Felici LAMP workshop GROsseto Linux Users Group.
Uso di WinRar e Winzip.
Internet e HTML Diffusione di informazioni mediante la rete Internet.
Indice argomenti Installazione e configurazione
Basi di Unix: introduzione Kernel il fulcro del sistema. Comunica con l’hardware (processore, memoria, disco fisso) Shell interfaccia tra l’utente e il.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Primi passi con Easy Reg 1.23: installazione del software
Il sistema operativo UNIX Presentazione realizzata da: Deri Claudio,Granata Luca,Brunetti Enrico.
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
Sintesi da pag. 8 a pag. 21. L’ Informatica è la scienza che studia il trattamento automatico dell’informazione. Deriva dal francese «Informatique»
I Sistemi Operativi. Che cosa sono? Il sistema operativo è un software di base che fa funzionare il computer. I Sistemi operativi più importanti sono:
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
I sistemi operativi Funzioni principali e caratteristiche.
Compilazione del kernel Linux
Transcript della presentazione:

Linux Kernel (Hac|Ma)king Come compilarsi da soli il proprio kernel - # make it simple Pallotron – 16 Febbraio 2004 Centro Culturale Zo' di Catania (piazzale ASIA)

Linux Kernel Making - # make it simple – 12 Febbraio Cosa e' un kernel? Perche' e' bene compilarmene uno? Dove lo prendo? Requisiti necessari alla compilazione; Overview della compilazione; Ottenere ed estrarre il kernel; Applicare una patch; Configurazione; Compilazione; Installazione: il LI.LO.; I device driver sotto Linux; Cenni: Come compilare un kernel su un'altra macchina. Sommario

Linux Kernel Making - # make it simple – 12 Febbraio Cosa e' un kernel? Dispositivi fisici Microarchitettura Linguaggio Macchina Sistema Operativo CompilatoriEditorShell Browser WebOpenOfficeMplayer Programmi applicativi Programmi di sistema Hardware Moduli E' uno strato software che si colloca tra l'hardware di una macchina e i programmi applicativi e/o di sistema da essa eseguiti. Tutti i kernel implementano due funzionalita' che sono scorrelate tra di loro: Estendono la macchina sulla quale girano (es. Filesystem Unix); Gestiscono opportunamente le risorse della macchina (es. device di i/o), condividendole rispetto al tempo ed allo spazio;

Linux Kernel Making - # make it simple – 12 Febbraio Perche' e' bene compilarsene uno da se'? - 1/3 Ci sono innumerevoli motivi! :) I kernel di default delle distribuzioni sono generalmente carichi di funzionalita' da noi non richieste; I kernel di default delle distribuzioni sono vecchi; Potremmo avere la necessita' di compilarci un kernel minimale per una macchina che deve assolvere a compiti particolari (es. Firewall);

Linux Kernel Making - # make it simple – 12 Febbraio Potremmo avere la necessita' di fare del cross-compiling; L'acquisto di un nuovo dispositivo hardware potrebbe portarci alla necessita' di ricompilare il nostro kernel. Le procedure di compilazione assistita delle distribuzioni o i kernel in forma binaria sono sicuri? Perche' e' bene compilarsene uno da se? - 2/3

Linux Kernel Making - # make it simple – 12 Febbraio E' sempre bello capire come funzionano le cose e fare tutto da se! A costo di rimanere inchiodati davanti al pc per ore e ore! :) Perche' e' bene compilarsene uno da se? - 3/3

Linux Kernel Making - # make it simple – 12 Febbraio Dove lo prendo? (via http/ftp/rsync) Normalmente il kernel viene fornito sotto forma di archivi tar compressi oppure sotto forma di patch cumulative da applicare a versioni precedenti presenti sul disco fisso. Di solito trovate tutto quello che vi interessa nella directory /pub/linux/kernel. E' buona regola depositare i tar e le patch dentro la directory /usr/src/

Linux Kernel Making - # make it simple – 12 Febbraio Requisiti e software necessari per la compilazione Avere installate le librerie NCURSES; Avere un ambiente di compilazione sano (leggi make + gcc); Per i kernel della serie 2.6 occorre avere installati i nuovi programmi per la gestione dei moduli (module-init-tools). Dovete avere i privilegi di amministrazione della macchina in questione! :) Tutti i sistemi hanno pacchetti binari preconfezionati. Ad esempio, su debian, e' necessario dare questo comando e avrete tutto il necessario per compilare un kernel: # apt-get install module-init-tools libncurses5-dev make gcc

Linux Kernel Making - # make it simple – 12 Febbraio Overview: la compilazione del kernel in step Prelevare il kernel e salvarlo in /usr/src Spostarsi su /usr/src e scompattarlo Applicare le patch necessarie Configurarlo secondo le proprie esigenze Compilare il kernel e i moduli Installare il kernel sul MBR e i moduli

Linux Kernel Making - # make it simple – 12 Febbraio Estrazione del kernel - 1/2 Supponendo che abbiate salvato il kernel dove suggerito occorrera' spostarsi nella directory /usr/src: # cd /usr/src/ Estraiamo i sorgenti con: tar xvfz linux-.tar.gz Se il vostro archivio compresso e' del tipo.tar.bz2 allora occorre sostituire l'opzione 'z' con la opzione 'j'. Vedrete sfilare un elenco di file, segno che tar sta scompattando l'archivio, dovreste quindi ottenere la directory di nome /usr/src/linux-

Linux Kernel Making - # make it simple – 12 Febbraio Estrazione del kernel - 2/2 E' bene controllare che dentro la directory /usr/src/ ci sia un link simbolico alla directory del kernel attuale di nome linux. ls -l linux lrwxrwxrwx 1 root src linux -> linux- Se non e' cosi' e' bene provvedere utilizzando il comando ln: ln -s linux /usr/src/linux-

Linux Kernel Making - # make it simple – 12 Febbraio Applicare una patch Bene, adesso che abbiamo estratto il nostro kernel potremmo voler applicare delle patch. Le patch sono letteralmente delle toppe che si applicano ad un software per dotarlo di opportune funzionalita'. A meno di casi particolari un utente normale non ha quasi mai la necessita' di applicare delle patch ad un kernel. Esse sono distribuite sotto forma di file di testo (generalmente.diff). Per installare una patch e' necessario di solito salvarla in /usr/src, spostarsi su tale cartella e lanciare poi il comando: patch -p0 < nomefilepatch.diff l'opzione -p e' utilizzata per eliminare un certo numero di prefissi separati da / da ogni file che si deve patchare.

Linux Kernel Making - # make it simple – 12 Febbraio Configurazione - 1/8 A questo punto occorre configurare il nostro kernel per le nostre esigenze. In questo ci viene in aiuto una interfaccia testuale che possiamo richiamare spostandoci nella directory dei sorgenti e dando il comando: # make Per vedere i tipi di interfaccia usate make help. Prima di procedere con la configurazione vera e propria e' necessario fare delle distinzioni fra funzionalita' built-in e modulari.

Linux Kernel Making - # make it simple – 12 Febbraio Configurazione - 2/8 Built-in: vuol dire che la funzionalita' relativa e' incorporata all'interno del binario del kernel. Questo tipo di compilazione causa un aumento delle dimensioni finali della immagine. Pertanto e' consigliata per funzionalita' chiave del sistema (es. Supporto al fs di root, scheda di rete, etc.). Modulare: viene generato un file nomemodulo.ko che risiede normalmente nella cartella /lib/modules/. I moduli sono comodi perche' possono essere agganciati/sganciati a richiesta quando una periferica o una particolare funzionalita' e' richiesta. Vedremo come. Vediamo le interfaccie utilizzabili per la configurazione:

Linux Kernel Making - # make it simple – 12 Febbraio Configurazione - 3/8 Interfaccia consolle: si ottiene con il comando make menuconfig

Linux Kernel Making - # make it simple – 12 Febbraio Configurazione - 4/8 Interfaccia GTK: si ottiene con il comando make gconfig

Linux Kernel Making - # make it simple – 12 Febbraio Configurazione - 5/8 Interfaccia QT: si ottiene con il comando make xconfig

Linux Kernel Making - # make it simple – 12 Febbraio Configurazione - 6/8 Old style (domanda-risposta): si ottiene con il comando make config

Linux Kernel Making - # make it simple – 12 Febbraio Configurazione - 7/8 Al termine della configurazione si deve confermare il salvataggio delle opzioni selezionate. Rispondendo affermativamente la interfaccia produrra' un file di nome /usr/src/linux- /.config Questo file contiene tutte le flag selezionate, e sara' utilizzato dai comandi successivi per la compilazione effettiva del kernel. Si consiglia pertanto di farsene una copia da qualche altra parte nel proprio file system. Ci sono alcune cose alla quale dobbiamo riservare una certa attenzione quando compiliamo un kernel, vediamo quali sono...

Linux Kernel Making - # make it simple – 12 Febbraio Configurazione - 8/8 Occore fare attenzione almeno alle voci sottostanti durante la configurazione, o potreste ottenere un kernel non proprio funzionante... Selezionare il tipo di processore corettamente: fate particolarmente attenzione a selezionare la giusta famiglia di processore per il vostro sistema. Compilare il supporto per il filesystem della partizione di root come built-in: la prima cosa che fa un kernel appena ha finito la fase di boot e' montare il file system di root (/), se il vostro kernel non ha il supporto per questo filesystem compilato built-in non riuscira' a montarlo, perche' non potra' accedere alla directory dei moduli, e andra' in panic.

Linux Kernel Making - # make it simple – 12 Febbraio Compilazione Lanciamo la compilazione e prendiamoci un caffe': # make questo comando compila il kernel ed i moduli. Nel caso stiate compilando un kernel della serie 2.4 o 2.2, il comando compilera' solo il kernel, mentre per compilare i moduli dovrete dare il comando: # make modules In genere a questo stadio e' difficile ricevere erorri, a meno che non abbiate fatto confusione in fase di configurazione, in tal caso controllate le scelte fatte nel menu' di configurazione.

Linux Kernel Making - # make it simple – 12 Febbraio Installazione 1/4 Copiamo la immagine del kernel nella directory /boot # cp arch/i386/boot/bzImage /boot/vmlinuz- Per installare i moduli nel sistema occorrera' lanciare: # make modules_install Il sistema iniziera' a copiare i file *.ko nella direcotry /lib/modules/, ed effettuera' altre operazioni (come chiamare depmod per generare file necessari ai programmi che gestiscono i moduli).

Linux Kernel Making - # make it simple – 12 Febbraio Installazione 2/4 Adesso che kernel e moduli si trovano nei posti giusti dobbiamo informare il Li.Lo. (Linux Loader) della presenza di un nuovo kernel. LILO e' il primo programma lanciato dal BIOS del computer. Questo file si installa nei primi settori del disco fisso, e offre un simpatico menu' dalla quale poter scegliere il kernel o il sistema operativo che vogliamo usare. Per istruire lilo riguardo ai kernel presenti su una macchina occorre editare il file /etc/lilo.conf con il vostro editor preferito, ed inserire/modificare le seguenti direttive: boot=/dev/hda <- indica il disco/partizione in cui installare lilo root=/dev/hdaX <- indica la partizione root image=/boot/vmlinuz- label= read-only

Linux Kernel Making - # make it simple – 12 Febbraio Installazione 3/4 Leggete i commenti del vostro file /etc/lilo.conf, scoprirete che e' possibile configurare piu' di un kernel, che, su una base di N kernel e' possibile scegliere quello di default, che e' possibile passare opzioni al momento del boot al vostro kernel (es. configurazione del framebuffer, o della emulazione scsi per i masterizzatori ide). Completate il tutto lanciando il comando: # Se il comando non si rivela particolarmente maleducato dovrebbe essere tutto a posto, riavviate la vostra macchina, al boot dovrebbe comparire un menu' e il vostro nuovo kernel sara' nella lista.

Linux Kernel Making - # make it simple – 12 Febbraio Installazione 4/4 Attenzione! Non sovrascrivete MAI nel lilo.conf un kernel funzionante con uno appena compilato! Se per disgrazia il vostro nuovo kernel non dovesse partire riguadagnare il controllo di sistema sara' difficile (per un novizio). Pertanto consiglio sempre di aggiungere una voce su lilo.conf, in modo da avere sempre una seconda alternativa da scegliere in caso di disgrazia. Testate per bene il vostor nuovo kernel, e, solo dopo aver visto che e' tutto ok, eliminate, sempre che lo vogliate, il vecchio.

Linux Kernel Making - # make it simple – 12 Febbraio I device driver sotto Linux I device driver sotto Linux non sono altro che moduli del kernel, depositati dentro la directory /lib/modules/ I comandi che ogni utente deve conoscere per trattare i moduli sono i seguenti: INSMOD: carica un modulo; RMMOD: rimuove un modulo; LSMOD: elenca i moduli caricati e le dipendenze fra di essi; MODPROBE: e' una utility che permette di caricare e scaricare un modulo piu' facilmente ed effettuando dei controlli in piu'.