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.
Předmět má za úkol rozšířit znalosti získané v přednášce NSWI015 formou praktických příkladů.