We keep a list of non blocking fds and use awake to make them not block on read, write, pread and pwrite.
With these changes, libposix (and newlib) can run MirBSD Korn Shell.