Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
en:about [2016/03/30 18:58] – [Why re-implement OS/2?] valerius | en:about [2023/10/13 03:31] (current) – prokushev | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== About osFree ===== | + | ~~REDIRECT>en:docs:general:index~~ |
- | + | ||
- | ==== What is osFree? ==== | + | |
- | + | ||
- | osFree is a [[wp>FOSS| free and open-source]] operating system project based on the [[wp> | + | |
- | + | ||
- | ==== Why use a microkernel ==== | + | |
- | + | ||
- | * microkernel can serve as a base for different OS API's, implemented on top of it. These API's can be executed concurrently, | + | |
- | * OS API over a microkernel is implemented in user level, leaving only microkernel in privileged kernel mode. Such OS components as thread schedulers, memory managers, swapper task, even direct hardware access and interrupt handling, are moved to userlevel too. | + | |
- | * this allows implementing stable system with rock stable small kernel and less stable user level components, which (as it shows [[http:// | + | |
- | * this also allows to use ordinary development techniques for drivers as driver in microkernel system does not radically differ from other applications. | + | |
- | * microkernel architecture improves dependability of the system, which means that dependencies between system components are well-defined. Servers executing over a microkernel, | + | |
- | * microkernel system improves isolation of errors inside system components, because servers are executing in separate address spaces. | + | |
- | * microkernel abstracts hardware from usermode servers, which allows implementation of portable operating systems, where all usermode system part remains unchanged in its source form, requiring only its recompilation. | + | |
- | + | ||
- | ==== Why L4? ==== | + | |
- | + | ||
- | * L4 is a second-generation microkernel, | + | |
- | * It's minimality and moving all policies outside the kernel, leaving inside it only minimal set of mechanisms, makes it almost universal and makes it possible to implement almost any desired API. | + | |
- | * We're must not reinvent the wheel: it has all required mechanisms, which we need | + | |
- | * A set of general-purpose services is already implemented for it, so we're not left with bare kernel | + | |
- | * L4Linux can be used as Linux personality base. It is yet at development stage but nevertheless, | + | |
- | * Device Driver Environment (DDE) could be used in future as a drivers framework. It ports Linux (DDE/Linux) and FreeBSD (DDE/ | + | |
- | + | ||
- | ==== Why re-implement OS/2? ==== | + | |
- | + | ||
- | OS/2 has one of the most stable, robust and high-performance kernels. Written in assembly language, it is highly-optimized and uses all i386 architecture features very extensively. It's modular design allows to easy replace components with more featured/ | + | |
- | + | ||
- | ==== Why not migrate to other modern OS? ==== | + | |
- | + | ||
- | IBM, Netlabs and other companies tries to move users to another OS like GNU/Linux, BSD, Windows and others. We agree that TCO of current OS/2 become bigger and bigger for home users. In servers area OS/2 also become obsolete (but still stable and mature). But we like approaches of IBM according design of OS. We like it **designed**, | + | |
- | + | ||
- | ==== Compatible ==== | + | |
- | + | ||
- | osFree is planned to be compatible with most of current OS/2 API. But not drivers. OS/2 drivers become more and more obsolete, but we want to have modern hardware support. In current design osFree can be hosted on most of actual kernels like L4, Linux, Windows, etc. As result we can reuse existent drivers as is. | + | |
- | + | ||
- | API compatibility allow us to have still clean and small API and reuse existent applications. We have no plan for full support of 16-bit part of OS/2 because not so many applications which true 16-bit. For most mixed 16/32 applications we will provide on-the-fly patching of 16-bit calls to true 32-bit calls. As result we will have true 32-bit applications (after many years of mixed 16/32 applications). | + | |
- | + | ||
- | It is possible to embed the mixed 16/32 to pure 32-bit apps converter the executable file loader. So, the pure 32-bit application will always be in memory. It is even possible to save the conversion result to disk, which could be started again without the need to convert it again (just like the Just-in-time-compilation in Java). | + | |
- | + | ||
- | We have a plan for limited support of DOS and Win16 personalities (for historic reasons). But we don't limit you to add more personalities. | + | |
- | + | ||
- | ==== Lightweight ==== | + | |
- | + | ||
- | OS/2 is one of most lightweight 32-bit OS. osFree also will be as lightweight as possible. We don't want to request 1 Gb minimum for work. We want to make it work on as minimal hardware as it possible. This will allow to use osFree in embeded area. | + | |
- | + | ||
- | ==== Open ==== | + | |
- | + | ||
- | osFree components is comes under open licenses like BSD and (L)GPL licenses. And we try to document interfaces as much as possible. So you are free to extend it as you wish. | + | |
- | + | ||
- | ==== Object-oriented ==== | + | |
- | + | ||
- | osFree tries to extend object-oriented design of desktop to other parts of the system, using OOP principles. We use [[wp> | + | |
- | + | ||
- | ==== Contributing ==== | + | |
- | + | ||
- | [[en: | + | |
- | + | ||
- | [[en: | + | |
- | + | ||
- | osFree IRC channel is #osFree at [[irc:// | + |