На данный момент создано 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 – они почти функционально эквивалентны.
- Фреймворки:l4env, l4re и Genode
- OS/2 personality - должна предоставлять полное (или подмножество) OS/2 API.
- Пишется разработчиками osFree

Серверы 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[]
Статьи[]
- OS/2: между прошлым и будущим — Компьютерра
- Презентация демо osFree
- Open Source и OS/2, [3]
- Микроядро L4 как основа ядра ОС
Ссылки[]
- Официальный сайт
- Баг-трекер
- Группа в Telegram
- Changelog
- Скачать
- osfree-demo-0.0.4.7 - build r1040
- Неофициальное зеркало (osfree-demo-0.0.4.7-cc-edition.7z и др.)
- Сообщество в vk
