Learning to write kernel modules