Страница 1 из 2

Еще одна ОС на FreePascal

СообщениеДобавлено: 06.08.2009 14:25:57
Sedov
Здавствуйте!
Существует проект ОС на паскале. Прототип был написан на Delphi. Однако из-за того что ОС из "просто попробовать" превратилась в нечто большее потребовалось перейти на бесплатные компиляторы. В связи с этим вопрос: какие модули в исходниках FreePascal отвечают за создание структур EXE-файла? Как и в каких модулях надо прописать возможность выбора компиляции под свою ОС?
Структура исполняемого файла моей ОС немного похожа на Win32 PE.
Документация которая есть мне ничего не дала. Хотя возможно я не там смотрел.
Использую FreePascal 2.2.X
И еще маленький вопросик. GO32v2 - я правильно понял, что создается 32 битный код для реального режима?
Заранее спасибо за ответы.

Добавлено спустя 2 часа 16 минут 48 секунд:
Кто-нить знает где можно найти исходники BinUtils?

Re: Еще одна ОС на FreePascal

СообщениеДобавлено: 06.08.2009 17:39:24
скалогрыз
* писать ОСи - дело неблагодарное
* документации на FPC 2.x пока нет. Есть доки по FPC 1.x, код изменился, но есть много чего общего.
* посмотри реализацию внутреннего linker-a и writer-a для Windows. Если не ошибаюсь, то это fpcsrc/compiler/systems/t-win.pas
* исходники BinUtils можно найти здесь http://sourceforge.net/projects/mingw/
* писать ОСи - дело неблагодарное

Re: Еще одна ОС на FreePascal

СообщениеДобавлено: 07.08.2009 12:20:58
Bohdan
А какой смысл в ОС на FreePascal ?
Чем она будет отличатся от сотен других?
Тем более, что есть очень красивая и мощная операционка на Обероне(кто знает паскаль, тот за полчаса изучит оберон :wink: ) А2 (aka Aos, aka BlueBottle)в исходниках с поддержкой USB, IPv6 и т.д.

Re: Еще одна ОС на FreePascal

СообщениеДобавлено: 07.08.2009 13:21:53
Sedov
Pascal для меня просто язык программирования высокого уровня. В качестве языка разработки ОС он был выбран из-за того что я не очень дружу с Си.
А по поводу зачем нужна еще одна ОС- разрабатываемая ОС по своей архитектуре существенно отличается от других ОС. Нестандартное решение пзволило резко увеличить стабильность системы. Надо теперь по нормальному все написать и начать тестирование. А то раньше у меня был "пионерский" подход к подобным задачам.

Re: Еще одна ОС на FreePascal

СообщениеДобавлено: 07.08.2009 15:08:09
скалогрыз
Sedov писал(а):Нестандартное решение пзволило резко увеличить стабильность системы. Надо теперь по нормальному все написать и начать тестирование.

не в обиду автору.
но как может "нестандартное решение" резко увеличить стабильность системы?!
- ОСи не первый год пишут, переписывают и латают. Имеет смысл использовать чужой накопленный опыт, чем "нестандартные решения"

Если бы я писал ОСь, то вёл бы подробную документацию и приобщал бы, как можно больше людей к её разработке. Вдруг кто заранее найдёт и укажет на идеологическую ошибку?!

для тех кто занимается системной разработкой (тем более на FP) вот неплохой сайт:
http://www.osdev.org/
http://wiki.osdev.org/Pascal

Re: Еще одна ОС на FreePascal

СообщениеДобавлено: 07.08.2009 15:14:07
Bohdan
Sedov писал(а):Pascal для меня просто язык программирования высокого уровня. В качестве языка разработки ОС он был выбран из-за того что я не очень дружу с Си.

Гляньте АктивОберон, он вам понравится :wink:

Sedov писал(а):Нестандартное решение пзволило резко увеличить стабильность системы.

В А2 - стабильность на первом месте, там ее обеспечивает язык программирования, который к тому же поддерживает многопоточное программирование + это система реального времени.
Минимальная версия не много занимает - качать всего 7 мегабайт http://www.bluebottle.ethz.ch/downloads/A2CDmini.zip
Можно попробовать версию, которая работает поверх винды (не-эмулятор) http://www.inf.ethz.ch/personal/felixf/OS09/WinAosMini.zip
PS:Проектирование пользовательского интерфейса немного напоминает VCL.

Re: Еще одна ОС на FreePascal

СообщениеДобавлено: 07.08.2009 15:21:37
скалогрыз
Проблема любой операционки, ни в её скорейшем написании, а в том, чтобы "населить" её софтом и драйверами под железо.
если под ОСь нету ни того, ни другого - она мертва.

Из-за отсутствия *нужного* софта и *нужных* драйверов, линукс всё ещё составляет малую конкуренцию Винде. Хотя он вроде бы всем хорош ;)

------
Я бы посоветовал, каждому начинающему ОС-е писателю, задуматься о специальнпй утилите, которая портирует Windows драйвера в драйвера для его ОСи. Причём речи о "портировании исходников" не ведётся! Беруться скомпилированные дрова (x86 или x64) и переносятся )) Задачка трудоёмкая, но вполне(?!) решаемая ^^
В итоге проблем технического плана будет меньше )) А автора такой утилиты с руками оторвут организации вроде IBM

Re: Еще одна ОС на FreePascal

СообщениеДобавлено: 07.08.2009 15:53:29
Bohdan
скалогрыз писал(а):Проблема любой операционки, ни в её скорейшем написании, а в том, чтобы "населить" её софтом и драйверами под железо.
если под ОСь нету ни того, ни другого - она мертва.
Из-за отсутствия *нужного* софта и *нужных* драйверов, линукс всё ещё составляет малую конкуренцию Винде. Хотя он вроде бы всем хорош ;)

Да это конечно проблема, но там, где я предложил есть драйвера. И сами драйвера пишутся очень просто, хочется сказать, что проще не бывает :lol:
Например для тачскина писал:
Наследовал:
Код: Выделить всё
   TouchDriver= OBJECT (AosUsbHid.HidDriver);

и перекрыл:
Код: Выделить всё
      PROCEDURE HandleEvent(status : AosUsbdi.Status; actLen : LONGINT);

ну еще пару строчек кода

А на счет софта: так не всегда ж нужен офисный софт, если система используется под конкретную задачу (например встраиваема система), то нужен софт для решения этой задачи.
А конкурировать с МС и им подобным всегда будет очень тяжело, почти невозможно.

Re: Еще одна ОС на FreePascal

СообщениеДобавлено: 07.08.2009 17:19:03
bw
> Проблема любой операционки, ни в её скорейшем написании, а в том, чтобы "населить" её софтом и драйверами под железо.
Это проблема не операционки, а пользователя этой операционки.

Sedov, никого не слушай, пиши :-).

..bw

Re: Еще одна ОС на FreePascal

СообщениеДобавлено: 07.08.2009 17:29:41
Sedov
По поводу дров: да проблема существует. Решается следующими средствами:
а)подсистема окружения
б)переделка бинарника
в)переделка искодника (если конечно есть исходники)
г)виртуальный процессор
Все остальные программы- пишется подсистема окружения.

Re: Еще одна ОС на FreePascal

СообщениеДобавлено: 07.08.2009 17:59:34
скалогрыз
bw писал(а):Sedov, никого не слушай, пиши :-).

только если это приносит радость и удовольствие! :D
как только перестанет - бросай это неблагодарное дело!

и вообще может имеет смысл присоединится? http://code.google.com/p/fpos/wiki/FPOSWiki

Один недавно чел, пытался собрать то ли загрузчик на основе этих исходников, то ли GRUB приделать.
его цель была подружить ReactOS-у и PAE режим... или что-то в этом духе )) правда причём тут FPOS..?!

Re: Еще одна ОС на FreePascal

СообщениеДобавлено: 07.08.2009 19:26:11
Logo
Ух ты, как раскудахтались...
Есть идея - пиши. Дойдет до нас, то тоже поддержим.
Успехов тебе, Sedov!
Потом будем говорить, "а мы тоже у истоков этой системы были..." :oops:

Re: Еще одна ОС на FreePascal

СообщениеДобавлено: 22.06.2017 09:43:40
int0
скалогрыз писал(а):Я бы посоветовал, каждому начинающему ОС-е писателю, задуматься о специальнпй утилите, которая портирует Windows драйвера в драйвера для его ОСи. Причём речи о "портировании исходников" не ведётся! Беруться скомпилированные дрова (x86 или x64) и переносятся )) Задачка трудоёмкая, но вполне(?!) решаемая ^^


Такая утилита уже давно пишется, называется ReactOS

Re: Еще одна ОС на FreePascal

СообщениеДобавлено: 30.06.2017 09:22:43
Лекс Айрин
int0, ты не прав. ReactOS просто использует тот же формат дров... фактически, это тот же FreeWindows

Re: Еще одна ОС на FreePascal

СообщениеДобавлено: 01.07.2017 21:58:38
serbod
скалогрыз писал(а):Я бы посоветовал, каждому начинающему ОС-е писателю, задуматься о специальнпй утилите, которая портирует Windows драйвера в драйвера для его ОСи. Причём речи о "портировании исходников" не ведётся! Беруться скомпилированные дрова (x86 или x64) и переносятся )) Задачка трудоёмкая, но вполне(?!) решаемая ^^


Дрова используют ядро оси и некоторые системные библиотеки, поэтому придется делать эмуляцию ядра и библиотек. А это нетривиальная задача.