Operating Systems 2022F Lecture 23
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