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.
Poslední úprava: Forstová Lenka, Mgr. (19.04.2018)
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.
Poslední úprava: Forstová Lenka, Mgr. (19.04.2018)
Podmínky zakončení předmětu -
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).
Poslední úprava: Kotal Vladimír, Mgr. (31.05.2020)
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).
Poslední úprava: Kotal Vladimír, Mgr. (31.05.2020)
Literatura -
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
Poslední úprava: 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
Poslední úprava: Kotal Vladimír, Mgr. (15.10.2024)
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