Charles Explorer logo
🇨🇿

Programování v Unixu 2

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

Sylabus

Debugging programů. Použití speciálních knihoven na odhalování různých tříd problémů (libumem(3lib), watchmalloc(3lib)). Trasování programu na

úrovni systémových volání, knihovních funkcí i funkcí samotného programu

(truss(1), gcore(1), pstack(1), mdb(1)). /proc filesystém. Ladící možnosti přítomné v dynamickém linkeru.

Rozšíření znalostí o sítovém API. Raw sockety. Další použití funkcí getsockopt() a setsockopt(). Použití tcpdump(1) pro ladění sítových aplikací. IPv6.

Práce s terminály. Rozdíl implementací terminálů na systémech SVR3,

SVR4, a BSD. Postup při psaní terminálové aplikace.

Bezpečné programování. Jak psát bezpečnější kod a vyvarovat se zbytečných chyb. Klasifikace chyb. Příklady způsobů minimalizování chyb

(privilege separation, sandboxing, fine-grained privileges vers UID 0).

Příklady.

Prohloubení znalostí o POSIX vláknech. Představení alternativního API

(pravděpodobně Solaris threads). Porovnání API.

Doplnění k meziprocesorové komunikaci, posílání souborových deskriptorů mezi procesy, doors. Více k ioctl(2). Asynchronní IO podle POSIXu

(libaio(3c)). Volání pread, pwrite. Volání posix_spawn.

Anotace

Předmět má za úkol rozšířit znalosti získané v přednášce NSWI015 formou praktických příkladů.