Charles Explorer logo
🇨🇿

Programování v Unixu/Linuxu v jazyce C

Předmět na Matematicko-fyzikální fakulta |
NSWI015

Sylabus

- vývoj a současnost UNIXu, standardy (The Single UNIX Specification), základní nástroje pro jazyk C, API/ABI

- popis funkce jádra OS z pohledu programátora v jazyce C

- evidence a kategorizace uživatelů/skupin, přístupová práva

- základy principů filesystémů, VFS, programování vstupů a výstupů, práce s file deskriptory

- manipulace s procesy, stavy procesů, spouštění programu, rozvržení virtuální paměti, formát ELF

- práce s rourami, sdílená paměť, rozhraní dynamického linkeru

- signály a jejich zpracování

- komunikace a synchronizace procesů, System V IPC

- síťová komunikace, rozhraní BSD sockets, převod jmen a IP adres

- vlákna a jejich vztah k procesům, synchronizace vláken (mutexy, rwlocks, podmínkové proměnné, semafory, bariéry)

Anotace

Předmět má za úkol připravit studenty pro vývoj softwaru v prostředí Unixu a

Linuxu v programovacím jazyce C. Hlavními cíly je vysvětlit, jak pracuje rozhraní mezi uživatelskými programy a jádrem operačního systému a jaké jsou jeho kontrétní API, jak v těchto API psát složité programy, a také poskytnout znalosti k pochopení toho, jak vnitřně fungují různé projekty ze světa svobodného software napsané v jazyce C, se kterými se studenti mohou setkat.

Součástí předmětu je cvičení, které se do hloubky věnuje psaní kódu za pomoci odpřednášených API.