This is an old revision of the document!
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/2x и она до сих пор используется многими. Мы не собираемся тратить слишком много сил в этом направлении, поэтому мы возможно, воспользуемся наработками других проектов. накпример QEMU, DosBox, DosEmu, FreeDOS.
Win32 personality должна предоставлять частичный или полный набор Win32 API. Windows это тоже одна их mainstream OS и мы тоже не можем игнорировать ее присутствие. Если получится пре-виртуализировать ReactOS, то мы этот результат используем для поддержки Win32 API. В противном случае, будут использованы результаты проекта WINE.
При желании, вы можете сюда добавить нужную вам personality.
На данный момент, мы закончили выбор файловой системы и процесса загрузки. Мы используем готовую, традиционную для OS/2, концепцию IFS. Наиболее заметное отличие от обычной OS/2 это отсутствие MiniFSD (как это было в OS/2 PPC) и 32-битный главный IFS драйвер. Более подробно о процессе загрузки можно прочитать здесь: Руководстваа по процессу загрузки.
Для общих указаний по разработке см. Справочник для разработчика.
Discussion