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

MVM/DOS personality

Win16 personality

Win32 personality

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

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

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

MVM/DOS personality должна предоставлять функциональность DOS, или, в более ширроком смысле, среду для запуска множества виртуальных машин с немодифицированными ОС. DOS поддерживалась оригинальной OS/2 и она до сих пор используется многими. Для нас это направление очень перспективно, хотя и имеет меньший приоритет, чем разработка OS/2 personality, поэтому мы возможно, воспользуемся наработками других проектов. накпример 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 драйвер. Более подробно о процессе загрузки можно прочитать здесь: Руководства по процессу загрузки.

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