Linux and interrupts. How do they work?