Менеджер DLL в MeOS

Discussing libraries simplifying applications development
  • Ну ты приколист !

    Ох,я и посмеялся!
  • А свой формат нужно делать хотя бы для того,чтобы не все программы из Колибри можно было перенести на другие ОС.Чтобы Колибри стояла на компьютере хотябы из-за того,что в Колибри есть какя-то классная программа(игрушка например) неимеющая аналога на других платформах.
    Мы все глядим в Биллы Гейтсы? А как же Свободный Софт?
    Идеология меоси как хобби операционки - сделать все своими руками. Эдакая лаборатория для экспериментов. ИМХО свой формат - это меось стиль Smile
    Как хобби конечно можно везде ипользовать свои форматы. Но делать ставку только на них неразумно. Таким путем мы теряем возможность использования огромного количества уже готового кода который работает с другими форматами. В принципе можно написать пять разных загрузчиков для разных форматов. Just for fun.
  • Serge,вот как раз на Билла Гейтса я смотреть нехочую.Лично я за свободный софт.Но когда половина разработчиков говорит,что им нужны стандартные DLL-ки,а другая половина говорит,что нужен свой формат,то единственный компромис - это сделать поддержку обоих форматов с возможностью конвертирования из своего стандарта в другие стандарты.
  • Но когда половина разработчиков говорит,что им нужны стандартные DLL-ки,а другая половина говорит,что нужен свой формат,то единственный компромис - это сделать поддержку обоих форматов с возможностью конвертирования из своего стандарта в другие стандарты.
    Но ведь стандартные DLL-ки это не обязательно Windows (PE COFF) DLL. Есть ELF - формат открыт, описания доступны, FASM его поддерживает. Почему не взять его за основу? Почему все крутится вокруг выбора или как в Windows или свое, доморощенное?
  • Я решил сделать свой формат, потому как мне так проще. Мне был интересен результат,а не то понравится кому этот формат или нет. Но конечно если его ещё будут использовать я буду очень рад. Пока эти длл реализованы на уровне приложения не вижу смысл от внедрения COFF,ELF и других "хорошо документированных форматов". Как уже говорил,сейчас пытаюсь сделать программу для колибри,которая будет конвертировать из COFF в мой формат. Думаю этого достаточно для хоть какой-то совместимости с большинством компиляторов.
  • Serge,я совсем не утверждал,что нужно брать именно виндосовский формат DLL.Под словом "стандартные" я имел ввиду распространенные.

    Какая главная роль динамической библиотеки ?
    1)Экономия памяти засчет использования библиотеки несколькими программами.
    2)Возможность динамической загрузки драйверов,а значит уменьшение размера ядра.

    И какой формат DLL будет -это неважно.Он всеравно будет удовлетворять пунктам 1 и 2.

    А если в будущем мы хотим имет аппаратное ускорение 2D и 3D графики видеокартой,то необходимо делать поддержку виндосовских DLL.Потомучто писать к каждой видеокарте драйвер - это нереально(дай бох для одной написать).Остается использовать DLL от nVidia(для тех у кого nVidia).А nVidia использует виндосовский формат DLL.
    Аналогично можно и про ATI сказать.
  • Формат драйверов и в виндовс и формат pe по моему сильно отличаются(хотя я и не сильно в этом разбираюсь). nVidia в длл запихивает не сам драйвер,а многи их утилит ,кторые поставляются с драйвером. А на счет экономии памяти,для меня это довольно сложно. Опять же надо: поддержка со стороны ядра, позиционно независимый код или грузить по одному адресу в каждой проге. Поразмышляв с завсегдатаями #meos решили что в виндовс разделяемыми(т.е. у которых физически в памяти находится только одна копия длл) могут быть только системные длл которые грузятся по фиксированным адресам. При этом секция данных у всех наверно своя.
    А так разделяемые длл можно использовать по-моему для ipc. Может так и быстрее будет. Да и без участия ядра практически
  • >nVidia в длл запихивает не сам драйвер,а многи их утилит ,кторые поставляются с драйвером.

    Незнаю как на других видеокартах,но для моей GeForce 4 mx 440 есть драйвер OpenGL ввиде специальнойDLL .Это DLL-ка в 3 мегабайта.И представляет она из себя не набор утилит,а самый настоящий драйвер,работающий напрямую с видеокартой.Я дезассемблировал код этой DLL-ки.Получилось примерно 155 мегобайт кода.Я изучал этот код и пришел к выводу,что это драйвер работает напрямую с видеокартой и является посредником между WinAPI и видеокартой.Если понять как с этой DLL работать,то можно её использовать(так-же как использует её виндовс - для ускорения 2D и 3D графики).

    >А так разделяемые длл можно использовать по-моему для ipc.

    Это через IPC десятки(сотни) мегабайт данных передавать ?
    При скорости 256 байт в секунду.
  • Это через IPC десятки(сотни) мегабайт данных передавать ?
    При скорости 256 байт в секунду.
    Это не принципиально. IPC могут быть разные. А использовать Win драйверы будет очень сложно. Для их работы надо написать столько кода, что вся система просто превратится в Windows
  • Драйвера Windows в формате PE, но заставить их работать в Колибри имхо нереально. Разве что заменить ядро КолибриОС на ntoskrnl.exe :)

    Поправьте меня, если ошибаюсь, но вроде бы поддержка формата ELF в fasm очень ограниченная. Можно создавать исполнимые файлы для Linux, но управлять выравниванием и другими фичами нельзя. По крайней мере, нельзя было около года назад, когда я пытался сделать программу на фасме для Visopsys.
  • Поправьте меня, если ошибаюсь, но вроде бы поддержка формата ELF в fasm очень ограниченная. Можно создавать исполнимые файлы для Linux, но управлять выравниванием и другими фичами нельзя. По крайней мере, нельзя было около года назад, когда я пытался сделать программу на фасме для Visopsys.
    Вполне возможно, но если FASM делает таблицы релокаций, то он подойдет. MS COFF генерируется тоже странновато.
  • Я хотел понять как они работают(nVidia-вские DLL),а потом изменить код DLL так,чтобы они работали как нужно нам.
    А чтобы писать драйверы под каждую видеокарту,нужно много таких DLL-ок взломать.
  • накой это надо?
    Портировать 3д игры? Чтобы все забыли про виндовс и пошли на Колибри? До этого ещё как до китая раком,да ещё такими темпами.
    Надо ядро сначала до ума довести,какие то средства сделать,которые эту доводку сделают лёгкой и приятной (длл я думаю к таким можно отнести :) ). А к тому времени когда будет реальна возможность портирования всяких игр я думаю и драйвера сменятся не раз. Конечно можешь заняться этим,чтоб получить опыт в портировании дров :) . Когда нибудь может и пригодиться реально
  • Victor,вот и я о том же.
    Просто,если сейчас не предусмотреть динамическую загрузку драйверов,то потом может быть уже поздно.Не будем же мы в ядро набивать драйвера,которые больше его самого в десятки раз.
  • Who is online

    Users browsing this forum: No registered users and 1 guest