The kernel does print messages. Doesn't it? from devfs.c: if (waserror()){ // if a read fails we let the user know and try // another device. print("#k: mread: (%llx %d): %s\n", c->qid.path, i, up->errstr); continue; }