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.
Schița de curs
Introducere
- Obiective
- Cine sunteți
- Fundația Linux
- Formarea Linux Fundației
- Programe de certificare și insigne digitale
- Linux Distribuții
- Platforme
- Pregătirea sistemului dvs.
- Utilizarea și descărcarea unei mașini virtuale
- Lucrurile se schimbă în Linux
Preliminarii
- Proceduri
- Standardele și LSB
Cum se lucrează în cadrul proiectelor OSS **
- Privire de ansamblu asupra modului de a contribui în mod corespunzător
- Rămâneți aproape de linia principală pentru securitate și calitate
- Studiați și înțelegeți ADN-ul proiectului
- Aflați ce mâncărime doriți să Scratch
- Identificați responsabilii cu întreținerea și fluxurile și metodele lor de lucru
- Obțineți din timp contribuții și lucrați în mod deschis
- Contribuiți cu fragmente incrementale, nu cu descărcări mari de cod
- Lasă-ți ego-ul la ușă: Nu fiți prea slab de caracter
- Fiți răbdător, dezvoltați relații pe termen lung, fiți util
Compilatoare
- GCC
- Alte compilatoare
- Principalele opțiuni gcc
- Preprocesor
- Medii de dezvoltare integrate (IDE)
- Laboratoare
Biblioteci
- Biblioteci statice
- Biblioteci partajate
- Conectarea la biblioteci
- Încărcător de legături dinamice
- Laboratoare
Faceți
- Utilizarea make și a fișierelor Makefile
- Construirea proiectelor mari
- Reguli mai complicate
- Reguli încorporate
- Laboratoare
Controlul sursei
- Controlul sursei
- RCS și CVS
- Subversion
- git
- Laboratoare
Depanarea și descărcările de nucleu
- gdb
- Ce sunt fișierele Core Dump?
- Producerea de Core Dumps
- Examinarea fișierelor de vidare a nucleului
- Laboratoare
Instrumente de depanare
- Obținerea timpului
- Profilarea și performanța
- valgrind
- Laboratoare
Apeluri de sistem
- Apeluri de sistem vs. funcții de bibliotecă
- Cum se efectuează apelurile de sistem
- Valori de returnare și numere de eroare
- Laboratoare
Memorie Management și alocare
- Memorie Management
- Alocarea dinamică
- Ajustarea malloc()
- Blocarea paginilor
- Laboratoare
Fișiere și sisteme de fișiere în Linux **
- Fișiere, directoare și dispozitive
- Sistemul de fișiere virtuale
- Sistemul de fișiere ext2/ext3
- Sisteme de fișiere cu jurnalizare
- Sistemul de fișiere ext4/
- Laboratoare
E/S de fișiere
- UNIX File I/O
- Deschiderea și închiderea
- Citire, scriere și căutare
- I/O pozițional și vectorial
- Biblioteca I/O standard
- Suport pentru fișiere mari (LFS)
- Laboratoare
Operațiuni avansate cu fișiere
- Funcții Stat
- Funcții de directoare
- inotify
- Maparea memoriei
- flock() și fcntl()
- Crearea de fișiere temporare
- Alte apeluri de sistem
- Laboratoare
Procese I
- Ce este un proces?
- Limitele proceselor
- Grupuri de procese
- Sistemul de fișiere proc
- Metode interproces Communication
- Laboratoare
Procese II
- Utilizarea system() pentru a crea un proces
- Utilizarea fork() pentru a crea un proces
- Utilizarea exec() pentru a crea un proces
- Utilizarea clone()
- Ieșirea
- Constructori și destructori
- Așteptarea
- Procese demon
- Laboratoare
Pipe-uri și Fifos
- Pipe-uri și InterProces Communication
- popen() și pclose()
- pipe()
- Pipe-uri numite (FIFO)
- splice(), vmsplice() ș i tee()
- Laboratoare
I/O asincronă**
- Ce este I/O asincronă?
- API-ul POSIX de I/O asincronă
- Linux Implementare
- Laboratoare
Semnale I
- Ce sunt semnalele?
- Semnale disponibile
- Dispecerizarea semnalelor
- Alarme, pauză și adormire
- Configurarea unui gestionar de semnale
- Seturi de semnale
- sigaction()
- Laboratoare
Semnale II
- Reîntregirea și gestionarii de semnal
- Salt și retururi nelocale
- siginfo și sigqueue()
- Semnale în timp real
- Laboratoare
Fire POSIX I
- Multithreading sub Linux
- Structura de bază a programului
- Crearea și distrugerea firelor de execuție
- Semnale și fire de execuție
- Forking vs. Threading
- Laboratoare
Fire POSIX II
- Blocaje și condiții de rasă
- Operațiuni Mutex
- Semafoare
- Futexuri
- Operațiuni condiționate
- Laboratoare
Networking și Sockets
- Networking Straturi
- Ce sunt Sockets?
- Sockets de flux
- Socluri de datagramă
- Socketuri brute
- Ordonarea octeților
- Laboratoare
Adrese ș i gazde Sockets
- Structuri de adrese de socket
- Conversia adreselor IP
- Informații despre gazdă
- Laboratoare
Porturi și protocoale Sockets
- Informații despre portul de serviciu
- Informații despre protocol
- Laboratoare
Clienți Sockets
- Secvența de bază a clientului
- socket()
- connect()
- close() și shutdown()
- Client UNIX
- Client Internet
- Laboratoare
Servere Sockets
- Secvența de bază a serverului
- bind()
- listen()
- accept()
- Server UNIX
- Server Internet
- Laboratoare
Operațiuni de intrare/ieș ire prin socket-uri
- write(), read()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- Laboratoare
Opțiuni Sockets
- Obținerea și setarea opțiunilor socket-urilor
- fcntl()
- ioctl()
- getsockopt() și setsockopt()
- Laboratoare
Sockets Netlink**
- Ce sunt Sockets netlink?
- Deschiderea unui Socket netlink
- Mesaje netlink
- Laboratoare
Multiplexarea socketurilor și serverele concurente
- Socket I/O multiplexat și asincron
- select()
- poll()
- pselect() ș i ppoll()
- epoll
- I/O asincronă și cu semnal
- Servere concurente
- Laboratoare
Interproces Communication
- Metode de IPC
- IPC POSIX
- System V IPC**
- Laboratoare
Memorie partajată
- Ce este memoria partajată?
- Memoria partajată POSIX
- Memorie partajată System V**
- Laboratoare
Semafoare
- Ce este un semafor?
- Semafoare POSIX
- Semafoare în sistemul V**
- Laboratoare
Cozi de mesaje
- Ce sunt cozile de mesaje?
- Cozi de mesaje POSIX
- Cozile de mesaje System V**
- Laboratoare
Cerințe
Acest curs se adresează dezvoltatorilor cu experiență. Studenții trebuie să cunoască bine programarea în C și să fie familiarizați cu utilitarele de bază Linux și cu editorii de text.
Audiență
Acest curs se adresează dezvoltatorilor cu experiență. Studenții trebuie să cunoască bine programarea în C și să fie familiarizați cu utilitățile de bază Linux și cu editorii de text.
Nivel de experiență: Intermediar
28 ore