osFree Whitepaper

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

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

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

Открытость

Простота

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

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

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

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

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

Общий дизайн

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

В основе системы, мы собираемся использовать микроядро L4 как базу системыы. Поверх L4 мы планируем построить следующие OS personalities (индивидуальные ОС):

Нейтральную personality

OS/2 personality

Linux personality

DOS personality

Win16 personality

Win32 personality

Neutral personality это базовое ОС API. Это набор серверов и библиотек, предоставляющие разные сервисы. Все другие personalities построены поверх Нейтральной Personality. Скорее всего, многие API нейтральных сервисов будут использованы почти в готовом виде (в виде простых врапперов).

OS/2 personality должна предоставлять полное (или подмножество) OS/2 API. На первом этапе мы собираемся разработать базовые 32-бит API.

Linux personality должна предоставить полную функциональность ядра Linux. Linux в данный момент является одной из mainstream OS. Она представляет собой инструментальную среду. которая предоставляет множество утилит для разработки, библиотек и приложений, и мы собираемся использовать Linux как одну из главных платформ для разработки. Для этого мы собираемся использовать результаты проекта L4Linux.

DOS personality должна предоставлять функциональность DOS. DOS поддерживалась оригинальной OS/2 и она до сих пор используется многими. Мы не собираемся тратить слишком много сил в этом направлении, поэтому мы возможно, воспользуемся наработками других проектов. накпример QEMU, DosBox, DosEmu, FreeDOS.

Win32 personality должна предоставлять частичный или полный набор Win32 API. Windows это тоже одна их mainstream OS и мы тоже не можем игнорировать ее присутствие. Если получится пара-виртуализировать ReactOS (есть идея насчет написания HAL-а, работающего поверх l4env/l4re), то мы этот результат используем для поддержки Win32 API. В противном случае, будут использованы результаты проекта WINE.

При желании, вы можете сюда добавить нужную вам personality.

На данный момент, мы закончили выбор файловой системы и процесса загрузки. Мы используем готовую, традиционную для OS/2, концепцию IFS. Наиболее заметное отличие от обычной OS/2 это отсутствие MiniFSD (как это было в OS/2 PPC) и 32-битный главный IFS драйвер. Более подробно о процессе загрузки можно прочитать здесь: Руководстваа по процессу загрузки.

Для общих указаний по разработке см. Справочник для разработчика.