X86 Architecture basics: Interrupts, Faults and Traps and IO