Schița de curs

Introducere

  •  Obiective
  •  Cine Ești Tu
  •  The Linux Foundation (Organizația Linux)
  •  Formarea Linux Foundation
  •  Programe de Certificare și Digital Badging
  •  Distribuțiile Linux
  •  Platforme
  •  Pregătirea Sistemului
  •  Utilizarea și Descărcarea unei Machine Virtuale
  •  Lucrurile se Schimbă în Linux

Preliminare

  •  Proceduri
  •  Standarde și LSB (Linux Standard Base)

Cum să Muncești în Proiectele OSS **

  •  Prezentare Generală despre Cum să Contribui Corect
  •  Rămâne La Marginea Principala Pentru Securitate și Calitate
  •  Studiază și Înțelege DNA Proiectului
  •  Află Ce Dorți Să Resoluți
  •  Identificarea Administratorilor și Metodelor lor de Lucru
  •  Obține Feedback Precoace și Muncește în Deschidere
  •  Contribuie Cu Mici Bucăți, Nu Cu Cărouri De Cod
  •  Lasă Ego-ul La Ușă: Fii Neafectat de Criticile Negative
  •  Fi Pacient, Dezvolte Relații Pe Termen Lung, Fi Util

Compilatoare

  •  GCC (GNU Compiler Collection)
  •  Altele Compilatoare
  •  Opțiuni Major GCC
  •  Preprocesor
  •  Medii de Dezvoltare Integrat (IDE)
  •  Laboratoare

Biblioteci

  •  Biblioteci Statice
  •  Biblioteci Comune
  •  Legarea la Biblioteci
  •  Loader de Legare Dinamică
  •  Laboratoare

Make

  •  Utilizarea make și Makefiles
  •  Construirea Proiectelor Mari
  •  Reguli Mai Complicate
  •  Reguli Implementate Dinamic
  •  Laboratoare

Controlul Sursă

  •  Controlul Sursă
  •  RCS și CVS (Revision Control System, Concurrent Versions System)
  •  Subversion
  •  git
  •  Laboratoare

Depanare și Core Dumps

  •  gdb (GNU Debugger)
  •  Ce Sunt Fișierele de Core Dump?
  •  Producerea Fișierelor de Core Dump
  •  Examinarea Fișierelor de Core Dump
  •  Laboratoare

Instrumente de Depanare

  •  Obținerea timpului
  •  Profilare și Performanță
  •  valgrind
  •  Laboratoare

Apele de Sistem

  •  Apele de Sistem vs. Funcțiile Bibliotecii
  •  Cum Se Fac Apelurile de Sistem
  •  Valorile Returnate și Codurile de Eroare
  •  Laboratoare

Gestionarea Memoriei și Alocării

  •  Gestionarea Memoriei
  •  Alocări Dinamice
  •  Tunajul malloc()
  •  Blocarea Paginilor
  •  Laboratoare

Fișiere și Fișier sisteme în Linux **

  •  Fișiere, Directoare și Dispozitive
  •  Sistemul de Fișiere Virtual (VFS)
  •  Sistemul de fișiere ext2/ext3
  •  Sisteme de fișiere cu jurnalizare
  •  Sistemul de fișiere ext4/
  •  Laboratoare

I/O Fișier

  •  I/O Fișier UNIX
  •  Deschiderea și Închiderea
  •  Citirea, Scrierea și Căutarea
  •  I/O Pozitional și Vectorial
  •  Biblioteca Standard de I/O
  •  Suport pentru Fișiere Mari (LFS)
  •  Laboratoare

Operațiuni Avansate cu Fișiere

  •  Funcții Stat
  •  Funcții Directoare
  •  inotify
  •  Mapearea Memoriei în Fișier
  •  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 de Comunicare Interproces
  •  Laboratoare

Procese II

  •  Utilizarea system() pentru Crearea unui Proces
  •  Utilizarea fork() pentru Crearea unui Proces
  •  Utilizarea exec() pentru Crearea unui Proces
  •  Utilizarea clone()
  •  Încheierea (Exit)
  •  Constructori și Destructorii
  •  Așteptarea (Wait)
  •  Procese Daemon
  •  Laboratoare

Tuberi și Fifos

  •  Tuberi și Comunicarea Interproces
  •  popen() și pclose()
  •  pipe()
  •  Piferi Nume (FIFOs)
  •  splice(), vmsplice() și tee()
  •  Laboratoare

I/O Asincron **

  •  Ce este I/O Asincron?
  •  API-ul POSIX pentru I/O Asincron
  •  Implementarea Linux
  •  Laboratoare

Semnale I

  •  Ce Sunt Semnale?
  •  Semnale Disponibile
  •  Distribuirea de Semnale
  •  Alarme, Pauze și Somn
  •  Configurarea unui Handler pentru Semnal
  •  Seturi de Semnale
  •  sigaction()
  •  Laboratoare

Semnale II

  •  Reentrancy și Handleri pentru Semnale
  •  Săriri și Returnuri NeLocale (Non-Local)
  •  siginfo și sigqueue()
  •  Semnale în timp real
  •  Laboratoare

Fiecăruințe POSIX I

  •  Fiecăruințele sub Linux
  •  Structura Programului de bază
  •  Crearea și Anihilarea Fiecăruințelor
  •  Semnale și Fiecăruințe
  •  Diferența între Forking și Threading
  •  Laboratoare

Fiecăruințe POSIX II

  •  Dezbaterea și Condițiile de Razătura (Race Conditions)
  •  Operațiuni Mutex
  •  Semaforoase
  •  Futex-uri
  •  Operații condiționale
  •  Laboratoare

Retele și Sockete

  •  Straturile Retelei
  •  Ce Sunt Socketele?
  •  Socketele de Flux (Stream)
  •  Socketele Datagramă
  •  Socketele Raw
  •  Ordinea de Octeți
  •  Laboratoare

Adrese și Gospodări Socketelor

  •  Structuri ale Adreselor Socketelor
  •  Convertirea Adreselor IP
  •  Informații despre Gospodar (Host)
  •  Laboratoare

Porturi și Protocoale Socketelor

  •  Informații Serviciu Port
  •  Informații Protocole
  •  Laboratoare

Clienți Sockete

  •  Secvență de bază a Clientului
  •  socket()
  •  connect()
  •  close() și shutdown()
  •  Client UNIX
  •  Client Internet
  •  Laboratoare

Serveri Sockete

  •  Secvență de bază a Servrului
  •  bind()
  •  listen()
  •  accept()
  •  Server UNIX
  •  Server Internet
  •  Laboratoare

I/O Operațiuni Sockete

  •  write(), read()
  •  send(), recv()
  •  sendto(), recvfrom()
  •  sendmsg(), recvmsg()
  •  sendfile()
  •  socketpair()
  •  Laboratoare

Opțiuni Sockete

  •  Obținerea și Setarea Opțiunilor Socketelor
  •  fcntl()
  •  ioctl()
  •  getsockopt() și setsockopt()
  •  Laboratoare

Sockete Netlink**

  •  Ce Sunt Socketele Netlink?
  •  Deschiderea unei Sockete Netlink
  •  Mesaje Netlink
  •  Laboratoare

Multiplexarea și Servere Concomitente Socketelor

  •  I/O de Socket Multiplexat și Asincron
  •  select()
  •  poll()
  •  pselect() și ppoll()
  •  epoll
  •  I/O Drivată de Semnaluri și Asincronă
  •  Servere Concomitente
  •  Laboratoare

Comunicarea Interproces (IPC)

  •  Metode IPC
  •  IPC POSIX
  •  IPC System V**
  •  Laboratoare

Memorie Comună

  •  Ce este Memoria Comună?
  •  Memoria Comună POSIX
  •  Memoria Comună System V**
  •  Laboratoare

Semaforoase

  •  Ce este un Semafor?
  •  Semaforoase POSIX
  •  Semaforoase System V**
  •  Laboratoare

Cele de Mesaje în Coada (Message Queues)

  •  Ce Sunt Cele de Mesaje în Coadă?
  •  Cele de Mesaje în Coadă POSIX
  •  Cele de Mesaje în Coadă 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

Numărul de participanți


Pret per participant

Upcoming Courses

Categorii înrudite