This course prepares students for developing software in the Unix/Linux
environment using the C programming language. The main objectives of the class
are to explain how the userland-kernel interface works and how its API is used,
how to write complex command line tools and daemons for the Unix/Linux
environment, and to provide skills to understand inner works of various open
source projects written in C. The class includes extensive laboratory work
where all the knowledge gained in the lectures is practiced.
Last update: Forstová Lenka, Mgr. (19.04.2018)
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.
Last update: Forstová Lenka, Mgr. (19.04.2018)
Course completion requirements -
The course is finished with lab credit and exam.
For the labs the credit is acquired by writing an assignment program or programs in a few phases with each phase having its own deadline.
The exam has two parts - programming task and oral explanation of key principles. Each student has 3 attempts in total to complete the exam (one regular, two correcting).
Last update: Kotal Vladimír, Mgr. (31.05.2020)
Předmět je zakončen zápočtem a zkouškou.
Zápočet se uděluje za vypracování zápočtového programu nebo programů v několika fázích, z nichž každá má stanovenou lhůtu na vypracování.
Zkouška se skládá z vypracování programu a ústní části, ve které se bude zkoušející dotazovat na klíčové principy. Na složení zkoušky má student tři pokusy (jeden řádný a dva opravné termíny).
Last update: Kotal Vladimír, Mgr. (31.05.2020)
Literature -
Stevens R.: Advanced Programming in the UNIX Environment, Second Edition, Addison Wesley, 2005
Stevens R.: UNIX Network Programming, Volume 1, Third Edition: Networking APIs: Sockets and XTI, Prentice Hall, 2003
Stevens R.: UNIX Network Programming, Volume 2, Second Edition: Interprocess Communications, Prentice Hall, 1999
The Single UNIX Specification, Version 4. The Open Group, 2018
Last update: Kotal Vladimír, Mgr. (15.10.2024)
Stevens R.: Advanced Programming in the UNIX Environment, Second Edition, Addison Wesley, 2005
Stevens R.: UNIX Network Programming, Volume 1, Third Edition: Networking APIs: Sockets and XTI, Prentice Hall, 2003
Stevens R.: UNIX Network Programming, Volume 2, Second Edition: Interprocess Communications, Prentice Hall, 1999
The Single UNIX Specification, Version 4. The Open Group, 2018
Last update: Kotal Vladimír, Mgr. (15.10.2024)
Syllabus -
evolution and current state of UNIX systems, standards (The Single UNIX Specification), fundamental tools for C language, API/ABI
description of OS kernel services for C programmer
representation and categorization of users/groups, access rights