ФЭНДОМ


Добро пожаловать на OS Free Вики.

На данный момент создано 18 статей.

Свежие правки | Новые изображения | Активные участники | Категории | Шаблоны

osFree — проект с открытым исходным кодом, посвящённый созданию клона операционной системы IBM OS/2. Также, возможно параллельное сосуществование API различных операционных систем, построенных поверх одного и того же микроядра.

Идеей проекта является воссоздание и постепенная замена подсистем OS/2 на аналоги с открытым исходным кодом. Цель состоит в повторении функционала OS/2 Warp 4 (Merlin).

Система работает поверх микроядра L4 и l4env.

Микроядро может служить основой для параллельных API, реализованных поверх него. Эти API могут существовать независимо, имея минимальную общую базу, состоящую из самого микроядра и некоторого набора общих сервисов (называемых personality-нейтральными сервисами). Это позволяет иметь независимую (non-layered) реализацию параллельных API.

Совместимость с OS/2

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

Совместимость с OS/2 планируется только на уровне API. Совместимость на уровне драйверов не планируется, т.к. по мнению разработчиков драйверы OS/2 все больше устаревают. Согласно своей идее, osFree может работать поверх множества ядер, таких как L4, Linux, Windows, etc. В результате, можно использовать подсистему драйверов этих ядер.

Поддержка всей 16-битной части OS/2 не планируется, так как существует не так уж и много приложений, которые являются чисто 16-битными. Для большинства смешанных 16/32-разрядных приложений разработчики планируют сделать автоматическую замену 16 битных вызовов на чисто 32-битный API. Как результат, получатся чисто 32-битные приложения (вместо многолетней практики использования “смешанных” 16/32 приложений).

Первоочередной задачей проекта является поддержка запуска большинства консольных приложений OS/2 под OS/2 Server.

Обратите внимание! Для запуска программы в последней опубликованной версии (0.0.4.7) нужно указать в консоли полный путь до приложения (например, c:\scanenv.exe). В транке этот недочет уже исправлен.

"Индивидуальные ОС"

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

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

Серверы OS/2 personality:

  • Os2fs - файловый сервер. Реализует файловые API и врапперы для l4vfs для поддержки семантики файловой системы OS/2. (вводятся буквы дисков, файловый доступ к пайпам в ветке \pipe\.., устройствам в \dev\.. и т.п.
  • Os2exec - сервер для загрузки исполняемых файлов и DLL различных форматов. Также реализуются различные API для работы с исполняемыми модулями. Поддержка исполняемых форматов отделена от самого сервера, и выделена в отдельную библиотеку. Т.е., есть например, lx.ixf для поддержки исполняемых файлов формата LX. Предполагается написать аналогичный драйвер elf.ixf для формата ELF – аналогично OS/2 Warp (PowerPC edition), будет рализована поддержка EXE и DLL формата ELF. Как известно, формат LX заточен под платформу Intel и хотя он хорошо оптимизирован под ее возможности, но для других платформ его использование может быть проблематичным. Формат ELF напротив, абстрагирован от платформы, поддерживает как 32-битный, так и 64-битный вариант.
  • Os2srv - главный сервер OS/2 personality. Координирует запуск других серверов OS/2 personality, при старте системы обрабатывает файл config.sys и запускает остальные серверы. При запуске задаются пути поиска программ и библиотек, запускаются другие серверы через оператор runserver=, затем запускаются OS/2 программы (не серверы) через run= (асинхронно) и call= (синхронно) и, наконец, запускается программа, прописанная как protshell=.
    • Как и в обычной OS/2, protshell это программа, запускающая оболочку, стартующую пользовательский интерфейс системы. В случае OsFree это программа minicmd.exe.
  • Os2app - это не сервер, а специальное приложение l4env, которое представляет собой своеобразный враппер для OS/2 приложения. Каждое OS/2 приложение запускается в контексте своей копии os2app. При запуске minicmd.exe, например, стартуется os2app, которому передаются параметры командной строки: '–stdin /dev/vc0 –stdout /dev/vc0 –stderr /dev/vc0 c:\minicmd.exe'. – Таким образом, в командной строке передается, к какой консоли цепляться в качестве stdin/stdout/stderr и какое OS/2 приложение запускать.
  • Linux personality - должна предоставить полную функциональность ядра Linux. Будет использован дистрибутив на ядре L4Linux.
    • Судя по скриншотам, в качестве Linux-personality используется Debian 3.0 на ядре L4
  • MVM/DOS personality - среда для запуска множества виртуальных машин с немодифицированными ОС. Данное направление очень перспективно для разработчиков, хотя и имеет меньший приоритет, чем разработка OS/2 personality, поэтому они возможно, воспользуются наработками других проектов, например QEMU, DosBox, DosEmu, FreeDOS.
    • Пока отсутствует
  • Win16 personality
    • Пока отсутствует
  • Win32 personality - должна предоставлять частичный или полный набор Win32 API. Если получится паравиртуализировать ReactOS (есть идея насчет написания HAL-а, работающего поверх l4env/l4re), то разработчики будут использовать этот результат для поддержки Win32 API. В противном случае, будут использованы результаты проекта WINE.[1]

Q: Теоретически, как сложно написать такой HAL для L4?
A: Это около года работы до выпуска работоспособной альфа\бета версии, если за дело возьмутся человек пять программистов уровня Алексея Брагина и Алекса Ионеску. [2]

  • Пока отсутствует

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

Компоненты

В настоящее время проект osFree предоставляет к тестированию ряд следущих компонентов:

  • Загрузчик ядра
  • Сервер OS/2 Personality
  • Утилиты командной строки
  • Интерпретатор языка Classic REXX
  • Процедуры ввода-вывода
  • Подсистема мультимедиа

osFree

Помощь

Сообщество

OS/2

Статьи

Ссылки