Поддержка Эльфов:ELF
Posted: Thu Aug 18, 2022 7:58 am
В данном разделе планируется собирать информацию по поддержке формата ELF в Kolibry OS.
Для тех, кто не в курсе, ссылка на wiki: https://ru.wikipedia.org/wiki/Executab ... ble_Format
Более конкретно (i686):http://www.sco.com/developers/devspecs/abi386-4.pdf
Edit1:
Описание с полезными ссылками на OsDev: https://wiki.osdev.org/ELF
Поддерржка ELF на настоящий момент:
FASM позволяет создавать объектные (и не только) файлы в формате ELF.
Tcc (https://bellard.org/tcc/tcc-doc.html) позволяет создавать и использовать файлы в формате ELF (если при портировании эти функции не "убиты").
Идеи оригинальных программ:
(O1) cElf (по аналогии с CObj, только для файлов в формате ELF, создаваемыми программами Kolibry OS)
Минимум: список экспортируемых и импортируемых символов.
Edit2: Имеется версия 0.2: бета релиз C-варианта программы (Valery)
(O2) elfload.obj
Библиотека, содержащая функцию unsigned loadelf(const char *path, void *where_to_load, putsym_t ps). Которая позволяет загружать ELF файл, не содержащий внешних зависимостей, по адресу where_to_load, заполняя таблицу символов посредством ps(const void *adr, const char *name).
Edit1:
(O3) elf2spe переводящее подходящий объектный ELF-файл в формат SPE (насколько понимаю - почти что оригинальный для Kolibry OS)
(O4) elf2coff переводящее подходящий для библиотеки Kolibry OS объектный ELF-файл в формат COFF.
P.S.
Портировать objdump и objcopy будет "слишком жирно" ...
Для тех, кто не в курсе, ссылка на wiki: https://ru.wikipedia.org/wiki/Executab ... ble_Format
Более конкретно (i686):http://www.sco.com/developers/devspecs/abi386-4.pdf
Edit1:
Описание с полезными ссылками на OsDev: https://wiki.osdev.org/ELF
Поддерржка ELF на настоящий момент:
FASM позволяет создавать объектные (и не только) файлы в формате ELF.
Tcc (https://bellard.org/tcc/tcc-doc.html) позволяет создавать и использовать файлы в формате ELF (если при портировании эти функции не "убиты").
Идеи оригинальных программ:
(O1) cElf (по аналогии с CObj, только для файлов в формате ELF, создаваемыми программами Kolibry OS)
Минимум: список экспортируемых и импортируемых символов.
Edit2: Имеется версия 0.2: бета релиз C-варианта программы (Valery)
(O2) elfload.obj
Библиотека, содержащая функцию unsigned loadelf(const char *path, void *where_to_load, putsym_t ps). Которая позволяет загружать ELF файл, не содержащий внешних зависимостей, по адресу where_to_load, заполняя таблицу символов посредством ps(const void *adr, const char *name).
Edit1:
(O3) elf2spe переводящее подходящий объектный ELF-файл в формат SPE (насколько понимаю - почти что оригинальный для Kolibry OS)
(O4) elf2coff переводящее подходящий для библиотеки Kolibry OS объектный ELF-файл в формат COFF.
P.S.
Портировать objdump и objcopy будет "слишком жирно" ...