Nooks: an architecture for reliable device drivers
an empirical study of operating system errors .