Základy unixového programování (LNXPR1)

Unixové systémy, Linux - programování

Programujete v C, a chcete se seznámit s nízko úrovňovým programováním pro Linux? Přijďte si vyzkoušet základní aplikační rozhraní unixových systémů. Programování na Linuxu a jemu blízkých systémech se odvíjí od systémových volání operačního systému a standardní knihovny s rozhraním POSIX. Práce v takovém prostředí se výrazně liší od nástrojů vyšších programovacích jazyků a sofistikovaných knihoven. Kurz lze objednat i ve variantě pro C++, Rust, případně i Python, nebo pro alternativní posixové platformy.

Kurz je určen účastníkům, kteří chtějí získat znalosti programování operačního systému UNIX/Linux pomocí standardních knihoven.

Privátní školení a termíny na míru

Toto téma je možné zrealizovat pouze jako privátní, a to nejen formou uzavřeného firemního kurzu, ale také jako individuální konzultaci pro jednotlivce.

V případě kurzu na míru je níže uvedená osnova pouze inspirací. Finální obsah vzdělávání, jeho délka i termíny budou přizpůsobeny konkrétním vstupním znalostem, potřebám a cílům účastníků.

Cenovou nabídku vám rádi připravíme na základě vstupů zaslaných e-mailem nebo zadaných prostřednictvím poptávkového formuláře. Cena privátního školení vychází z náročnosti požadované obsahové náplně školení, časového rozsahu a celkového počtu přihlášených osob.

Lokalita, termín kurzu

Kontaktujte nás

Virtuálně se můžete přidat i ke školením ve výše nabízených lokalitách. Do poznámky v objednávce prosím uveďte „Připojím se virtuálně“

Náplň kurzu:

Skrýt detaily
  • Zopakování syntaxe jazyka C
    1. Význam ANSI C
    2. Direktivy preprocesoru
  • Filosofie programování systému UNIX/Linux
    1. Open source principy
    2. UNIXový přístup
    3. Použití open source knihoven v komerčních programech
  • Chyby a jejich ošetření
    1. Konvence návratových hodnot
    2. Práce s errno
    3. Převod chyby na řetězec
    4. Volání perror
  • Základní nástroje vývojáře
    1. Překladač gcc
    2. Nástroj make
    3. Použití vývojového prostředí
    4. Ruční kompilace pomocí make a gcc
  • Práva běžícího programu a uživatelské informace
    1. Volání getuid
    2. Setuid
    3. Funkce z hlavičkových souborů shadow.h a passwd.h
  • Práce se soubory funkcemi standardních knihoven (stdlib)
    1. Práce se soubory voláním jádra
    2. Význam file-descriptoru
    3. Standardní vstup a výstup
    4. Zamykání souborů apod.
  • Údržba souborů a adresářů
    1. Odkazy (linky)
    2. Práva souborů a adresářů
    3. Vytváření a manipulace s nimi apod.
  • Argumenty funkce main
    1. Zpracování parametrů pomocí funkce getopt
    2. Proměnné atd.
  • Paměť
    1. Alokace a uvolnění paměti
    2. Volání malloc
    3. Free
  • Procesy
    1. Definice
    2. Systém a plánování procesu
    3. Základní volání
  • Vývojový nástroj make
    1. Syntaxe souboru Makefile
  • Dynamické knihovny
    1. Volání funkcí z dynamické knihovny
    2. Vytváření dynamických knihoven
  • Vlákna
    1. Definice a programování
    2. Výhody a nevýhody oproti procesu
  • Zdroje a limity
    1. Limity pro běh procesu
    2. Priorita procesu
  • Terminál
    1. Vlastnosti, nastavení, význam
    2. Program getpass
    3. Standardní vstup a výstup atd.
  • Programování v síti (protokol TCP/IP)
    1. Programování pro Internet
    2. Program server a klient
    3. Volání socket
    4. Conect, accept, listen atd.
  • Pokročilé vlastnosti TCP/IP
    1. Práce s IPv6
    2. Správná práce s DNS resolverem
    3. Blokující a neblokující IO operace
    4. Použití neblokujícího TCP spojení
  • Práce s debuggerem GDB
  • Ladění problémů s pamětí, best practises, nástroj Valgrind pro ladění paměťových problémů
Předpokládané znalosti:
Dobrá znalost programování a programovacího jazyka C, uživatelská znalost OS UNIX/Linux.
Doporučený předchozí kurz:
Linux – základy administrace (LNX1)
Doporučený následný kurz:
Rozhraní operačního systému (LNXPR2)
Časový rozvrh:
3 dny (9:00hod. - 17:00hod.)

Vybrané zákaznické reference

ComAp a.s., Jan T.
Základy unixového programování ( LNXPR1)
"Lektor ma viditelne vysokou odbornost a dobre pedagogicke schopnosti. Prostor pro zlepseni vidim ve vyjadrovani, napriklad mene castem pouzivani obratu "...jak kdyby.." :-)"