Operating Systems 2019F Lecture 18
Video
Video from the lecture given on November 13, 2019 is now available.
Notes
Lecture 18 ---------- When you're in a kernel module, you're in the Linux kernel * context is *all* of the code in the linux kernel * you have access to all code and data structures, if you can figure out how to access them * You include linux kernel headers to be able to access this functionality * You *cannot* access standard libraries, they don't exist - and even if you did ad the code, key abstractions such as file descriptors, ttys, and such don't exist! So you're probably in trouble One big problem is that the Linux kernel changes fast * so online documentation gets out of date * authority is really the code itself * but articles on lwn.net are helpful Processes vs. threads * process: one or more CPU contexts + address space * thread: a CPU context in an address space So a process can have one or more threads In the kernel, "current" refers to the process/thread (task) that made the current system call. initrd = initial ram disk - how do you load modules needed to access the root filesystem when you don't have access to the root filesystem? - drivers, fs, network - initrds will have - kernel modules - scripts & executables necessary for loading modules, other setup Boot loader loads kernel image & initrd into memory, then starts kernel - telling it where in memory the initrd is