en:docs:general:index

This is an old revision of the document!


osFree Whitepaper

linux.jpg

The osFree project is aimed at producing an operating system with support of OS/2 compatible personality as the base personality. We have used the following rules in our research and development:

  • Usable
  • Extensible
  • Open
  • Easy

As a result, we have the following considerations:

  • CUA for usability (see IBM SAA CUA)
  • Microkernel and Binary compatability for extensibility
  • Documentation and Open-source for openness
  • All of the above for ease of use

General design

We propose to reuse some or most of OS/2 PPC design with some reformulation. Since OS/2 support is our primary target, of course, we propose to reuse most of OS/2 technologies.

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
  • MVM/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.

MVM/DOS personality aimed to provide the functionality of DOS, or more generally, an environment for running multiple Virtual Machines with unmodified OS'es. 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 para-virtualize ReactOS then we'll also provide Win32 functionality (there is an idea of implementing a HAL, working above l4env/l4re). 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.

Discussion

Enter your comment. Wiki syntax is allowed:
235 -9 =