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 2022: 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 lab assignments, each graded out of 10 points. The necessary condition for passing the lab on the first attempt is to obtain at least 3 points from EACH assignment (this refers to the points awarded as a result of the assessment by the grader, before taking into account penalties or bonuses) and at least 18 points in total for all assignments. In addition, the grade 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 improve your score by submitting *one* assignment for (re)marking on the resit date (this is the last date indicated in the schedule, no bonuses apply). The score will be multiplied by 0.8. The new score for this assignment *unconditionally* replaces the points from the first date. The necessary condition for passing the lab on the second date is to obtain at least 3 points on EACH assignment (this refers to the points awarded as a result of the grading by the grader, before any penalties or bonuses are taken into account) and at least 18 points in total for all assignments.
The current status of points can be tracked in USOSweb in the Tests module.
Top