| 13 | |
| 14 | == POSIX emulation layer == |
| 15 | |
| 16 | HelenOS is not [wiki:DiffFromUnix another Unix-like OS] and thus it needs an emulation for applications that were written for Unix systems. |
| 17 | This emulation is currently in HelenOS provided by `libposix` library that provides implementation of functions that are part of POSIX standard but were considered inappropriate for HelenOS. |
| 18 | |
| 19 | `libposix` provides an (incomplete) illusion that the application has access to standard POSIX headers and functions. |
| 20 | The ported application is then linked with `libposix` which translates the calls to HelenOS specific implementations in `libc`. |
| 21 | |
| 22 | //Implementation detail//: some of the functions in `libc` have the same name as standard POSIX ones or they offer slightly different behaviour. |
| 23 | To prevent naming clashes, symbols in `libc.a` are renamed to avoid the need to rename the POSIX versions (which was an older approach where renaming was done during preprocessing, however this approach has various disadvantages). |