Еще одна ОС на FreePascal
Модераторы: Рождённый_в_СССР, Модераторы
Еще одна ОС на FreePascal
Здавствуйте!
Существует проект ОС на паскале. Прототип был написан на Delphi. Однако из-за того что ОС из "просто попробовать" превратилась в нечто большее потребовалось перейти на бесплатные компиляторы. В связи с этим вопрос: какие модули в исходниках FreePascal отвечают за создание структур EXE-файла? Как и в каких модулях надо прописать возможность выбора компиляции под свою ОС?
Структура исполняемого файла моей ОС немного похожа на Win32 PE.
Документация которая есть мне ничего не дала. Хотя возможно я не там смотрел.
Использую FreePascal 2.2.X
И еще маленький вопросик. GO32v2 - я правильно понял, что создается 32 битный код для реального режима?
Заранее спасибо за ответы.
Добавлено спустя 2 часа 16 минут 48 секунд:
Кто-нить знает где можно найти исходники BinUtils?
Существует проект ОС на паскале. Прототип был написан на Delphi. Однако из-за того что ОС из "просто попробовать" превратилась в нечто большее потребовалось перейти на бесплатные компиляторы. В связи с этим вопрос: какие модули в исходниках FreePascal отвечают за создание структур EXE-файла? Как и в каких модулях надо прописать возможность выбора компиляции под свою ОС?
Структура исполняемого файла моей ОС немного похожа на Win32 PE.
Документация которая есть мне ничего не дала. Хотя возможно я не там смотрел.
Использую FreePascal 2.2.X
И еще маленький вопросик. GO32v2 - я правильно понял, что создается 32 битный код для реального режима?
Заранее спасибо за ответы.
Добавлено спустя 2 часа 16 минут 48 секунд:
Кто-нить знает где можно найти исходники BinUtils?
* писать ОСи - дело неблагодарное
* документации на FPC 2.x пока нет. Есть доки по FPC 1.x, код изменился, но есть много чего общего.
* посмотри реализацию внутреннего linker-a и writer-a для Windows. Если не ошибаюсь, то это fpcsrc/compiler/systems/t-win.pas
* исходники BinUtils можно найти здесь http://sourceforge.net/projects/mingw/
* писать ОСи - дело неблагодарное
* документации на FPC 2.x пока нет. Есть доки по FPC 1.x, код изменился, но есть много чего общего.
* посмотри реализацию внутреннего linker-a и writer-a для Windows. Если не ошибаюсь, то это fpcsrc/compiler/systems/t-win.pas
* исходники BinUtils можно найти здесь http://sourceforge.net/projects/mingw/
* писать ОСи - дело неблагодарное
-
Bohdan
- новенький
- Сообщения: 87
- Зарегистрирован: 11.05.2005 11:31:46
- Откуда: Ukraine, Kyiv
- Контактная информация:
А какой смысл в ОС на FreePascal ?
Чем она будет отличатся от сотен других?
Тем более, что есть очень красивая и мощная операционка на Обероне(кто знает паскаль, тот за полчаса изучит оберон
) А2 (aka Aos, aka BlueBottle)в исходниках с поддержкой USB, IPv6 и т.д.
Чем она будет отличатся от сотен других?
Тем более, что есть очень красивая и мощная операционка на Обероне(кто знает паскаль, тот за полчаса изучит оберон
Pascal для меня просто язык программирования высокого уровня. В качестве языка разработки ОС он был выбран из-за того что я не очень дружу с Си.
А по поводу зачем нужна еще одна ОС- разрабатываемая ОС по своей архитектуре существенно отличается от других ОС. Нестандартное решение пзволило резко увеличить стабильность системы. Надо теперь по нормальному все написать и начать тестирование. А то раньше у меня был "пионерский" подход к подобным задачам.
А по поводу зачем нужна еще одна ОС- разрабатываемая ОС по своей архитектуре существенно отличается от других ОС. Нестандартное решение пзволило резко увеличить стабильность системы. Надо теперь по нормальному все написать и начать тестирование. А то раньше у меня был "пионерский" подход к подобным задачам.
Sedov писал(а):Нестандартное решение пзволило резко увеличить стабильность системы. Надо теперь по нормальному все написать и начать тестирование.
не в обиду автору.
но как может "нестандартное решение" резко увеличить стабильность системы?!
- ОСи не первый год пишут, переписывают и латают. Имеет смысл использовать чужой накопленный опыт, чем "нестандартные решения"
Если бы я писал ОСь, то вёл бы подробную документацию и приобщал бы, как можно больше людей к её разработке. Вдруг кто заранее найдёт и укажет на идеологическую ошибку?!
для тех кто занимается системной разработкой (тем более на FP) вот неплохой сайт:
http://www.osdev.org/
http://wiki.osdev.org/Pascal
-
Bohdan
- новенький
- Сообщения: 87
- Зарегистрирован: 11.05.2005 11:31:46
- Откуда: Ukraine, Kyiv
- Контактная информация:
Sedov писал(а):Pascal для меня просто язык программирования высокого уровня. В качестве языка разработки ОС он был выбран из-за того что я не очень дружу с Си.
Гляньте АктивОберон, он вам понравится
Sedov писал(а):Нестандартное решение пзволило резко увеличить стабильность системы.
В А2 - стабильность на первом месте, там ее обеспечивает язык программирования, который к тому же поддерживает многопоточное программирование + это система реального времени.
Минимальная версия не много занимает - качать всего 7 мегабайт http://www.bluebottle.ethz.ch/downloads/A2CDmini.zip
Можно попробовать версию, которая работает поверх винды (не-эмулятор) http://www.inf.ethz.ch/personal/felixf/OS09/WinAosMini.zip
PS:Проектирование пользовательского интерфейса немного напоминает VCL.
Проблема любой операционки, ни в её скорейшем написании, а в том, чтобы "населить" её софтом и драйверами под железо.
если под ОСь нету ни того, ни другого - она мертва.
Из-за отсутствия *нужного* софта и *нужных* драйверов, линукс всё ещё составляет малую конкуренцию Винде. Хотя он вроде бы всем хорош
------
Я бы посоветовал, каждому начинающему ОС-е писателю, задуматься о специальнпй утилите, которая портирует Windows драйвера в драйвера для его ОСи. Причём речи о "портировании исходников" не ведётся! Беруться скомпилированные дрова (x86 или x64) и переносятся )) Задачка трудоёмкая, но вполне(?!) решаемая ^^
В итоге проблем технического плана будет меньше )) А автора такой утилиты с руками оторвут организации вроде IBM
если под ОСь нету ни того, ни другого - она мертва.
Из-за отсутствия *нужного* софта и *нужных* драйверов, линукс всё ещё составляет малую конкуренцию Винде. Хотя он вроде бы всем хорош
------
Я бы посоветовал, каждому начинающему ОС-е писателю, задуматься о специальнпй утилите, которая портирует Windows драйвера в драйвера для его ОСи. Причём речи о "портировании исходников" не ведётся! Беруться скомпилированные дрова (x86 или x64) и переносятся )) Задачка трудоёмкая, но вполне(?!) решаемая ^^
В итоге проблем технического плана будет меньше )) А автора такой утилиты с руками оторвут организации вроде IBM
-
Bohdan
- новенький
- Сообщения: 87
- Зарегистрирован: 11.05.2005 11:31:46
- Откуда: Ukraine, Kyiv
- Контактная информация:
скалогрыз писал(а):Проблема любой операционки, ни в её скорейшем написании, а в том, чтобы "населить" её софтом и драйверами под железо.
если под ОСь нету ни того, ни другого - она мертва.
Из-за отсутствия *нужного* софта и *нужных* драйверов, линукс всё ещё составляет малую конкуренцию Винде. Хотя он вроде бы всем хорош
Да это конечно проблема, но там, где я предложил есть драйвера. И сами драйвера пишутся очень просто, хочется сказать, что проще не бывает
Например для тачскина писал:
Наследовал:
Код: Выделить всё
TouchDriver= OBJECT (AosUsbHid.HidDriver);и перекрыл:
Код: Выделить всё
PROCEDURE HandleEvent(status : AosUsbdi.Status; actLen : LONGINT);
ну еще пару строчек кода
А на счет софта: так не всегда ж нужен офисный софт, если система используется под конкретную задачу (например встраиваема система), то нужен софт для решения этой задачи.
А конкурировать с МС и им подобным всегда будет очень тяжело, почти невозможно.
- bw
- постоялец
- Сообщения: 359
- Зарегистрирован: 01.12.2005 10:36:23
- Откуда: Усть-Илимск
- Контактная информация:
> Проблема любой операционки, ни в её скорейшем написании, а в том, чтобы "населить" её софтом и драйверами под железо.
Это проблема не операционки, а пользователя этой операционки.
Sedov, никого не слушай, пиши :-).
..bw
Это проблема не операционки, а пользователя этой операционки.
Sedov, никого не слушай, пиши :-).
..bw
По поводу дров: да проблема существует. Решается следующими средствами:
а)подсистема окружения
б)переделка бинарника
в)переделка искодника (если конечно есть исходники)
г)виртуальный процессор
Все остальные программы- пишется подсистема окружения.
а)подсистема окружения
б)переделка бинарника
в)переделка искодника (если конечно есть исходники)
г)виртуальный процессор
Все остальные программы- пишется подсистема окружения.
bw писал(а):Sedov, никого не слушай, пиши.
только если это приносит радость и удовольствие!
как только перестанет - бросай это неблагодарное дело!
и вообще может имеет смысл присоединится? http://code.google.com/p/fpos/wiki/FPOSWiki
Один недавно чел, пытался собрать то ли загрузчик на основе этих исходников, то ли GRUB приделать.
его цель была подружить ReactOS-у и PAE режим... или что-то в этом духе )) правда причём тут FPOS..?!
Ух ты, как раскудахтались...
Есть идея - пиши. Дойдет до нас, то тоже поддержим.
Успехов тебе, Sedov!
Потом будем говорить, "а мы тоже у истоков этой системы были..."
Есть идея - пиши. Дойдет до нас, то тоже поддержим.
Успехов тебе, Sedov!
Потом будем говорить, "а мы тоже у истоков этой системы были..."
скалогрыз писал(а):Я бы посоветовал, каждому начинающему ОС-е писателю, задуматься о специальнпй утилите, которая портирует Windows драйвера в драйвера для его ОСи. Причём речи о "портировании исходников" не ведётся! Беруться скомпилированные дрова (x86 или x64) и переносятся )) Задачка трудоёмкая, но вполне(?!) решаемая ^^
Такая утилита уже давно пишется, называется ReactOS
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
int0, ты не прав. ReactOS просто использует тот же формат дров... фактически, это тот же FreeWindows
- serbod
- постоялец
- Сообщения: 449
- Зарегистрирован: 16.09.2016 10:03:02
- Откуда: Минск
- Контактная информация:
скалогрыз писал(а):Я бы посоветовал, каждому начинающему ОС-е писателю, задуматься о специальнпй утилите, которая портирует Windows драйвера в драйвера для его ОСи. Причём речи о "портировании исходников" не ведётся! Беруться скомпилированные дрова (x86 или x64) и переносятся )) Задачка трудоёмкая, но вполне(?!) решаемая ^^
Дрова используют ядро оси и некоторые системные библиотеки, поэтому придется делать эмуляцию ядра и библиотек. А это нетривиальная задача.
