Table of Contents

Первые шаги

Перед тем как начать что-то кодировать, почитайте исходники и определите область, которая вас заинтересует для разработки. У нас есть очень широкий круг задач и, очень возможно, одна из них вас заинтересует. Только помните, что наша текущая главная задача – реализовать более или менее полный набор OS/2 API поверх микроядра L4.

Инструменты разработки

Язык программирования Компилятор
C Open Watcom
C++ Open Watcom
FORTRAN Open Watcom
Pascal FreePascal
REXX ReginaREXX

Другие языки тоже могут быть использованы для разработки частей ОС. Но они тоже должны быть Open Source и использовать OS/2 API. Использование платных и shareware (то есть, которые могут быть скачаны с многих мест, но стоят денег и лицензия которых имеет много ограничений) не рекомендуется. Желательно использовать инструменты из поставки OpenWatcom для сборки ваших исходников.

Когда существуют аналогичные инструменты (например NMAKE и WMAKE), всегда используйте инструменты из поставки OpenWatcom.

Получение и сборка исходных кодов

Сначала, вы должны загрузить нижеперечисленные инструменты для вашей платформы с соответствующих сайтов:

Вы можете загрузить нерегулярно обновляемые снапшоты исходников с этого сайта, или самые последние версии из Git. Исходники osFree находятся на GitHub. GitHub также позволяет скачать любую ревизию в виде .tar.gz архива.

Перед сборкой проверьте файлы setvars-<somename>.cmd и <somename>.conf, И поменяйте настройки (в основном, пути к инструментам разработки). После этого откройте сеанс командной строки и запустите setvars-<somename>.cmd и введите

wmake

начнется процесс сборки. Для очистки дерева исходников от созданных при сборке файлов наберите

wmake clean

Для более подробной информации о системе сборки см. документ Система сборки.

Дерево каталогов

Посмотрите на код в Git-репозитории, для понимания принципа размещения файлов. Обратите внимание, что дерево файлов в SVN osFree состоит из исходных кодов операционной системы и инструментов тулкита. Пожалуйста, НЕ помещайте сюда приложения и инструменты, не соответствующие назначению тулкита. Тулкит это вспомогательные утилиты, собираемые под ту систему, под которой ведется сборка и необходимые для сборки файлов ОС.

Глобальные/Общие/Приватные файлы заголовков

Каждый уровень дерева исходных текстов содержит два стандартных каталога:

FIX THIS! Сейчас это немного не так!
shared Содержит код, общий для данного и более глубокого уровней вложенности каталогов
include Содержит заголовки для всего выше перечисленного

Каждая часть/уровень ОС должен иметь отдельный префикс, позволяющий разработчику легко найти часть ОС, к которой заголовочный/библиотечный файл принадлежит. Например, код, общий для всего дерева исходников, должен включать:

#include <all_shared.h>

и код общий для утилит командной строки должен вклюачть:

#include <cmd_shared.h>

Старайтесь создавать чем меньше общих заголовочных файлов, тем лучше. Кадждый “shared” каталог должен содержать один (1) библиотечный (.lib) файл (xxx_shared.lib) со всем общим кодом и каждая “include” директория должна содержать один главный заголовочный файл, включабщий все другие (xxx_shared.h).

Пример использования общих файлов:

// Use the normal OS/2 INCL_ since our toolkit is the OS/2 toolkit
#define INCL_DOSERROR
 
// Do NOT include os2.h, use osfree.h instead
#include <osfree.h>
 
// Include any needed normal C library
#include <malloc.h>
#include <string.h>
 
// Include all shared code and shared code for command line tools
#include <all_shared.h>
#include <cmd_shared.h>

Документация

В процессе разработки

Присылая патчи с исправлениями (ИСПРАВИТЬ!!!)