osFree Whitepaper

Проект osFree нацелен на создание операционной системы, поддерживающей OS/2-совместимую personality как базовую. Мы использовали следующие принципы в нашем исследовании и разработке:

Удобство в использовании

Расширяемость

Открытость

Простота

В результате, мы имеем следующие соображения:

использовать CUA для удобства и визуальных стандартов интерфейса (см. IBM SAA CUA)

использовать Микроядро, принципы ООП на основе SOM и Бинарную совместимость с существующими компонентами для Расширяемости

Документированность и Open-source для Открытости

Все вышеперечисленное для Простоты

Общий дизайн

Мы предполагаем использовать некоторые, или большинство принципов построения, на которых была основана OS/2 PPC, с некоторыми уточнениями. Поскольку поддержка OS/2 является нашей первичной целью, то, конечно же, мы предполагаем использовать в готовом виде большинство OS/2 технологий.

In general, we'll use L4 microkernel as a core of the system. On top of L4 we plan to implement the following personalities:

Neutral personality

OS/2 personality

Linux personality

DOS personality

Win16 personality

Win32 personality

Neutral personality is the real OS API. It is a set of servers for various services. All other personalities need to work via Neutral personality. Most probably we will reuse many OS/2 features in this personality. We plan to make Neutral personality API through the usage of IDL (like SOM/CORBA). Since L4 also uses IDL for its API, this is a logical approach.

OS/2 personality aimed to provide partial or full set of OS/2 API. At the first stage we want to implement core 32-bit API. In most cases OS/2 personality calls are planned to be just forwarders of calls to Neutral personality.

Linux personality aimed to provide full functionality of Linux. Linux is one of the current mainstream OSes. It provides lots of development tools, libraries and applications, and we want to use Linux as one of the main development platforms. We plan to reuse the L4Linux project for this. If everything will work fine, we'll just recompile the L4Linux project and reuse it.

DOS personality aimed to provide the functionality of DOS. DOS was supported by the original OS/2 and is still used by many people. We don't want to lose forces on this goal, so we'll most probably reuse QEMU here.

Win32 personality aimed to provide partial of full functionality of Win32. Windows is also one of the mainstream OSes and we can't ignore its existence. If it will be possible to pre-virtualize ReactOS then we'll also provide Win32 functionality. Otherwise Win32 support will come via WINE project.

Of course you are free to add another personality.

At present time we have closed view about file systems support and boot process. We are reusing OS/2 concept of IFSes. Most notable differences from OS/2 PC are the absence of MiniFSD (like it is in OS/2 PPC) and 32-bit IFS main driver. For more information about the boot process look at Boot process guides and references.

For general development guidelines see Developer Reference.