Skip to content
os-api-admin edited this page Jun 16, 2020 · 6 revisions

What is the project?

Open System API is an Open Source project that provides an API to access system services.

What is it for?

The API is intended to give developers the ability to create multi-platform programs by supplying them with an abstraction layer on top of each OS system functions. It provides access to system services for any programming language that can call a C library.

Current status

The project concept is completed and is now in the implementation phase.

Supported platforms

Despite the fact that the target is multi-platform support, the first (and only for the moment) supported platform is Linux. Other platforms are to be added latter.

What OSAPI provides?

The project deliverable is a library to support client applications.

How to build it?

After cloning the GIT repository to a local directory (let's use $HOME/repository/osapi for the example bellow):

  1. Add OSAPI_DIR variable to your environment
  • Linux

    OSAPI_DIR=$HOME/repository/osapi; export OSAPI_DIR

  1. Go to the Release directory
  • Linux

    cd $OSAPI_DIR/Release

  1. Execute make command

The resulting library (libosapi.so) is placed in the Release directory.

API documentation

The API documentation is still under development and will be placed under the project docs folder.

As a starting point consider reading the document OSAPI Overview. This document provides the design concepts, wrapper strategies and client usage examples.

The detailed description for the project is here.

Supported baselines

While the API could in theory support any baseline, that is, any combination of OS types, OS versions, system libraries and C standards, it wouldn't be feasible to do so. In order to have a stable base, the following list is the library baseline:

  1. C Standard: C11
  2. Linux
  • POSIX: 200809
  • glibc: 2.28

The test environment uses version 4.18.0-13 of the Linux Kernel.

Build tools

  • Linux
  1. GCC/Clang supporting C11 are required (advise is to use the latest available > 8.x)
  2. GNU Make version 4.2.1 or above (older versions may be supported but were not tested)

License

The project license is the MIT license which means that the project can be used as you wish. However, your contribution is welcome in order to develop it so that others (and yourself) reap the benefits.