ocaml-unix-unistd provides access to the features exposed in unistd.h in a way that is not tied to the implementation on the host system.
The Unistd module provides functions for translating between the constants accessible through unistd.h and their values on particular systems.
The Unistd_unix module provides bindings to functions that use the constants and types in Unistd along with a representation of the host system. The bindings support a more comprehensive range of seek commands than the corresponding functions in the standard OCaml Unix module. The Unistd_unix_lwt module exports non-blocking versions of the functions in Unistd_unix based on the Lwt cooperative threading library.