KERNEL LINUX. Ricompilazione ed Ottimizzazione. Relatore: Mirco Chinelli Linux Day Torino 2009



Documenti analoghi
Ricompilazione del Kernel a modo mio :

Compilazione Kernel 2.6x con supporto BootSplash

Virtualizzazione di macchine Linux tramite XEN

Kernel Linux (per sysadm)

Compilazione del Kernel Linux 2.6.x

Acronis Universal Restore

Il web server Apache Lezione n. 3. Introduzione

Sistemi embedded un dispositivo incapsulato progettato per una determinata applicazione

Il computer: primi elementi

MODEM USB MDC525UP Guida Rapida LINUX

Il Sistema Operativo Linux

Creare e ripristinare immagine di sistema con Windows 8

Linux su FPGA Xilinx

Database & FreeBSD. Come configurare il sistema operativo ottimizzando le prestazioni sul DB. GufiCon#3 Milano, 12 Ottobre 2002

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

Corso base GNU/Linux Latina Linux Group. Sito web: Mailing list:

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

linux-rtai

AMBIENTE GRAFICO DI FEDORA: ATTIVITA ESEGUIBILI DA TUTTI GLI UTENTI

CVserver. CVserver. Micky Del Favero BLUG - Belluno Linux User Group Linux Day Feltre 25 ottobre Un cluster di VServer

Laboratory for Advanced Planning and Simulation Project. Installazione di Debian 3.0 su Workstation HP x4000. Gianstefano Monni, e Gabriella Pusceddu

Sistema Operativo Chrome: Analisi degli aspetti peculiari.

L i n u B e s t a Mario Di Raimondo

Apache Webserver. Piccola introduzione all'installazione ed alla configurazione, a cura di: Alessandro Gervaso

Setup e installazione

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Questa guida è scritta per distribuzioni Debian/Ubuntu-like con l'attuale kernel : 2.6.xx. Per verificare l'attuale kernel linux, digitare

Istruzioni per l uso del servizio VPN su sistemi Linux

Ubuntu e la sua Installazione

Installazione del software di gestione del ricevitore Elad FDM-S1 su computer con sistema operativo Windows 7 64 bit

Configurazione VOIspeed IP6060

Breve guida all'utilizzo di TortoiseSVN

Installare software Linux. Gruppo Linux Macerata - Corso Linux Lez. 5: Installazione dei software Linux

Guida Installazione Windows 7

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

SquashFS, AuFS ed i segreti delle distribuzioni live

Linux nella scuola...proviamo!

ADATTATORE USB DISPLAY

Prima Esercitazione. Unix e GNU/Linux. GNU/Linux e linguaggio C. Stefano Monti smonti@deis.unibo.it

Installazione LINUX 10.0

Corso di Informatica

Tecnico Hardware & Sistemistica

Uso delle tabelle e dei grafici Pivot

NOZIONI BASE PER ESERCITAZIONI

FoLUG Forlì Linux User Group. Partizionamento

PROGRAMMA DEL CORSO AMMINISTRATORE DI SISTEMI LINUX

Guida all installazione di WinG 6

Architettura di un sistema operativo

Come installare Ubuntu Linux

Terza lezione: Directory e File system di Linux

Il pacchetto contiene sia l ambiente di sviluppo sia i driver per la scheda.

Installazione driver per connessione inverter al PC

Il computer. Software libero. Hardware + Software Hardware La «ferraglia», elettronica. Software. Il Sistema Operativo, i Programmi

Seminari Acmesystems. NerInformatica. Relatore : Luciano Neri. Ingegnere libero professionista Ordine degli Ingegneri di Vicenza

Clonezilla. Corsi Linux 2011

Organizzazione Monolitica

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per utenti singoli)

VIRTUALIZZAZIONE. Docente: Marco Sechi Modulo 1

Windows 3.0. Windows 1.0. Windows 1.0. Storia dei sistemi operativi Microsoft Windows Windows 2.0. Windows 2.0

Dipartimento per le Libertà Civili e l Immigrazione

LPIC-1 Junior Level Linux Certification

Differenze fra Pacchetti

Installazione o aggiornamento di 3CAD Azzurra Arredobagno

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Il memory manager. Gestione della memoria centrale

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

manuale utente per Viabizzuno online

Quaderni per l'uso di computer

INSTALLAZIONE MS WINDOWS 7 SU MACCHINA VIRTUALE VMWARE

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per sito)

LLinux nelle Console da gioco

INFO TECNICA SATO Italia

Linux e Open Source: Libero! Non "gratis"...

Installare GNU/Linux

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per sito)

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008

Formattare un PC con Windows 7. Guida Completa

Note sull ambiente di lavoro utilizzato ai Laboratori di Fondamenti di Informatica I

Applicazioni di Ubuntu

GNU/Linux Concetti di base

SOMMARIO COSA SERVE... 2 PRIMA DI INIZIARE... 2 COME PROCEDERE LATO SERVER... 3 COME PROCEDERE LATO CLIENT... 3

Come valutare e scegliere un Sistema Operativo Embedded

Introduzione ai Sistemi Operativi

Transcript:

KERNEL LINUX Ricompilazione ed Ottimizzazione Relatore: Mirco Chinelli Linux Day Torino 2009

Cos'e' un Kernel? Nucleo del Sistema Operativo Astrazione dell'hardware

Tipi di Kernel Monolitico Microkernel Esokernel

Esokernel Kernel minimale Astrazione minima dell'hardware Possibilita' di eseguire binari di diverso tipo

Microkernel Moduli( pezzi di kernel ) a livello utente. Maggiore sicurezza Piu' stabilita' Difficile progettazione

Monolitico TUTTO il kernel e' a livello kernel Sviluppo piu' semplice I bug di singoli moduli possono portare al blocco del kernel Interfaccia di alto livello sull'hardware

Il Kernel LINUX Nell'Aprile 1991, Linus Torvalds inizio' la stesura del Kernel. Struttura Monolitica/Modulare (criticata da Tanenbaum, Professore di Sistemi, creatore di MINIX) Codice sorgente di circa 12 milioni di righe

Reperire i sorgenti www.kernel.org Archivio compresso tar.gz o tar.bz2 Patch ChangeLog

Estrazione sorgenti Creare una directory nella propria home per la compilazione Copiare l'archivio nella cartella Scompattare i sorgenti Caso tar.bz2 tar xvjf linux-versione.tar.bz2 Caso tar.gz tar xvzf linux-versione.tar.bz2

Applicazione delle patch Bugfix Codice non incluso nel ramo ufficiale o stabile Aggiornamenti di versione, senza scaricare ogni volta i sorgenti $bzip2 -dv patch-versione.bz2 $patch -p1 < patch-versione

Classic Way Come per gli altri modi di compilare, spostiamoci nella cartella dei sorgenti: $ cd linux-versione CONFIGURAZIONE $ make dep $ make modules $ make bzimage # make modules_install #cp -v arch/x86/boot/bzimage /boot/vmlinuz -VERSION

Debian Way CONFIGURAZIONE $fakeroot make-kpkg --append-to-version -nomepersonalizzato --revision=1 kernel_image kernel_headers modules_image # dpkg -i linux-image- [VERSIONE_DEL_KERNEL].deb # dpkg -i linux-headers- [VERSIONE_DEL_KERNEL].deb

Arch Way - PKGBUILD Salvare nella directory di compilazione(es.: ~/kernelbuid) i PKGBUILD e il kernel26.install presenti in: http://wiki.archlinux.org/index.php/kernel_compilation _From_Source $cp -r [kernel source location]/* kernelbuild/ CONFIGURAZIONE CONTROLLIAMO i PKGBUILD e kernel26.install $makepkg #pacman -U kernel26-versione

Configurazione Ci sono 3 modi per configurare il kernel: Make xconfig (GUI basata su Qt) Make gconfig (GUI basata su GTK) Make menuconfig (via terminale) Altre possibili opzioni Make defconfig Make silentconfig (oppure make config) Configurazione attuale: /proc/config.gz

IMPORTANTE Per evitare problemi: Controllare la corretta configurazione del bootloader: /boot/grub/menu.lst /etc/lilo.conf

Ottimizzazione Obiettivi Adattare il kernel all'utilizzo che se ne fara' Adattare il kernel alla propria archittetura Diminuire i tempi di boot

Initramfs E' un FS contenente l'immagine di un kernel e di tutti i moduli richiesti all'avvio Conseguenze: Rallenta i tempi di boot E' inutile se compiliamo il kernel a dovere Quindi... NO initramfs!

Cosa compilare all'interno[*] del kernel? Driver di periferiche non rimovibili FileSystem utilizzato dalla partizione di boot Tutto il resto non va compilato all'interno del kernel[ ] ma al massimo come modulo[m]

Moduli richiesti dal nostro sistema #!/bin/bash # find_all_modules.sh for i in `find /sys/ -name modalias -exec cat {} \;`; do /sbin/modprobe --config /dev/null --show-depends $i ; done rev cut -f 1 -d '/' rev sort -u $mount grep /

Ottimizzare per la propria architettura Processor Family $cat /proc/cpuinfo grep model name SMP (Simmetric multi-processing) Dual/Quad Core Dual Processor HIGHMEM64GB PAE(Phisical Address Extensions) RAM>4GB

Ottimizzare per i propri utilizzi Preemption:Capacita' del kernel di fermare quello che sta facendo per eseguire qualcos'altro a priorita' piu' elevata. No Forced - Server Voluntary - Desktop Preemptile - Low Latency Desktop Timer Frequency Interrupts 100Hz per Server 1Khz per Desktop

Miglioriamo ancora un po'! Per ottimizzare il binario: CFLAGS= -march=native -O2 -pipe -fomitframe-pointer Per compilare piu' in fretta MAKEOPTS= il doppio del numero di core/processori Oppure compilare con l'opzione: $make -j(2*n)

Novita' KMS(Kernel Mode Settings) + GEM (Graphics Execution Manager) Gestione dell'output e della memoria video video da parte del kernel Risoluzione framebuffer nativa Cambio utente veloce, piu' veloce Cambio terminale veloce Nessun lampeggiamento! Possibilita' di BSOD! Stabile per Intel, in testing su Ati

Novita' Devtmpfs: il ritorno di devfs Gestione dei device di nuovo in kernel space Btrfs: ZFS per Linux Copy-on-write filesystem Extents (blocchi contigui) Supporto migliorato a file di grosse dimensioni

Links e libri utili http://wiki.archlinux.org/index.php/kernel_compilation http://www.slacky.eu/wikislack/index.php? title=compilazione_e_ricompilazione_kernel_su_slackware http://guide.debianizzati.org/index.php/debian_kernel_howto http://wiki.ubuntuit.org/amministrazionesistema/compilazionekernel http://www.kernel.org/pub/linux/docs/ http://www.makelinux.net/kernel/diagram Linux Kernel in a nutshell Kroah-Hartman O'Reilly www.h-online.com

Buona Compilazione!!!! Mirco Chinelli - mirco.chinelli@linux.com