Getting started

Before you start coding, look at the sources and determine area in which you are interested to develop. We have wide range of tasks and, most probably, one of them will be interested for you. Only remember, our current main goal is to provide less or more full set of OS/2 API on top of L4 microkernel.

Development Tools

Language Compiler
C Open Watcom
C++ Open Watcom
Assembler Open Watcom/JWasm
FORTRAN Open Watcom
Pascal FreePascal

Other languages may be used to develop parts of the OS. However, they must be Open Source and use OS/2 API. Usage of non-free, even shareware (read: can be downloaded from lot of places, but cost money and whose licenses have many limitations) not recommended. Also, use the Watcom tools to build this source.

When conflicting tools exists (ex. NMAKE and WMAKE) always use the Open Watcom tool.

Downloading and Compiling

osFree sources are hosted at GitHub. GitHub also provides a possibility to download a snapshot as a .tar.gz archive.

osFree sources consist of the main Git repository and several submodules. The main git repo is osfree, and submodules are:

FamilyAPI, MacroLib, fat32, jfs, os3 and others.

Hence, you need to clone the main osfree repo first, and then pull the submodules:

git clone https://github.com/osfree-project/osfree.git
git submodule update --init --recursive
git submodule update --remote --recursive

You need to download all above tools for your platform from corresponding sites. Use:


, to pull the build dependencies.


build process will be started.

For more information about build system read Build system document.


  • Private code (not shared with other code) should be documented only in the source.
  • Shared code (shared with code at the same level or at all levels) should be documented in source and in a “Building and developing” document.
  • The API of the OS and the tools documentation should NOT be documented in the source tree but in the toolkit and release tree.
  • Source code should be documented in the source file (not the header files).
  • Each function should be prefixed with a description of what it does, what parameters it uses (in and out) and any external references it uses.
  • Place comments in the source that helps the reader to understand the logic and don't overdo it.

When Developing

  • Use static linking, do not use dynamic libraries (LIBC style) or dynamic runtime.
  • Use the makefiles provided with the source tree, don't “do your own”.
  • Currently osFree development is done on OS/2 (minimum Warp 4), Windows and Linux but in the future development will be hosted on osFree.
  • We use Git to share code among developers.
  • We use Doxygen and Wiki to document our work.


Enter your comment. Wiki syntax is allowed:
125 +13 =