Česky | in English

PB173 - Tématicky zaměřený vývoj aplikací v jazyce C/C++ - Linux

Systémové programování Linuxnahoru ↑

Skupina Systémové programování Linux je zaměřena na programování v prostředí systému GNU/Linux. Na praktických příkladech bude probráno základní aplikační programové rozhraní jádra Linux (soubory, procesy, vlákna, prostředky IPC) a některé základní aplikační knihovny (libpcap, libdbus). Předpokládá se základní znalost jazyka C, znalost prostředí systému GNU/Linux alespoň na uživatelské úrovni a zájem o oblast.

Doporučená literaturanahoru ↑

  JELÍNEK, Lukáš,
Jádro systému Linux: Kompletní průvodce programátora,
Computer Press, a.s., 2008. 688 s. ISBN 978-80-251-2084-2
  MITCHELL, Mark, OLDHAM, Jeffrey, SAMUEL, Alex,
Pokročilé programování v operačním systému Linux,
SoftPress, 2002. 320 s. ISBN 80-86497-29-1

Slajdy ke cvičenímnahoru ↑

1 − Úvod, základní nástroje pro vývoj v prostředí GNU/Linuxnahoru ↑

slajdy − Úvod, základní nástroje pro vývoj v prostředí GNU/Linux Úvodní informace o kurzu, GNU Autotools, použití Make a GCC, základní principy fungování dynamických knihoven v prostředí GNU/Linux, kde získávat informace.

2 − Udržitelnost kódu a vývojenahoru ↑

slajdy − Udržitelnost kódu a vývoje Štábní kultura kódu − coding-styly, dokumentace (Doxygen), problémy přenositelnosti kódu, zpracování parametrů příkazové řádky, práce s proměnnými prostředí, vytváření patchů, API vs. ABI, dynamicky linkované objekty (princip pluginů).

3 − Ladění chybnahoru ↑

slajdy − Ladění chyb Chybové a ladicí výpisy, syslog, debuggery, valgrind, profilovací nástroje, perf, procfs, typologie běžných chyb.

4 − Procesynahoru ↑

slajdy − Procesy Systémová volání, ošetření chyb, vytváření procesů a další operace s nimi (čekání na ukončení), práva procesu (reálné vs. efektivní), SetUID aplikace.

5 − Meziprocesová komunikace (IPC)nahoru ↑

slajdy − Meziprocesová komunikace (IPC) Signály (posílání signálů a reakce na ně, blokování signálů, synchronní zpracování signálů), anonymní a pojmenované roury, lehký úvod do D-Busu.

6 − Vláknanahoru ↑

slajdy − Vlákna Vlastnosti vláken, implementace vláken v Linuxu, vytvoření nového vlákna, spojování vláken, atributy vláken, data specifická pro vlákna, ukončování vláken a clean-up handlery.

7 − Synchronizace a řízení přístupu ke zdrojůmnahoru ↑

slajdy − Synchronizace a řízení přístupu ke zdrojům Motivace a teoretické základy problematiky souběhu a kritické sekce, mutexy, problém uváznutí (deadlock), spinlock, Read/Write zámky, semafory, bariéra, podmínkové proměnné.

8 − Síťové aplikacenahoru ↑

slajdy − Síťové aplikace Klient-server model, sockety − základní struktury, vytvoření socketu, připojení, rezervace portu, přijetí spojení.

9 − Práce s pamětínahoru ↑

slajdy − Práce s pamětí Sdílená a mapovaná paměť, přístupová práva k paměti, dočasné soubory.

10 − Práce se souborynahoru ↑

slajdy − Práce se soubory Práce se zařízeními (ioctl), práce se soubory (opakování základních operací), přístupová práva souboru, manipulace s vlastnostmi souboru, zamykání souborů, události na souborech a událostmi řízené programování.

11 − Internacionalizace aplikacínahoru ↑

slajdy − Internacionalizace aplikací Postupy při lokalizaci aplikací, národní prostředí v aplikacích, gettext(), C preprocesor.

 nahoru ↑

Copyright © 2010-2011 Radek Krejčí
Valid XHTML 1.0 Strict   Valid CSS   Získejte Firefox!

Liberouter   Netopeer