Перенос WinAPI в KolibriOS

Internal structure and you change requests/suggestions
  • Да вообще-то все виндовые программы юзают только Win API все MFC, ATL и т.д. это банально враперы над Win API. Только что можно будет портировать без реализации COM (и всех его наворотов типа ActiveX(OLE2) и т.д.)?
    В ядре нет помоему даже rpc и как перенести COM?

    Вообще лучше подумать хотя бы о поддержке POSIX дабы перенести программы из UNIX из разряда простейших хотябы.

    Ну хотя если человеку хочется то пусть делает, хуже от этого не будет.
    Если бы строители строили здания, так же как программисты пишут программы первый же залетевший дятел разрушил бы цивилизацию.
  • Отличная идея, только чет я немного не понял твоей мысли. зачем все переписывать?
    ИМХО:
    1. Для начала нужно просто написать качественный загрузчик WinPE файлов, т.е. прогу, которая бы обрабатывала таблицы импорта и экспорта exe и dll-файлов - берем файл, читаем заголовок, выделяем функции импорта, ищем библиотеки с нужными функциями (но уже экспорта!), грузим в память эти библиотеки по пути перенаправляя адреса их функций на какие-нибудь еще библиотеки, если надо, потом грузим код нашего pe-файла, перенапрявляя адреса функций на уже загруженные перед этим библиотеки. Но это в двух словах, на деле там хренова туча ньюансов!
    2. Для начала весь API переписывать не надо, только основные функции ядра, думаю после этого начнутся загружаться и библиотеки самой виндовс. Если нельзя майкросовтовские - пожалуйста, есть библиотеки ReactOS с открытым кодом.
    3. Реализация Win GUI API на основе API Kolibri. Либо использование родного GUI, но мне кажется первый вариант предпочтительнее =)

    Вообще я целиком всеми руками за этот проект, и более того, эта мысль меня терзает уже давно, я сам определенно намерен этим заниматься, но есть одно но, никогда не писал на асме или на си. ) (но есть опыт делфи и php)))).

    PS Где взять описание внутреннего устройства ядра колибри и принципов реализации многозадачности. Есть что-нибудь в научно-популярном стиле? ))
  • Есть FreePascal, научится Си несложно.
    А лучший док по ядру - это каменты в нём :)
    Из хаоса в космос
  • Мне удалось пофиксить работу всех не работавших функций (CreateDirectorty, DeleteFile).
    Однако даже с набором функций, указанных в list.txt, не запустится даже виндовский блокнот... писать еще очень и очень много.
    Attachments
    WinAll.7z (8.76 KiB)
    исходники
    Downloaded 472 times
  • В общем P.S.
    На всем известный Wine со дня старта и по версию 1.0 ушло 10 лет и это с ядром и кучей библиотек котрые в принципе не хуже от Win32 по функциональности. И то ничего сложнее WinRar и блокнота без танцев с бубном запустить не получается. В общем идея в принципе сложно реализуемая на данном ядре.
    Если бы строители строили здания, так же как программисты пишут программы первый же залетевший дятел разрушил бы цивилизацию.
  • Я знаю про Wine. Работа грандиозная (35 метров исходников), а результат пока не очень впечатляющий. Но приведу другой пример. DosWin32 - пакет эмуляции Win32-подсистемы в ОС DOS. Программа шароварная и с закрытыми исходниками, возможности приличные. Запускается rar, far и другие консольные приложения Винды. Ведь по статистике в консольных приложениях используется всего 100-200 API функций, реализовать которые вполне реально. Кроме того в DosWin32 есть механизм плагинов - можно самостоятельно реализовать недостающие функции.
  • По-моему, эта затея с переносом хороша только для изучения API Колибри самим автором в процессе написания этого самого "емулятора винды" ;)
  • Albom, у Вас есть более новая версия WinAll, чем та, что уже выложена? Скиньте, пожалуйста.
    Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
  • GerdtR
    Более новой версии нет. Последняя - за 18 января 2008 года (во вложении).
    Сейчас бы я по-другому реализовывал эти функции... Используя предыдущие наработки (kolibri.c из shell) и применяя gcc вместо MSVC. Основная идея - заставить компилироваться (а потом и запускаться) хотя бы одну виндовую (консольную) программу.
    Кстати, можно "на ты".
    Attachments
    winall.zip (6.43 KiB)
    Downloaded 343 times
  • Моя идея несколько сложнее: заставить работать хотя бы несколько вин-прог в Колибри. А что бы использовать труды из Wine нужно как минимум переписать ntdll, kernel32, и добруя часть user32. Вот меня и интересует сия разработка.
    Мало) Хочу ещё)
    Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
  • Намного более реалистично портировать wine. Функции WinAPI несколько сложнее, чем функции Колибри.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • GerdtR
    Какие конкретно проги тебя интересуют?
  • Mario_r4 wrote:Намного более реалистично портировать wine. Функции WinAPI несколько сложнее, чем функции Колибри.
    Загрузчик PE также есть в HX DOS Extender (c исходниками и список испытанных приложений хороший) и в других "местах" (ReactOS)
    А поддержку или подгрузку необходимых функций win DLL ( WinApi) "достаточно" выполнить минимальную, как например в ещё и doswin32
    или запускать существующие решения в рамках DOS BOX

    P.S. Получится запустить, "достаточно" много windows приложений помимо консольных и FAR.
    Разве никто это ещё не "испытал" в рамках колибри? (хотя с выводами, наверное поторопился)
  • Kopa wrote:Разве никто это ещё не "испытал" в рамках колибри? (хотя с выводами, наверное поторопился)
    Насколько мне известно - нет.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Who is online

    Users browsing this forum: No registered users and 1 guest