Session : Hardware interrupts

Tasks

Download and unzip the tasks archive sesiune-07 on the virtual machine.

  1. Interrrupts
    • Use the code in 1-irq/ to implement a simple keyboard logger.
    • TODO 1 - grab the interrupt line
      • in module initialization function request the interrupt line, use I8042_KBD_IRQ macro.
      • in module exit function release the irq line.
    • TODO 2 - implement the interrupt handler
      • interrupt handler must read keys pressed using i8042_read_data and print to kernel log only ASCII characters
    • TODO 3 - implement i8042_read_data function
      • this function should read and return the value stored in DATA register.
      • use inb family of functions
  2. Tasklets, work queues, timers
  3. (bonus) implement a char device driver that stores in a buffer the keys typed in.
    • Implement the read syscall handler to read from userspace the buffer.
    • Implement the ioctl syscall to clear the buffer.
sesiuni/kernel/day-7.txt · Last modified: 2013/07/09 09:01 by alexj