Návrh Školení

Úvod

  •  Cíle
  •  Kdo Jste Vy?
  •  Linux Foundation
  •  Linux Foundation Training
  •  Certifikační Programy a Digitální Značky
  •  Linux Distribuce
  •  Platformy
  •  Příprava Vašeho Systému
  •  Používání a Stažení Virtuálního Počítače
  •  Věci se mění v Linuxu

Předpoklady

  •  Postupy
  •  Standardy a LSB

Jak Pracovat ve OSS Projektech **

  •  Přehled o Správném Příspěvku
  •  Zůstaňte Blízko Mainline pro Bezpečnost a Kvalitu
  •  Studujte a Porozuměte DNA Projektu
  •  Zjistěte, Co Chcete Řešit
  •  Identifikujte Vedoucí a Jejich Pracovní Postupy a Metody
  •  Dostaňte Dřívější Vstup a Pracujte Otevřeně
  •  Přispívejte Incrementálním Bity, Ne Celými Bloky Kódu
  •  Nechte Svůj Ego u Dveří: Nenechte se Snadno Rozčílit
  •  Buďte Trpěliví, Vytvářejte Dlouhodobé Vztahy a Buďte Užiteční

Kompilátory

  •  GCC
  •  Další Kompilátory
  •  Hlavní Volby GCC
  •  Preprocesor
  •  Integrované Vývojové Prostředí (IDE)
  •  Laboratoře

Knihovny

  •  Statické Knihovny
  •  Dynamické Knihovny
  •  Odkazování na Knihovny
  •  Načítací Program pro Dynamickou Odkazování (Dynamic Linking Loader)
  •  Laboratoře

Make

  •  Používání Make a Makefileů
  •  Vytváření Velkých Projektů
  •  Složitější Pravidla
  •  Budovaná Pravidla
  •  Laboratoře

Zdrojový Řízení

  •  Zdrojové Řízení
  •  RCS a CVS
  •  Subversion
  •  git
  •  Laboratoře

Ladění a Jaderové Soubory (Core Dumps)

  •  gdb
  •  Co jsou Jaderové Soubory?
  •  Vytváření Jaderových Souborů
  •  Prozkoumání Jaderových Souborů
  •  Laboratoře

Nástroje pro Ladění

  •  Získávání Času
  •  Profile a Výkon
  •  valgrind
  •  Laboratoře

Systémové Volání (System Calls)

  •  Systémová Volání vs. Knihovenské Funkce
  •  Jak se Provádí Systémová Volání
  •  Vrácené Hodnoty a Chybové Čísla
  •  Laboratoře

Správa Paměti a Alokování

  •  Správa Paměti
  •  Dynamické Alokování
  •  Nastavení malloc()
  •  Zamknutí Stránek (Locking Pages)
  •  Laboratoře

Soubory a Souborové Systémy v Linuxu **

  •  Soubory, Složky a Zařízení
  •  Virtuální Souborový Systém (Virtual File System)
  •  Souborový systém ext2/ext3
  •  Dokumentační souborové systémy
  •  Souborový systém ext4/
  •  Laboratoře

Vstup/Výstup Souborů (File I/O)

  •  UNIX Vstup/Výstup souborů (File I/O)
  •  Otevírání a Zavírání
  •  Čtení, Zápis a Přesunutí (Seeking)
  •  Vektorové Vstupy/Výstupy a Pozice (Positional and Vector I/O)
  •  Knihovna Standardního Vstupu/Výstupu
  •  Podpora Velkých Souborů (LFS)
  •  Laboratoře

Pokročilé Operace se Soubory

  •  Stat Funkce
  •  Funkce adresářů (Directory Functions)
  •  inotify
  •  Mapování Paměti do Paměti (Memory Mapping)
  •  flock() a fcntl()
  •  Vytváření Dočasného Souboru
  •  Další systémové volání
  •  Laboratoře

Procesy I

  •  Co je Proces?
  •  Omezení procesů (Process Limits)
  •  Skupiny procesů (Process Groups)
  •  Souborový systém proc
  •  Metody komunikace mezi procesy (Interprocess Communication Methods)
  •  Laboratoře

Procesy II

  •  Použití system() pro vytvoření procesu
  •  Použití fork() pro vytvoření procesu
  •  Použití exec() pro vytvoření procesu
  •  Použití clone()
  •  Ukončení (Exiting)
  •  Konstruktor a Destruktor
  •  Čekání (Waiting)
  •  Deamon Procesy
  •  Laboratoře

Roury a Fifos

  •  Roury a meziprocesní komunikace (Pipes and InterProcess Communication)
  •  popen() a pclose()
  •  pipe()
  •  Jmenované Roury (FIFOs)
  •  splice(), vmsplice() a tee()
  •  Laboratoře

Aсинхронní Vstup/Výstup**

  •  Co je asynchronní vstup/výstup?
  •  API POSIX Asynchronního Vstupu/Výstupu (POSIX Asynchronous I/O API)
  •  Implementace Linuxu
  •  Laboratoře

Sigyaly I

  •  Co jsou signály?
  •  Dostupné Signály
  •  Odesílání Signálů (Dispatching Signals)
  •  Alarmy, Pausing a Sleeping
  •  Nastavení Správce Signálů (Setting up a Signal Handler)
  •  Signálové Množiny (Signal Sets)
  •  sigaction()
  •  Laboratoře

Sigyaly II

  •  Znovupoužitelnost a Správci Signálů (Reentrancy and Signal Handlers)
  •  Skoky a Neprostorové Vrácení (Jumping and NonLocal Returns)
  •  siginfo a sigqueue()
  •  Signály v reálném čase
  •  Laboratoře

POSIX Nitě I

  •  Vícekternost pod Linuxem (Multithreading under Linux)
  •  Základní Struktura Programu
  •  Vytváření a Zničení Nití
  •  Signály a Nitě
  •  Forking vs. Threading
  •  Laboratoře

POSIX Nitě II

  •  Zamrazení (Deadlocks) a Race Conditions
  •  Operace Mutexu
  •  Smažáky (Semaphores)
  •  Futexy
  •  Podmíněné Operace
  •  Laboratoře

Síťování a Sockets

  •  Síťové vrstvy (Networking Layers)
  •  Co jsou Sockets?
  •  Streampové Sockets
  •  Datagramové Sockets
  •  Raw Sockets
  •  Pořadí bajtů (Byte Ordering)
  •  Laboratoře

Sockets Adresy a Hostitelé

  •  Struktury adres Sockets
  •  Převod IP adries
  •  Informace o Hostiteli
  •  Laboratoře

Sockets Porty a Protokoly

  •  Informace o Služebních Portech (Service Port Information)
  •  Protokolové Informace
  •  Laboratoře

Sockets Klienti

  •  Základní Posloupnost klienta (Basic Client Sequence)
  •  socket()
  •  connect()
  •  close() a shutdown()
  •  UNIX Klient
  •  Internetový Klient
  •  Laboratoře

Sockets Servery

  •  Základní Posloupnost serveru (Basic Server Sequence)
  •  bind()
  •  listen()
  •  accept()
  •  UNIX Server
  •  Internetový Server
  •  Laboratoře

Sockets Vstup/Výstup Operace (Input/Output Operations)

  •  write(), read()
  •  send(), recv()
  •  sendto(), recvfrom()
  •  sendmsg(), recvmsg()
  •  sendfile()
  •  socketpair()
  •  Laboratoře

Sockets Možnosti (Options)

  •  Získávání a Nastavování Možností Socketů
  •  fcntl()
  •  ioctl()
  •  getsockopt() a setsockopt()
  •  Laboratoře

Sockets Netlink**

  •  Co jsou netlink Sockets?
  •  Otevření netlink Socketu
  •  Netlink Zprávy (netlink Messages)
  •  Laboratoře

Sockets Multiplexing a Současné Servery

  •  Multiplexované a Asynchronní Socket Vstup/Výstup (Multiplexed and Asynchronous Socket I/O)
  •  select()
  •  poll()
  •  pselect() a ppoll()
  •  epoll
  •  Signal Driven a Asynchronní Vstup/Výstup (Signal Driven and Asynchronous I/O)
  •  Současné Servery (Concurrent Servers)
  •  Laboratoře

Systémové Meziprocesní Komunikace (Inter Process Communication)

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

Sdílená Paměť (Shared Memory)

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

Smažáky (Semaphores)

  •  Co je smažák?
  •  POSIX Smažáky
  •  System V Smažáky**
  •  Laboratoře

Souborové Fronty (Message Queues)

  •  Co jsou souborové fronty?
  •  POSIX Souborové Fronty
  •  System V Souborové Fronty**
  •  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

Upcoming Courses

Související kategorie