# Welcome to mmlib’s documentation!

mmlib is an Operating System abstraction layer.

It provides an API for application developer, so that they can write portable code using relatively advanced OS features without having to care about system specifics.

It also provides facilities like error reporting or logging that helps different modules to behaves consistently with each other.

The reference design in mind in its conception is POSIX, meaning that if some posix functionality is not available for given platform, mmlib will implement that same functionality itself.

POSIX is designed by the IEEE since before 1997. Its main goal is maintaining compatibility between operating systems through standardization. Therefore, it is a good starting point to design an OS-neutral API.

There are many similarities with UNIX systems: historically this system was chosen because if was manufacturer-neutral.

More infos and link about POSIX: Wikipedia page about posix,

Supported platforms:

  - POSIX

  - Win32

About implementations choices and design

- About POSIX

API module list

- Allocation
- Argument parsing
- Dynamic shared object handling
- Environment manipulation
- Error reporting
- Filesystem
- IPC
- Log utilities
- Process and shared objects
- Profiling
- Socket
- Threading
- Time

Examples

- multithread
- parse_args
- pshared
  - pshared-common.h
  - pshared-child.h
  - pshared-parent.h

# Useful links

> - Sources: https://intranet.mindmaze.ch/bitbucket/projects/MMLAB/repos/mmlib

# Indices and tables

- Index

- Module Index

- Search Page