There seems to be a lot of `true`/`false` happening in these os functions.  Wouldn't it be better to let the actual error propagate back to the caller?  It may not be necessary for the current code paths, but it seems generally more useful.  Otherwise we can't inform the user what went wrong... only that something failed. :-(

Thoughts?