“Sistemi Operativi LINUX Embedded Real-Time”(1 di 4) “SISTEMI OPERATIVI LINUX EMBEDDED REAL-TIME” Tre giornate di studio e di workshop dedicate al mondo Linux Real Time 1 “Sistemi Operativi LINUX Embedded Real-Time” (2 di 4) PROGRAMMA DEL CORSO (1 di 3): INTRODUZIONE • Panoramica del corso; • Materiale didattico; • Libri ed indirizzi Internet di riferimento. SVILUPPO IN AMBIENTE LINUX –La Free Software progetto GNU; Foundation – Breve panoramica delle licenze software Open-Source (i.e. GPL, LGPL, BSD, Dual Licensing) e scelta della licenza adatta per lo sviluppo di un prodotto industriale. • Architettura del Kernel Linux; • Richiami ai comandi di debugging: ldd, gdb, ddd, objdump, strace; • Modo utente e modo supervisore; • Accenni alla struttura dei makefile e degli script bash; • Sviluppo del kernel: – Gestione di patch: comandi patch e diff; – Gestione di un repository: accenni all’uso di cvs, svn. • Compilare e installare un nuovo kernel; – Come diventare sviluppatori del kernel; – Git. • Linked lists; • Lo scheduler di Linux; IL KERNEL LINUX • Semafori e Spinlocks; •Introduzione al Kernel Linux: • Time management e timers del kernel; – Breve storia dei sistemi Unix e del kernel Linux; il - Accenni allo standard POSIX; • Richiami ai comandi di compilazione: make, gcc; • Metodologia di sviluppo: ed • Moduli del kernel: – Come scrivere un modulo del kernel; 2 “Sistemi Operativi LINUX Embedded Real-Time” (3 di 4) PROGRAMMA DEL CORSO (2 di 3): – Gestione dei moduli: insmod, lsmod, rmmod, modprobe; –Uso di TFTP. • Problematiche di sviluppo di sistemi embedded basati su Linux: • Kernel debugging. – Crosscompilazione; SISTEMI EMBEDDED – Debugging: Trace32; • Classificazione dei sistemi embedded; – Posizionamento dei sistemi Linux Embedded; – Panoramica delle embedded Gestione; diverse architetture – Problematiche nell'uso di sistemi embedded. gdbserver, Lauterbach – Utilizzo di Snapgear e Scratchbox. •Problematiche di gestione del ciclo di vita del software nei sistemi Linux: – Quando occorre cambiare distribuzione? • Cosa si intende per Embedded Linux; – Quale versione del Kernel? • Problematiche di utilizzo di sistemi embedded basati su Linux: – Gestione degli update applicativi e di sistema – Editing remoto: vim; – Bootloader U-Boot – Busybox; – Connessione ad un sistema Linux Embedded usando minicom / hyperterminal; – Trasferimento di files con lrz; LINUX E REAL-TIME • Introduzione ai sistemi Real-Time: – Cosa è un sistema real-time; –Brevi cenni allo scheduling real-time a priorità fisse; 3 “Sistemi Operativi LINUX Embedded Real-Time” (4 di 4) PROGRAMMA DEL CORSO (3 di 3): – Brevi cenni alle tecniche di gestione delle risorse condivise nei sistemi real-time. • Linux e Real-Time: • Carrier Grade Linux: – Non solo real-time: altri requisiti; – Fault-tolerance, hot swap, etc. – Panorama storico; – RT-Linux (Yodaiken); ESEMPI PRATICI – RTAI; • Compilazione Scratchbox: – LXRT e Fusion; con l’ambiente di sviluppo – Problematiche: protezione; • Compilare ed installare U-Boot: – Real-Time in user space (UVM); • Compilazione e flashing di un nuovo kernel; – RTOS Skins con Xenomai; • Installare e compilare un kernel soft real-time; – Libreria Comedi per l’accesso ai devices • Installazione e RTAI/Xenomai; • Real-Time (soft) in user space: – Obiettivo: Linux diventa Real-Time; – Latenze del kernel Linux; – Preemption patches; patches e Low – Modifiche allo schedulatore; – Approcci di ricerca: reservations. Latency uso di un kernel basato su • Scrivere, compilare, installare moduli del kernel; • Compilare ed installare Busybox; • Trasferimento e flashing di binari utilizzando TFTP; • Esempi Trace32; di debugging utilizzando Lauterbach • Esempi di utilizzo di sistemi Linux embedded basato su piattaforma ARM9. 4