Návrh Školení

Úvod

  • Cíle
  • Kdo jsi
  • Nadace Linux
  • Linux Základní školení
  • Certifikační programy a digitální odznaky
  • Linux Distribuce
  • Platformy
  • Příprava vašeho systému
  • Používání a stahování virtuálního stroje
  • Věci se mění v Linux

Předběžná utkání

  • Postupy
  • Standardy a LSB

Jak pracovat v projektech OSS **

  • Přehled o tom, jak správně přispívat
  • Zůstaňte blízko hlavní linky kvůli bezpečnosti a kvalitě
  • Studujte a pochopte DNA projektu
  • Zjistěte, co chcete svědit Scratch
  • Identifikujte správce a jejich pracovní toky a metody
  • Získejte včasné vstupy a pracujte otevřeně
  • Přispějte přírůstkovými bity, nevelké výpisy kódu
  • Nechte své ego za dveřmi: Nebuďte hubení
  • Buďte trpěliví, rozvíjejte dlouhodobé vztahy, buďte nápomocní

Kompilátory

  • GCC
  • Další kompilátory
  • Hlavní možnosti gcc
  • Preprocesor
  • Integrovaná vývojová prostředí (IDE)
  • Laboratoře

Knihovny

  • Statické knihovny
  • Sdílené knihovny
  • Propojení s knihovnami
  • Dynamic Linking Loader
  • Laboratoře

Udělat

  • Pomocí make a Makefiles
  • Budování velkých projektů
  • Složitější pravidla
  • Vestavěná pravidla
  • Laboratoře

Ovládání zdroje

  • Ovládání zdroje
  • RCS a CVS
  • Podvracení
  • git
  • Laboratoře

Ladění a výpisy jádra

  • gdb
  • Co jsou soubory Core Dump?
  • Produkce Core Dumps
  • Zkoumání Core Dumps
  • Laboratoře

Nástroje pro ladění

  • Získání času
  • Profilování a výkon
  • valgrind
  • Laboratoře

Systémová volání

  • Systémová volání vs. funkce knihovny
  • Jak se uskutečňují systémová volání
  • Návratové hodnoty a čísla chyb
  • Laboratoře

Paměť Management a alokace

  • Paměť Management
  • Dynamická alokace
  • Ladění malloc()
  • Zamykání stránek
  • Laboratoře

Soubory a systémy souborů v Linux **

  • Soubory, adresáře a zařízení
  • Virtuální souborový systém
  • Souborový systém ext2/ext3
  • Žurnálování souborových systémů
  • Souborový systém ext4/
  • Laboratoře

Soubor I/O

  • UNIX File I/O
  • Otevírání a zavírání
  • Čtení, psaní a hledání
  • Poziční a vektorové I/O
  • Standardní I/O knihovna
  • Podpora velkých souborů (LFS)
  • Laboratoře

Pokročilé operace se soubory

  • Stat funkce
  • Funkce adresáře
  • upozornit
  • Mapování paměti
  • flock() a fcntl()
  • Vytváření dočasných souborů
  • Další systémová volání
  • Laboratoře

Procesy I

  • Co je to proces?
  • Limity procesu
  • Skupiny procesů
  • Souborový systém proc
  • Metody InterProcess Communication
  • Laboratoře

Procesy II

  • Použití system() k vytvoření procesu
  • Použití fork() k vytvoření procesu
  • Použití exec() k vytvoření procesu
  • Použití clone()
  • Konec
  • Konstruktoři a destruktory
  • Čekání
  • Démonské procesy
  • Laboratoře

Trubky a Fifos

  • Potrubí a InterProcess Communication
  • popen() a pclose()
  • trubka()
  • Pojmenované potrubí (FIFO)
  • splice(), vmsplice() a tee()
  • Laboratoře

Asynchronní I/O**

  • Co je asynchronní I/O?
  • Asynchronní I/O API POSIX
  • Linux Realizace
  • Laboratoře

Signály I

  • Co jsou signály?
  • Signály k dispozici
  • Dispečerské signály
  • Budíky, pauza a spánek
  • Nastavení obsluhy signálu
  • Sady signálů
  • sigaction()
  • Laboratoře

Signály II

  • Reentrancy a Signal Handlers
  • Skákání a nelokální návraty
  • siginfo a sigqueue()
  • Signály v reálném čase
  • Laboratoře

Vlákna POSIX I

  • Vícevláknové zpracování pod Linux
  • Základní struktura programu
  • Vytváření a ničení vláken
  • Signály a vlákna
  • Forking vs. Threading
  • Laboratoře

Vlákna POSIX II

  • Zablokování a podmínky závodu
  • Mutex operace
  • Semafory
  • Futexy
  • Podmíněné operace
  • Laboratoře

Networking a Zásuvky

  • Networking Vrstvy
  • Co jsou zásuvky?
  • Streamové zásuvky
  • Datagramové zásuvky
  • Raw zásuvky
  • Řazení bytů
  • Laboratoře

Adresy zásuvek a hostitelé

  • Struktury adres soketů
  • Konverze IP adres
  • Informace o hostiteli
  • Laboratoře

Sokety Porty a protokoly

  • Informace o servisním portu
  • Informace o protokolu
  • Laboratoře

Klienti soketů

  • Základní klientská sekvence
  • zásuvka()
  • připojit()
  • close() a shutdown()
  • Klient UNIX
  • Internetový klient
  • Laboratoře

Soketové servery

  • Základní sekvence serveru
  • svázat()
  • poslouchat()
  • akceptovat()
  • UNIX server
  • Internetový server
  • Laboratoře

Vstupní/výstupní operace soketů

  • psát(), číst()
  • send(), recv()
  • sendto(), recvfrom()
  • sendmsg(), recvmsg()
  • poslat soubor()
  • pár zásuvek()
  • Laboratoře

Možnosti zásuvek

  • Získání a nastavení možností zásuvky
  • fcntl()
  • ioctl()
  • getockopt() a setsockopt()
  • Laboratoře

Zásuvky Netlink**

  • Co jsou zásuvky netlink?
  • Otevření zásuvky netlink
  • zprávy netlink
  • Laboratoře

Multiplexování soketů a souběžné servery

  • Multiplexní a asynchronní Socket I/O
  • vybrat()
  • hlasování()
  • pselect() a ppoll()
  • epoll
  • Signálem řízené a asynchronní I/O
  • Souběžné servery
  • Laboratoře

Inter Process Communication

  • Metody IPC
  • POSIX IPC
  • System V IPC**
  • Laboratoře

Sdílená paměť

  • Co je sdílená paměť?
  • Sdílená paměť POSIX
  • Sdílená paměť System V**
  • Laboratoře

Semafory

  • Co je semafor?
  • Semafory POSIX
  • Semafory System V**
  • Laboratoře

Fronty zpráv

  • Co jsou fronty zpráv?
  • Fronty zpráv POSIX
  • Fronty zpráv System V**
  • Laboratoře

Požadavky

Tento kurz je určen pro zkušené vývojáře. Studenti by měli být zběhlí v programování v C a znát základní Linux utility a textové editory.

Publikum

Tento kurz je určen pro zkušené vývojáře. Studenti by měli být zběhlí v programování v C a znát základní Linux utility a textové editory.

Úroveň zkušeností: středně pokročilá

 28 hodiny

Počet účastníků



Price per participant

Související kurzy

Související kategorie