FI:PV065 UNIX -- Advanced Course I - Course Information
PV065 UNIX -- Programming and System Management I
Faculty of InformaticsAutumn 2025
- Extent and Intensity
- 2/0/0. 2 credit(s) (plus extra credits for completion). Recommended Type of Completion: zk (examination). Other types of completion: k (colloquium), z (credit).
In-person direct teaching - Teacher(s)
- RNDr. Jan Kasprzak, Ph.D. (lecturer)
- Guaranteed by
- RNDr. Jan Kasprzak, Ph.D.
Department of Computer Systems and Communications – Faculty of Informatics
Supplier department: Department of Computer Systems and Communications – Faculty of Informatics - Timetable
- Mon 15. 9. to Mon 15. 12. Mon 16:00–17:50 A318
- Prerequisites
- Prequisities: Students should be able to write programs in C, and to have experience with UNIX from the user's point of view (shell, text editor, files).
- Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
- fields of study / plans the course is directly associated with
- there are 39 fields of study the course is directly associated with, display
- Course objectives
- The course introduces the principles of UNIX operationg system and its application interface (system calls, library functions). Students will learn about the UNIX kernel architecture, file system, processes, etc., both from the point of view of the kernel implementation and internals, and from the point of view of the UNIX application interface. The main focus of the course is UNIX, examples are given on top of the Linux kernel.
- Learning outcomes
- After attending this course, students will be able to:
Understand the interaction beween programs in C and the system kernel.
Use the POSIX.1 application interface to create programs in C.
Use files, processes, and other tools, provided by the UNIX kernel to the applications.
Have the basic understanding of the UNIX kernel, device management and memory management inside the kernel, and inner working of processes inside the kernel. - Syllabus
- UNIX development tools: compilers, debuggers, profilers and some other tools. Libraries, their types and function.
- C-language API standards.
- Program in the ANSI C: limits, start and end of program, arguments, environment variables, memory management, long jumps. Dynamic linking.
- Kernel: start of the system, architecture of the kernel, memory model of the kernel. Concurrency inside the kernel.
- Process: attributes of the process, states of the process, memory from the process' view, access rights of the process. Program on the disk.
- I/O operations: descriptor, operations with descriptors.
- File system organization: i-node and its attributes, directories and manipulation with directories, special files.
- Interprocess communication: pipes, signals, reliable signals.
- Advanced I/O: multiplexing using select() and poll(), file locking, scatter-gather I/O, memory-mapped I/O.
- POSIX threads.
- Literature
- Information technology :portable operating system interface. New York: Institute of Electrical and Electronics Engineers, 1996, xxxi, 743. ISBN 1-55937-573-6. info
- STEVENS, W. Richard. Advanced programming in the UNIX environment. Reading, Mass.: Addison-Wesley, 1993, xviii, 744. ISBN 0-201-56317-7. info
- BACH, Maurice J. Principy operačního systému UNIX. 1. vyd. Praha: Softwarové Aplikace a Systémy, 1993, 514 s. ISBN 80-901507-0-5. info
- Teaching methods
- lecture, self-tests using R.O.P.O.T.
- Assessment methods
- Written exam or colloquium. Consists of multiple-choice questions, with exactly one answer being correct. Negative points are given for wrong answers. Self-test results are part of the evaluation.
- Language of instruction
- Czech
- Further comments (probably available only in Czech)
- Study Materials
The course is taught annually. - Teacher's information
- http://www.fi.muni.cz/~kas/pv065/
- Enrolment Statistics (recent)
- Permalink: https://is.muni.cz/course/fi/autumn2025/PV065