PIT 2012: Workshop@UniNA



Documenti analoghi
Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Riferimento rapido per l'installazione SUSE Linux Enterprise Server 11

Kernel Linux (per sysadm)

Il web server Apache Lezione n. 3. Introduzione

Ricompilazione del Kernel a modo mio :

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

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

MODEM USB MDC525UP Guida Rapida LINUX

Manuale di Aggiornamento BOLLETTINO. Rel H4. DATALOG Soluzioni Integrate a 32 Bit

Compilazione Kernel 2.6x con supporto BootSplash

COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO e PARAMETRI2015

Riferimento rapido per l'installazione SUSE Linux Enterprise Server 11 SP1

Architetture Applicative

Acronis Universal Restore

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Quaderni per l'uso di computer

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

Mac Application Manager 1.3 (SOLO PER TIGER)

Gestione della memoria centrale

Corso di Sistemi di Elaborazione delle informazioni

Online Help StruxureWare Data Center Expert

System Center Virtual Machine Manager Library Management

bolt PC-Suite (Guida all installazione)

1.1 Installazione di ARCHLine.XP

Creazione e installazione di un NAS utilizzando FreeNAS

Manuale di Aggiornamento BOLLETTINO. Rel H2. DATALOG Soluzioni Integrate a 32 Bit

Il Sistema Operativo (1)

Installazione e caratteristiche generali 1

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Il Software. Il software del PC. Il BIOS

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

Premessa Le indicazioni seguenti sono parzialmente tratte da Wikipedia ( e da un tutorial di Pierlauro Sciarelli su comefare.

Virtualizzazione di macchine Linux tramite XEN

Non sono supportate reti peer to peer, è necessario avere un server dedicato.

Punto Print Il programma per stampare. Documentazione Tecnica

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

START Easy GO! Il gestionale sempre in tasca! Procedura di aggiornamento. Documentazione utente Pagina 1 di 18

Istruzioni per l uso della Guida. Icone utilizzate in questa Guida. Istruzioni per l uso della Guida. Software di backup LaCie Guida per l utente

PORTALE CLIENTI Manuale utente

Installazione LINUX 10.0

Scegliamo l opzione <salva>

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

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Interfaccia ottica Iskraemeco Sonda 5 / Sonda 6 Guida all installazione del driver per i sistemi operativi Windows 7 e Windows XP

Linux nel calcolo distribuito

Breve guida a Linux Mint

Hardware di un Computer

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Manuale Terminal Manager 2.0

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

Multisentry ASE-V (v. 1.0) - Guida rapida all installazione

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

GateManager. 1 Indice. tecnico@gate-manager.it

Panoramica: che cosa è necessario

Linux su FPGA Xilinx

Introduzione ai Sistemi Operativi

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

Il software del PC. Il BIOS

DINAMIC: gestione assistenza tecnica

Dr. Andrea Niri aka AndydnA ANDYDNA.NET S.r.l.

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

Sistemi operativi. Esempi di sistemi operativi

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Guida all installazione e utilizzo del software Airbag Crash Cleaner

Virtualizzazione VirtualBox su Host Windows

HOW-TO GUIDE: Come installare Toyota Touch&GoToolbox? HOW-TO GUIDE: Come creare una fingerprint del vostro dispositivo in una periferica di

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

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

MODULO 02. Iniziamo a usare il computer

Supporto On Line Allegato FAQ

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

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith

Guida per l aggiornamento del software del Browser SISTRI

HOW-TO GUIDE: Come installare Toyota Touch&GoToolbox? HOW-TO GUIDE: Come creare una fingerprint del vostro dispositivo in una periferica di

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

Istruzioni operative instal azione FirmaVerifica3.0 Pag.1 di 27

Guida all installazione e all aggiornamento di Virtuemart 2.0.x

IBM SPSS Statistics - Essentials for R - Istruzioni diinstallazione per Mac OS

Aggiornamento programma da INTERNET

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

CONFIGURAZIONE E GESTIONE DEI DATABASE (rev. 1.1)

Guida all installazione e configurazione di Joomla 1.5

GUIDA UTENTE PRIMA NOTA SEMPLICE

Sharpdesk V3.3. Guida all installazione Versione

Come installare Ubuntu Linux

1. Avviare il computer

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

CONFIGURARE IL DISPOSITIVO DI TELEASSISTENZA

Modello per la compilazione della scheda progetto SK_3.1.xls (da utilizzarsi per la presentazione di progetti di attività formative)

Installazione alla portata di tutti: Ubuntu e derivate

SquashFS, AuFS ed i segreti delle distribuzioni live

Installare Ubuntu su macchina virtuale

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

Transcript:

PIT 2012: Workshop@UniNA Compilazione del Kernel Linux - light tips && tricks - a cura di Marco Ferrigno con il patrocinio del Preside della Facoltà di Ingegneria dell'università degli Studi di Napoli Federico II: Prof. Piero Salatino e con il sostegno del Prof. Antonio Pescapè Comics Unina Research Group

root@host:/# intro PROPEDEUTICITA': Nozioni basilari sulle architetture di elaborazione, Nozioni basilari sull'utilizzo dei sistemi operativi, Curiosità e spirito di iniziativa. COSA IMPAREREMO DA QUESTO TALK: GNU/Linux Day 2011: a che punto eravamo rimasti? Il kernel Linux in pratica; Compilazione: un approccio top-down; Bootloader manager && opzioni addizionali

GNU General Public License Il sistema Linux è' libero, nel senso che si può' copiare, modificare e usare in qualunque modo si desideri e si può far circolare senza alcuna limitazione All'atto della distribuzione si deve rendere disponibile il codice sorgente e ciò vale per ogni componente di un pacchetto di distribuzione che sia oggetto della GPL

Kernel: cos'è realmente? E' il software il cui compito è quello di fornire ai processi in esecuzione sull'elaboratore un accesso sicuro e controllato al hardware. PRINCIPALI MANSIONI: Gestione della porzione tempo-macchina Gestione delle astrazioni Nel nostro caso (quasi) KERNEL MONOLITICI (UNIX->*.BSD, LINUX ) INTEGRAZIONE DEL CODICE STRETTA

Kernel Linux: mappa

Kernel Linux: perchè compilare Domanda: La mia distro ha già un kernel precompilato, perchè dovrei ricompilare? Essenzialmente sono quattro i casi in cui la ricompilazione è necessaria L'aggiornamento a versioni più recenti senza cambiare distribuzione; L'inserimento di nuove funzionalità non contenute nel kernel precompilato; L'implementazione di nuovi driver per una certa periferica; Curiosità e spirito di iniziativa ^_^

Kernel Linux: versioni disponibili Domanda: Dove procurarsi i sorgenti? su https://www.kernel.org/ Caso d'esempio: Linux kernel 3.3.2 (Latest Stable Kernel; 13 aprile 2012) https://www.kernel.org/pub/linux/kernel/v3.x/ Numerazione: Nome file: linux-x.y.z Major release: x Ramo di sviluppo: y Versioni per ramo di sviluppo: z

Kernel Linux: il formato compresso SCOMPATTARE L'ARCHIVIO consiglio: scompattare l'archivio nella cartella /usr/src root@host:/# bunzip2 linux-3.3.2.tar.bz2 sostituisce il *.tar.bz2 con il suo equivalente non compresso *.tar root@host:/# tar xvf linux-3.3.2.tar estrae dall'archivio i files e crea la giusta struttura di directory, mantenendo il file *.tar a questo punto si può entrare nella direcotry creata: root@host:/# cd linux-3.3.2 root@host:/linux-3.3.2#

Kernel Linux: configurazione LA FASE DI CONFIGURAZIONE root@host:/linux-3.3.2# make config nel caso nel sistema fossero presenti le librerie ncurses (e relativi files di sviluppo) è possibile sostituire il comando sopra citato con root@host:/linux-3.3.2# make menuconfig La selezione dei parametri è un procedimento lungo che richiede molta ponderazione: si tratta di decidere cosa andrà compilato ed incluso nel kernel, che cosa non dovrà essere compilato, cosa andrà compilato ma sarà utilizzato come modulo. ATTENZIONE ai contrassegni: (*); (M)

Kernel Linux: make menuconfig UNO DEI CASI D'USO: make menuconfig

General setup ---> CONFIGURA FUNZIONALITÀ GENERALI DEL KERNEL. Voci principali (o da tenere sott'occhio) su ~60: ( ) Tool per la Cross Compilazione Modalità di compressione del Kernel --- >(GZIP, BZIP2, LZMA, XZ, LZO) [*]System V IPC Sottosistema IRQ ---> Sottosistema RCU ---> [*] Initial RAM filesystem and RAM disk support [*] Configure standard Kernel features (expert users) ---> Kernel performance events and counter --->

[*] Enable loadable module support ---> I moduli sono piccoli pezzi di codice già compilato che possono essere inseriti nel Kernel in esecuzione. Abilitando questa opzione ed eseguendo successivamente make modules_install metteremo i moduli nella cartella /lib/modules da dove potranno essere poi caricati tramite l'utilizzo di modprobe altri dettagli nelle prossime slides :)

[*] Enable the block layer ---> Attivazione dei supporti di grandi dimensioni (>2TB) e opzioni per la loro gestione PRINCIPALE SOTTOVOCE: I/O SCHEDULER: DEADLINE: inizio e fine di un servizio tramite un preciso vincolo temporale CFQ: richieste sincrone alle quali è assegnata una porzione di tempo-macchina per ciascuna coda di appartenenza NOOP: semplicemente FIFO ^_^

Processor type and features ---> PROCESSORE: TIPO E CARATTERISTICHE. In questa sezione potete scegliere il tipo di processore per il quale va compilato il Kernel Voci principali (o da tenere sott'occhio) su ~70: [*] Enable MPS table (MultiProcessor Specification) [*] Supporting for big SMP System with more than 8 CPUs [*] Paravirtualized guest support ---> Processor family ---> [*] SMT (Hyperthreading) scheduler support Preemption model ---> (server, desktop, low-latency desktop) Hight memory support --->

ACPI options / Bus / ELF POWER MANAGEMENT AND ACPI OPTIONS ---> Da tenere sott'occhio: CPU frequency scaling x86 frequency scaling driver BUS OPTIONS ---> PCI/PCI-EXPRESS/PCMCIA EXECUTABLE FILE FORMAT / EMULATIONS ---> [*] Kernel support for ELF binaries

[*] Networking support ---> LISTA VASTISSIMA! Un insieme di opzioni specializzate per la rete, tra cui: Networking option ---> [*] Amateur radio support ---> [M] IRDA ---> [M] Bluetooth ---> [*] Wireless ---> [M] WIMAX ---> NFC (EXPERIMENTAL) --->

Device Drivers / Firmware Drivers DEVICE DRIVERS ---> Opzioni relative alla gestione dei device, dai più obsoleti a quelli più usati: ATA/ATAPI/MFM/RLL; SCSI; SERIAL ATA; PARALLEL ATA; IEEE 1394; MACINTOSH DEVICE DRIVER; ISDN SUPPORT; USB SUPPORT; MMC/SD/SDIO; FIRMWARE DRIVERS ---> [M] EFI variable support [M] DELL system management base driver [ ] Sigmastudio firmware loader [ ] Google firmware driver

File system ---> IL DOGMA: OGNI COSA E' UN FILE La lista dei filesystem supportati è vastissima: EXT2, EXT3, EXT4, RAISER, JFS, XFS, BTRFS,.. JOURNALING: annotazione delle modifiche a seguito di una caduta di tensione Altre particolarità: Supporto delle quote [M] FUSE (File system in User Space) DOS/FAT/NT file system ---> Network file system --->

Kernel hacking ---> Avrete a che fare con ~100naio di opzioni. Nella maggior parte dei casi si tratta di debugger e detector: File system Scheduler SLAB Kernel memory leak Spinlock

Security options ---> Particolare attenzione a: SELINUX: razionalizza il volume di software caricato con un rafforzamento delle politiche di sicurezza strettamente allineato con i requisiti minimi del TCSEC (Trested Computer System Evalutation Criteria) APPARMOR: permette di associare ad ogni programma un profilo di sicurezza che restringe le capacità del programma stesso

Cryptogaphic API ---> [*] Cryptographic algorith manager Molti degli algoritmi presenti sono impostati come moduli e sono divisi nelle seguenti categorie Authenticated encryption Block modes Hash modes Digest Ciphers Compression Random number generator Hardware crypto device --->

Virtualization ---> KERNEL BASED VIRTUAL MACHINE (KVM) ha tra i suoi maggiori sviluppatori Red-Hat KVM è una complessa infrastruttura di virtualizzazione attualmente implementata come modulo Si prevede a breve la realizzazione di un'interfaccia a chiamata di sistema

Kernel Linux: la compilazione TERMINATA LA LUUUUUUUUUNGA DISAMINA, PASSIAMO ALLA COMPILAZIONE! Assicuratevi che la vostra macchina sia a disposizione senza interruzioni ma soprattutto trovatevi qualcosa di divertente da fare 4 semplici lettere stresseranno il vostro pc in una maniera non indifferente root@host:/linux-3.3.2# make

Kernel Linux: immagine compressa e moduli IMMAGINE COMPRESSA In questo momento abbiamo compilato tutto ma non abbiamo ancora messo al loro posto nè i moduli nè l'immagine del kernel root@host:/linux-3.3.2# make bzimage Fatto ciò nella sottodirectory arch/xyz/boot si troverà il file bzimage. xyz = sigla che indica l'architettura per cui è stato compilato il kernel Creato il Kernel è il momento di installare i moduli root@host:/linux-3.3.2# make modules_install FATTO! (cit. necessaria)! Manca solo un RAMdisk

Kernel Linux: moduli & driver Ma cos'è un modulo? E' un componente software che può svolgere diverse funzioni VANTAGGI: Può essere compilato separatamente ed essere caricato in un kernel già in uso Alta personalizzazione Distribuzione gratuita e libera I DRIVER IN UN SISTEMA LINUX: Il kernel possiede delle tabelle dinamiche di tutti i driver noti e fornisce un insieme di procedure che permettono di aggiungere o rimuovere un driver da queste tabelle in qualunque momento MODULI & DRIVER: Un modulo può registrare molti tipi di driver; Un certo modulo può scegliere di registrare più di un driver; Un certo driver potrebbe voler registrare due meccanismi distinti per l'accesso ad un dispositivo

Kernel Linux: initramfs Torniamo al RAMdisk: cos'è? E' una porzione di RAM che viene utilizzata come disco. root@host:/linux-3.3.2# mkinitramfs -o /boot/initrd.img-3.3.2 Il primo parametro indica in path in cui allocare il file

Kernel Linux: the end o quasi COPIA DEI FILE IMMAGINE DEL KERNEL cp arch/x86/boot/bzimage /boot/vmlinuz-3.3.2 MAPPATURA DEL SISTEMA cp System.map /boot/system.map-3.3.2 [CONSIGLIATA] CONFIGURAZIONE USATA cp.config /boot/config-3.3.2 MODIFICA DEL BOOTLOADER LILO, GRUB, GRUB2 SI RIMANDA ALLE RISPETTIVE GUIDE (RTFM googleando googleando)

Kernel Linux: il lato oscuro KERNEL PANIC ERRORE IRRECUPERABILE INDIVIDUATO IN KERNEL SPACE MANCATO CARICAMENTO DEI MODULI INIEZIONE DI FALLIMENTI TRANSAZIONE DI UN SISTEMA IN UNO STATO NON CORRETTO OVERFLOW STACK BUFFER HEAP

Moduli: after compiling INSERIMENTO E DEALLOCAZIONE rispettivamente con insmod e rmmod Nel loro funzionamento non tengono conto delle dipendenze, di conseguenza la precedenza fra i moduli deve essere tenuta in conto quando si determina l'ordine con il quale caricarli. Naturalmente la rimozione dei moduli deve avvenire per ordine inverso. LISTA MODULI CARICATI lsmod L'output visualizza il nome del modulo, il numero di dipendenze e le dipendenze stesse. CARICAMENTO MODULI modprobe Carica, sfruttando la il contenuto di modules.dep, tutti i moduli eventualmente necessari per il corretto funzionamento di quello specificato GENERATORE DI DIPENDENZE depmod Si trova come script di avvio in tutte le distribuzioni e consente di generare automaticamente il file modules.dep (lista di dipendenze)

Kernel Linux: opzioni addizionali Alcune opzioni addizionali: Algoritmo di scheduling: inserimento Il kernel permette di impostare l'algoritmo di scheduling a runtime mediante sysfs; in questo modo è possibile selezionare il miglior algoritmo a seconda del proprio utilizzo root@host:/# echo nomescheduler > sys/block/nomedevice/queue/iosched Opzioni di avvio installazione acpi=off disattiva l'uso dell'acpi apm=off disattiva l'uso dell'apm display=ip:0 trasmette il display su un sistema remoto expert permette il partizionamento di un media staccabile e il montaggio di altri device mediacheck verifica integrità iso noathlon disattiva le ottimizzazioni per AMD Athlon noprobe disattiva il rilevamento hardware nousb disattiva il caricamento del modulo e il montaggio di periferiche usb resolution= imposta la modalità video preferita

Stiamo per finire... Talk is cheap. Show me the code (Linus Torvalds)

stiamo finendo... Un sentito ringraziamento a chi ha permesso lo svolgersi di tutto questo: al Preside della Facoltà di Ingegneria dell'università degli Studi di Napoli Federico II: Prof. Piero Salatino e al Prof. Antonio Pescapè, nostro eterno supporter Ai ragazzi dell'associazione NaLug Napoli GNU/Linux Users Group http://nalug.net info@nalug.net

abbiamo finito! Bibliografia: dal kernel 2.2 in poi parecchi kernel panic -.-' Riferimenti e contatti: Marco Ferrigno - Security & system independent researcher - - Developer of the Italian Debian GNU/Linux HOWTOs - http://marcoferrigno.wordpress.com best regards ;-)