elective course
summer semester of the academic year 2023/2024
Organizational details
Lecture: Janina Mincer-Daszkiewicz (email: jmd@mimuw.edu.pl)
Laboratory:
- Andrzej Jackowski (email: a.jackowski@mimuw.edu.pl)
- Wojciech Ciszewski (email: w.ciszewski2@uw.edu.pl)
- Maciej Matraszek (email: m.matraszek@mimuw.edu.pl)
Consultations: please make an appointment via e-mail
Course page in USOSweb
ZSO on the Lecture about lectures (recording: from 19:00 until 27:18)
Timetable
Lectures are open to all comers
Lecture (start 14:15)
Laboratory (start 16:00)
Thusday |
27.02 |
05.03 |
12.03 |
19.03 |
26.03 |
02.04 |
09.04 |
16.04 |
23.04 |
30.04 |
07.05 |
14.05 |
21.05 |
28.05 |
04.06 |
11.06 |
18.06 |
12.09 |
Lecture3 |
w1 |
w2 |
w3 |
w4 |
w5 |
Easter |
w6 |
w7 |
w8 |
w9 |
w10 |
w11 |
w12 |
w13 |
-- |
w14 |
--- |
--- |
Labs |
lab1 |
lab2 |
lab3 |
lab4 |
lab5 |
Easter |
lab6 |
lab7 |
lab8 |
lab9 |
lab10 |
lab11 |
lab12 |
lab13 |
-- |
lab14 |
--- |
--- |
Task announced |
Task1 |
--- |
--- |
--- |
Task2 |
--- |
--- |
--- |
--- |
Task3 |
--- |
--- |
--- |
--- |
--- |
--- |
--- |
--- |
Task due date |
--- |
--- |
--- |
--- |
Task1 |
--- |
--- |
--- |
--- |
Task2 |
--- |
--- |
--- |
--- |
Task3 |
--- |
--- |
--- |
Task final due date |
--- |
--- |
--- |
--- |
--- |
--- |
Task1 |
--- |
--- |
--- |
--- |
Task2 |
--- |
--- |
--- |
--- |
Task3 |
--- |
-
Lecture 1:
Introduction:
SO tasks, UNIX and Linux - history, features, structure, eBPF, basic concepts: execution context, system calls, kernel reports
-
Lecture 2:
A little about hardware (Intel example): processor and memory, addressing, processor cache, computer architectures
-
Lecture 3:
Memory and process management: Booting the kernel, Paging in Linux, Process address space
-
Lecture 4:
Memory and process management: Process address space, fork(), page fault
-
Lecture 5:
Memory management: Physical storage, creating page tables, managing page frames, zones, highmem, managing noncontiguous memory areas
-
Lecture 6:
Memory management: Buddy allocator, Slab allocator
-
Lecture 7:
Process management: Kernel level synchronization
-
Lecture 8:
File management: Virtual file system, interface, data structures
-
Lecture 9:
File management: Virtual file system, mounting, directory cache, inodes in memory
-
Lecture 10:
Memory management: Page cache, page replacement
-
Lecture 11:
Memory management: THP (Transparent Huge Pages);
File management: ext2, ext3 and ext4 file systems
-
Lecture 12:
The block I/O layer and I/O schedulers
-
Lecture 13:
Process scheduling: PID namespace, introduction to scheduling in Linux, schedulers O(N), O(1), RSDS
-
Lecture 14:
Process scheduling: schedulers CFS, BFS, MuQSS, Deadline; what's new in process scheduling?
- Questions and Answers
Top
During lectures we will discuss (for comparative purposes) various versions of Linux, including the latest (latest stable is 6.7.6, mainline 6.8-rc5, in labs we will use Debian 11 with kernel 6.7.6).
Top
There are newer books, but I don't know them, so I can't recommend them.
-
R. Love, Linux Kernel Development,
Addison-Wesley, 2010 (third edition, kernel version 2.6.34)
Electronic version
-
W. Mauerer, Professional Linux Kernel Architecture,
Wiley Inc., 2008 (first edition, kernel version 2.6.24).
Electronic version
-
D.P. Bovet, M. Cesati, Understanding the Linux Kernel, O'Reilly,
November 2005 (third edition, kernel version 2.6.11).
Electronic version
-
A. Rubini, J. Corbet, G. Kroah-Hartman,
Linux Device Drivers, O'Reilly, 2005 (third edition, kernel version 2.6.10).
Electronic version
-
R. Love, Linux System Programming: Talking Directly to the Kernel and C Library,
O'Reilly, 2013 (second edition, kernel version 3.0).
Electronic version
Top
Top
I expect students to be active during lectures, ask questions, initiate discussion. Each attendance at the lecture is rewarded with the cancellation of one day of the 'penalty' for the delay in the delivery of the assignment task (in total you can get 14 additional days to complete the task).
Presence at the laboratory is obligatory. Performing tasks planned in scenarios during classes
is rewarded with the cancellation of one day of 'penalty' for delay in the delivery of the assignment task (in total, you can get app. 7 additional days to complete the task).
There will be three laboratory tasks, each rated 10 points. The prerequisite for passing the laboratory in the regular time is to get at least 3 points from EVERY task (points awarded as a result of evaluation by the assistent, before considering penalties or bonuses) and at least 18 points in total for all tasks. In addition, the rating depends on the points as follows:
Points from | Grade |
28.0 | 5 |
25.5 | 4+ |
23.0 | 4 |
20.5 | 3+ |
18.0 | 3 |
0 | 2 |
Deadlines for delivering tasks - by the end of the day indicated in the schedule.
Each day of delay in returning the task results in multiplying the received
number of points by 0.9 (that is, assuming that the maximum number of 10 points is awarded,
1 day after the deadline means 9 points, 2 days - 8.1, 5 days 5.9,
10 days - 3.5, 14 days (maximum acceptable delay in returning the task) - 2.3).
You can correct the number of points obtained by sending *one* task for (re) checking before the final date (this is the last date indicated in the schedule, no bonuses apply). The obtained number of points will be multiplied by 0.8. The new number of points for this task *unconditionally* replaces the points from the first term.
The current status of points can be tracked in USOSweb in the Tests module.
Top