-
- insmod - man(09.06.2011 01:40, )
- Кроме изучения исходников insmod нет описаний? Задача- сделать подгрузку модулей в OS eCos по аналогии c Linux. ++(489 знак., 09.06.2011 08:16)
- Вроде бы заработало, только всем глобальным переменным модуля остаются адреса нулевые. Что я мог сделать не так? Используется заимствованный код от insmod. - ++(09.06.2011 12:42)
- Да-да, позаимствуйте. :))) insmod - это файлик из трех значимых строчек, вся функция которого открыть файл и передать линковщику ядра для модулей! Так шта портируйте на свой ecos линковщик ядра линукса. ;) Не забудьте еще посмотреть, что AlexandrY(30 знак., 10.06.2011 09:08)
- есть таблица по которой ресолвятся экспортируемые символы, что ещё для счастья надо - elf лодеры(11.06.2011 03:36, )
- Т.е. влияют ли какие нибудь ключи компилятора gcc на то, относительно какого регистра будут адресоваться глобальные переменные? - ++(09.06.2011 13:12)
- влияют возможно. ключевое слово -fPIC, -membedded-pic и другие pic. - fk0(09.06.2011 13:21)
- Да-да, позаимствуйте. :))) insmod - это файлик из трех значимых строчек, вся функция которого открыть файл и передать линковщику ядра для модулей! Так шта портируйте на свой ecos линковщик ядра линукса. ;) Не забудьте еще посмотреть, что AlexandrY(30 знак., 10.06.2011 09:08)
- Вроде бы заработало, только всем глобальным переменным модуля остаются адреса нулевые. Что я мог сделать не так? Используется заимствованный код от insmod. - ++(09.06.2011 12:42)
- Кроме изучения исходников insmod нет описаний? Задача- сделать подгрузку модулей в OS eCos по аналогии c Linux. ++(489 знак., 09.06.2011 08:16)
- В простейшем случае ничего ось знать не должна. Сама ось компилится статически и модули компилятся вместе с ней статически. Но модули выделяются в отдельные elf файлы. Потом берутся простейшие elf лодеры и они грузят эти модули когда надо, AlexandrY(193 знак., 09.06.2011 01:26)
- Очень размытый вопрос. В CP/M, например, грузилось по абсолютному адресу, адреса функций ОС и BIOS тоже были фиксированными в конечном счёте. В общем случае если ОС это поддерживает -- там есть свой механизм вызова её функций. А библиотеки (где fk0(155 знак., 08.06.2011 23:43)
- int 21h :) - Mahagam(09.06.2011 11:54)
- CALL 0x0005 - fk0(09.06.2011 13:22)
- А ещё подумать как быть с релокациями или выкручиваться с позиционно-независимым кодом. Собственно ELF, или DLL для того и существуют. Там и релокации, и символы с их адресами. - fk0(08.06.2011 23:45)
- int 21h :) - Mahagam(09.06.2011 11:54)
- insmod - man(09.06.2011 01:40, )