Signals. I spent 2 years to understand this part.

A quick introduction to one of the interprocess communication mechanisms in linux. 00:00 Main idea. We want to execute a function when external signal arrives 00:50 While loop. We can’t simply jump to the signal handler! 01:24 Interrupts. Breaking a natural instruction flow 02:30 Saving registers. Kernel preserves user register values 03:09 How pc is saved 04:03 The most important idea! Replacing the pc 04:40 Big Picture overview. 05:55 To the Source code! 07:16 Kernel entry. Disassembling my kernel binary 12:04 Replacing the program counter 12:35 Return to user. 13:28 Signal handler is finished. How to resume the main code? 14:14 How the stack works when enter the kernel 16:26 We need to keep main code’s original registers! 16:49 Kernel stack has to be empty. Overflow. Nested signals 17:30 Saving original regs to user stack 18:48 Kernel trampoline. Sigreturn 20:45 Bonus! (about the compiler bug video)
Back to Top