Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Struttura del corso
Introduzione
- Obiettivi
- Chi sei
- La Fondazione Linux
- Linux Formazione di base
- Programmi di certificazione e badge digitali
- Linux Distribuzioni
- Piattaforme
- Preparazione del sistema
- Utilizzo e download di una macchina virtuale
- Le cose cambiano in Linux
Preliminari
- Procedure
- Norme e l'LSB
Come lavorare nei progetti OSS **
- Panoramica su come contribuire correttamente
- Rimani vicino alla linea principale per sicurezza e qualità
- Studiare e comprendere il DNA del progetto
- Capire quale prurito vuoi Scratch
- Identificare i manutentori e i loro flussi di lavoro e metodi
- Ricevi input tempestivi e lavora all'aperto
- Contribuisci con bit incrementali, non con dump di codice di grandi dimensioni
- Lascia il tuo ego fuori dalla porta: non essere sottileSkinned
- Sii paziente, sviluppa relazioni a lungo termine, sii utile
Compilatori
- GCC
- Altri compilatori
- Principali opzioni gcc
- Preprocessore
- Ambienti di sviluppo integrati (IDE)
- Laboratori
Biblioteche
- Librerie statiche
- Librerie condivise
- Collegamento alle librerie
- Caricatore di collegamento dinamico
- Laboratori
Fare
- Utilizzo di make e Makefile
- Costruzione di progetti di grandi dimensioni
- Regole più complicate
- Regole predefinite
- Laboratori
Controllo del codice sorgente
- Controllo del codice sorgente
- RCS e CVS
- Sovversione
- Git
- Laboratori
Debug e dump di base
- Gdb
- Cosa sono i file di dump di base?
- Produzione di dump di base
- Esame dei dump di base
- Laboratori
Strumenti di debug
- Ottenere il tempo
- Profilazione e prestazioni
- Valgrind
- Laboratori
Chiamate di sistema
- Chiamate di sistema e funzioni di libreria
- Come vengono effettuate le chiamate di sistema
- Valori restituiti e numeri di errore
- Laboratori
Memoria Management e allocazione
- Memorie Management
- Allocazione dinamica
- Ottimizzazione di malloc()
- Blocco delle pagine
- Laboratori
File e filesystem in Linux **
- File, directory e dispositivi
- Il file system virtuale
- Il filesystem ext2/ext3
- Journaling dei filesystem
- Il filesystem ext4/
- Laboratori
File I/O
- I/O dei file UNIX
- Apertura e chiusura
- Leggere, scrivere e cercare
- I/O posizionale e vettoriale
- Libreria I/O standard
- Supporto per file di grandi dimensioni (LFS)
- Laboratori
Operazioni avanzate sui file
- Funzioni statistiche
- Funzioni di directory
- inotify
- Mappatura della memoria
- flock() e fcntl()
- Creazione di file temporanei
- Altre chiamate di sistema
- Laboratori
Processi I
- Che cos'è un processo?
- Limiti del processo
- Gruppi di processi
- Il filesystem proc
- Metodi InterProcess Communication
- Laboratori
Processi II
- Utilizzo di system() per creare un processo
- Utilizzo di fork() per creare un processo
- Utilizzo di exec() per creare un processo
- Utilizzo di clone()
- Uscita
- Costruttori e Distruttori
- Attesa
- Processi demoniaci
- Laboratori
Tubi e Fifo
- Tubazioni e InterProcess Communication
- popen() e pclose()
- tubo()
- Named Pipe (FIFO)
- splice(), vmsplice() e tee()
- Laboratori
I/O asincrono**
- Che cos'è l'I/O asincrono?
- L'API DI I/O asincrono POSIX
- Linux Attuazione
- Laboratori
Segnali I
- Cosa sono i segnali?
- Segnali disponibili
- Dispacciamento dei segnali
- Allarmi, Pausa e Sonno
- Impostazione di un gestore di segnali
- Set di segnali
- sigaction()
- Laboratori
Segnali II
- Reentrancy e gestori di segnali
- Salti e ritorni non locali
- siginfo e sigqueue()
- Segnali in tempo reale
- Laboratori
POSIX Discussioni I
- Multithreading in Linux
- Struttura di base del programma
- Creazione ed eliminazione di thread
- Segnali e thread
- Forking vs. filettatura
- Laboratori
Filettature POSIX II
- Situazioni di stallo e condizioni di gara
- Operazioni Mutex
- Semafori
- Futexes
- Operazioni condizionali
- Laboratori
Networking e prese
- Networking Livelli
- Cosa sono le prese?
- Prese di flusso
- Zoccoli di datagrammi
- Prese grezze
- Ordinamento dei byte
- Laboratori
Socket, indirizzi e host
- Strutture degli indirizzi socket
- Conversione degli indirizzi IP
- Informazioni sull'host
- Laboratori
Socket, porte e protocolli
- Informazioni sulla porta di servizio
- Informazioni sul protocollo
- Laboratori
Client socket
- Sequenza client di base
- presa()
- connettere()
- close() e shutdown()
- Client UNIX
- Client Internet
- Laboratori
Server Sockets
- Sequenza di server di base
- bind()
- ascolta()
- accettare()
- Server UNIX
- Server Internet
- Laboratori
Operazioni di ingresso/uscita dei socket
- write(), read()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- Laboratori
Opzioni socket
- Recupero e impostazione delle opzioni socket
- fcntl()
- ioctl()
- getsockopt() e setsockopt()
- Laboratori
Prese Netlink**
- Cosa sono i socket netlink?
- Apertura di un socket netlink
- Messaggi netlink
- Laboratori
Server socket multiplexing e simultanei
- I/O socket multiplexati e asincroni
- selezionare()
- sondaggio()
- pselect() e ppoll()
- epoll
- I/O asincrono e guidato dal segnale
- Server simultanei
- Laboratori
Inter Processo Communication
- Metodi di IPC
- POSIX IPC
- Sistema V IPC**
- Laboratori
Memoria condivisa
- Che cos'è la memoria condivisa?
- Memoria condivisa POSIX
- Memoria condivisa System V**
- Laboratori
Semafori
- Che cos'è un semaforo?
- Semafori POSIX
- Semafori System V**
- Laboratori
Code di messaggi
- Che cosa sono le code di messaggi?
- Code di messaggi POSIX
- Code di messaggi di System V**
- Laboratori
Requisiti
Questo corso è rivolto a sviluppatori esperti. Gli studenti devono essere esperti nella programmazione C e avere familiarità con le utilità di base Linux e gli editor di testo.
Pubblico
Questo corso è rivolto a sviluppatori esperti. Gli studenti devono essere esperti nella programmazione C e avere familiarità con le utilità di base Linux e gli editor di testo.
Livello di esperienza: Intermedio
28 ore