Děkujeme za vaši dotaz! Jeden z našich pracovníků vás brzy kontaktuje.
Děkujeme za rezervaci! Jeden z našich pracovníků vás brzy kontaktuje.
Návrh Školení
Úvod
- Cíle
- Kdo jste
- Linux Foundation
- Vzdělávání od Linux Foundation
- Certifikační programy a digitální odznaky
- Distribuce Linuxu
- Platformy
- Příprava systému
- Použití a stažení virtuálního počítače
- Věci se v Linuxu mění
Předpoklady
- Postupy
- Normy a LSB
Jak pracovat na open source projektech **
- Přehled o tom, jak správně přispívat
- Zůstat blízko hlavní větvi pro bezpečnost a kvalitu
- Studovat a pochopit DNA projektu
- Zjistit, co potřebujete opravit nebo zlepšit
- Identifikovat správce a jejich práci a metody
- Získat rané připomínky a pracovat otevřeně
- Přispívat postupně, ne v masivních blozích kódu
- Nechat vaše ego doma: Nebuďte citliví na kritiku
- Být trpěliví, vybílit dlouhodobé vztahy a být nápomocní
Kompilátory
- GCC
- Jiné kompilátory
- Hlavní možnosti gcc
- Předprocesor
- Integrovaná vývojová prostředí (IDE)
- Laboratoře
Knihovny
- Statické knihovny
- Sdílené knihovny
- Odkazování na knihovny
- Dynamický návrhači spouštěče
- Laboratoře
Make
- Použití make a Makefiles
- Vytváření velkých projektů
- Složitější pravidla
- Budované pravidla
- Laboratoře
Řízení zdrojového kódu
- Řízení zdrojového kódu
- RCS a CVS
- Subversion
- git
- Laboratoře
Ladění a jádra chyb (core dumps)
- gdb
- Co jsou soubory jádra chyb?
- Vytváření jáder chyb
- Pohled do jádra chyb
- Laboratoře
Nástroje pro ladění
- Získání času
- Profilace a výkon
- valgrind
- Laboratoře
Systémové volání
- Systémová volání vs. knihovní funkce
- Jak se systémová volání provádějí
- Vrácené hodnoty a chybové čísla
- Laboratoře
Správa paměti a alokace
- Správa paměti
- Dynamická alokace
- Optimalizace malloc()
- Zamykání stránek
- Laboratoře
Soubory a souborové systémy v Linuxu **
- Soubory, adresáře a zařízení
- Virtuální souborový systém
- Souborový systém ext2/ext3
- Journaling souborové systémy
- Souborový systém ext4/
- Laboratoře
Vstup/výstup (I/O) souborů
- UNIX vstup/výstup souborů
- Otevírání a zavírání souborů
- Čtení, zápis a posunování ukazatele
- Pozicovní a vektorový vstup/výstup
- Standardní knihovna I/O
- Podpora velkých souborů (LFS)
- Laboratoře
Pokročilé operace se soubory
- Funkce stat
- Funkce adresáře
- inotify
- Mapování paměti
- flock() a fcntl()
- Vytváření dočasných souborů
- Jiná systémová volání
- Laboratoře
Procesy I
- Co je to proces?
- Omezení procesů
- Skupiny procesů
- Souborový systém proc
- Metody mezi-procesní komunikace (IPC)
- 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()
- Ukončování
- Konstruktory a destruktory
- Čekání
- Démonské procesy
- Laboratoře
Potrubí (pipes) a FIFO
- Potrubí a mezi-procesní komunikace
- popen() a pclose()
- pipe()
- Jmenovaná potrubí (FIFO)
- splice(), vmsplice() a tee()
- Laboratoře
Asynchronní I/O **
- Co je to asynchronní I/O?
- API pro asynchronní I/O POSIX
- Linuxová implementace
- Laboratoře
Signály I
- Co jsou signály?
- Dostupné signály
- Zasílání signálů
- Alarmy, pauzování a spánkové funkce
- Nastavení obslužných rutin pro signály
- Množiny signálů
- sigaction()
- Laboratoře
Signály II
- Ponovatelnost a obslužné rutiny pro signály
- Přeskoky a ne-lokální návraty
- siginfo a sigqueue()
- Reálné časy signály
- Laboratoře
POSIX vlákna I
- Vlákna v Linuxu
- Základní struktura programu
- Vytváření a zničování vláken
- Signály a vlákna
- Forkování vs. vláknování
- Laboratoře
POSIX vlákna II
- Zámky (deadlocks) a rizika souběžnosti (race conditions)
- Operace na zámkách (mutexes)
- Semafory
- Futexy
- Podmínkové operace
- Laboratoře
Sítě a sokety
- Síťová vrstvy
- Co jsou sokety?
- Proudové sokety (stream sockets)
- Datagramové sokety (datagram sockets)
- Jednoduché sokety (raw sockets)
- Pořadí bajtů (byte ordering)
- Laboratoře
Sokety – adresy a počítače
- Struktury adres soken
- Převod IP adres
- Informace o hostiteli
- Laboratoře
Sokety – porty a protokoly
- Informace o portech služeb
- Informace o protokolech
- Laboratoře
Sokety – klienti
- Základní posloupnost klienta
- socket()
- connect()
- close() a shutdown()
- UNIX klient
- Internet klient
- Laboratoře
Sokety – servery
- Základní posloupnost serveru
- bind()
- listen()
- accept()
- UNIX server
- Internet server
- Laboratoře
Sokety – operace vstupu/výstupu
- write(), read()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- Laboratoře
Sokety – možnosti
- Získání a nastavení možností soketu
- fcntl()
- ioctl()
- getsockopt() a setsockopt()
- Laboratoře
Sokety – netlink **
- Co jsou netlink sokety?
- Otevření netlink soketu
- Zprávy netlink
- Laboratoře
Sokety – multiplexování a paralelní servery
- Multiplexovaný a asynchronní vstup/výstup soketu
- select()
- poll()
- pselect() a ppoll()
- epoll
- Signdrivene a asynchroní vstup/výstup
- Paralelní servery
- Laboratoře
Mezi-procesní komunikace (IPC)
- Způsoby mezi-procesní komunikace (IPC)
- POSIX IPC
- System V IPC **
- Laboratoře
Sdílená paměť
- Co je to sdílená paměť?
- POSIX sdílená paměť
- System V sdílená paměť **
- Laboratoře
Semafory
- Co je to semafor?
- POSIX semafory
- System V semafory **
- Laboratoře
Zprávové fronty
- Co jsou zprávové fronty?
- POSIX zprávové fronty
- System V zprávové fronty **
- Laboratoře
Požadavky
Tento kurz je určen pro zkušené programátory. Studenti by měli být schopni programovat v C a mít znalost základních linuxových utilit a textových editorů.
Cílová skupina
Tento kurz je určen pro zkušené programátory. Studenti by měli být schopni programovat v C a mít znalost základních linuxových utilit a textových editorů.
Úroveň znalostí: Střední
28 hodiny