Operating Systems 2022F Lecture 23

From Soma-notes

Video

Video from the lecture given on December 8, 2022 is now available:

Video is also available through Brightspace (Resources->Zoom meeting->Cloud Recordings tab)

Notes

Lecture 23
----------

 * Assignment 4 solutions
 * Final Exam review!

- sorry about A3, one question remains to be graded, should get that done tomorrow
- A4 will be graded before the final so you'll have everything before the 21st

- My next week is busy so not planning on any other meetings, but I will be answering questions on Teams
   - and I can have an ad-hoc meeting if there is something I can't address via Teams

What is on the final exam?
 - A3 & A4
 - midterm

Same format as the midterm

So how will I test the material from A4?
 - some questions will test whether you actually did the assignment
   (so not easily searchable, also not directly in solutions, have to
    *understand* solutions)
 - below is NOT exhaustive, but a view of concepts that are covered in the questions
 - you should have an integrated view of what is going on

1: tainting, how modules are loaded/removed, what happens
2: virtual & physical addresses, write functions in kernel modules
3: what does dd do at a system call level (not in detail, not the ioctl's),
   what bpftrace does (can watch functions in the kernel), what are probes
4: seeking in a module versus just reading (probably not)
5: role of put_user (kernel vs userspace), importance of doing this right
6: page table entries, page tables in general, maybe a specific reference
   to the code
7: kernel memory management, why it uses pages, consequences of not
   allocating or freeing memory in the kernel
8: process tree in Linux, how stored in task_struct
   - why you might need locks
9: what "walking the page table" means
   - not too much on this, we haven't spent too much time on it
   - why could lookups fail? (missing entry -> part of page table
     that isn't valid for whatever reason)


From Assignment 3?
1: rm command? how it could be dangerous (what rm -rf means)
2: what does the unshare command do? (not all, but some simple parts of it)
3: how the PID space is unshared, what that means
4: what is busybox, what does installing busybox mean, how does it put things in the "right" place, what does chroot do (what it means for it to run a script)
5: what determines free space in a filesystem
6: differences between virtual and physical size of files, file holes, what mounting a file does (how it brings in the loopX device, how it acts like a "real" disk that can give errors)
7: symbolic vs hard links, again busybox install what that does
8: how dynamically linked binaries work, what they depend on
   (linker & config, libraries)
9: useradd, passwd & related files, what goes into making an account
10: mounting, device files, security implications
11: hostnames & unshare