| | 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). |