OSDev http://osdev.su/ |
|
Coffe Link http://osdev.su/viewtopic.php?f=6&t=414 |
Страница 1 из 1 |
Автор: | JSON [ 13 май 2011, 16:56 ] |
Заголовок сообщения: | Coffe Link |
Недавно закончил разработку бинарного линкера Coffe Link. Начал писать, когда искал полноценный линкер для obj файлов. Нашел любительский binlink.exe русского разработчика Антона Старостина на его сайте. Все было хорошо пока не начались проблемы с линковкой функций, которые идут по 10-15 штук подряд. Он вис, либо не хотел обрабатывать файлы. Вот тогда решил закончить свой проект, и вплотную засел за свою реализацию. В итоге те места, где были проблемы, мой линкер кушал спокойно. Считаю, что я сделал линкер лучше. Вообщем... "Coffe Link" 1.0. Coffe - от аббревиатуры COFF.
|
Автор: | JSON [ 13 май 2011, 17:01 ] |
Заголовок сообщения: | Re: Coffe Link |
Инструкция пример: "C:\Program Files\ASM\coffelink" "Inter\kernel.obj" "Inter\descr_table.obj" "Inter\util.obj" "Inter\utils.obj" -b 2097152 -o "Bin\KERNEL.bin" , -b база в десятичных числах -o выходной файл Протестируйте пожалуйста, если будете пользоваться, на ошибки. И вышлете скрины и подробную информацию сюда. ВНИМАНИЕ! Так как это первая версия, то не рекомендуется в глобальной области создавать переменные и константы. Могут быть ошибки. Так работает: Код: #include "descr_table.h" SGDescr *g_psGD=0; unsigned short int g_wGDTPointer=0; SIDescr *g_psID=0; void GDTInit() { int i; //LGDT(0x100800, 0xFFFF); g_psGD=reinterpret_cast<SGDescr*>(0x100800); ....................................................... ........................................................ Впрочем в binlinker'е тажа ситуация. На своем линкере сам собираю ядро ОС. deposit |
Автор: | SII [ 14 май 2011, 03:02 ] |
Заголовок сообщения: | Re: Coffe Link |
А не смотрели, например, унилинк? ftp://ftp.styx.cabel.net/pub/UniLink/ulnbXXXX.zip , если не ошибаюсь, где ХХХХ -- версия. |
Автор: | JSON [ 14 май 2011, 11:35 ] |
Заголовок сообщения: | Re: Coffe Link |
Где же ты раньше был. Я повсюду искал такой линкер. Наверное я неправильно ищу. |
Автор: | phantom-84 [ 14 май 2011, 17:16 ] |
Заголовок сообщения: | Re: Coffe Link |
Потестим. Хотя у меня есть аналогичный компоновщик, но только для object ELF и генерирующий бинарники собственного формата. Было бы неплохо иметь компоновщик для генерации чистого бинарника, поддерживающий сохранение нескольких секций (с разными базовыми смещениями) разной разрядности, "виртуальные" секции, явное задание начальной и конечной секций (а еще лучше порядка следования секций), приведение размера конечного файла к определенной кратности, приведение содержимого файла к определенной контрольной сумме, генерацию констант с размером конечного файла, внутрифайловыми смещениями, базами и размерами всех секций. Если появится такой инструмент, я смогу собирать ядро из объектников :) |
Автор: | achesnokov [ 19 май 2011, 17:09 ] |
Заголовок сообщения: | Re: Coffe Link |
Цитата: Если появится такой инструмент, я смогу собирать ядро из объектников А из чего же вы собираете ядро сегодня? И второй вопрос. Всвязи с чем требуется разнообразие сегментов в ядре? |
Автор: | phantom-84 [ 19 май 2011, 20:47 ] |
Заголовок сообщения: | Re: Coffe Link |
Цитата: А из чего же вы собираете ядро сегодня? Непосредственно из исходников (fasm).Цитата: И второй вопрос. Всвязи с чем требуется разнообразие сегментов в ядре? Ну хотя бы в связи с тем, что одни секции у меня прикреплены к адресам базовой памяти, а другие к виртуальным адресам порядка 0x80000000 (или 0xC0000000). См. "Файл ядра".
|
Автор: | JSON [ 20 май 2011, 18:27 ] |
Заголовок сообщения: | Re: Coffe Link |
Сегодня закончил новую версию. Вообщем... "Coffe Link" 1.1 .
Теперь функция void main() - может находиться где угодно. Линкер вычисляет и вставляет jmp на эту функцию. Если "_main" отсутствует выполняется первые байты. Некоторые ошибки с глобальными переменным и константами устранены. В будущем при возникновении необходимости планирую делать линкер не хуже gcc и ulink. http://depositfiles.com/files/12y4dk947 |
Автор: | 418ImATeapot [ 25 май 2011, 13:15 ] |
Заголовок сообщения: | Re: Coffe Link |
Спасибо! Я сейчас засел за Binlink. (на Coffe перейду, когда возникнут проблемы:-) Никак не мог найти удобную комбинацию инструментов для моего баловства. Сейчас нашел, с вашей помощью. Делюсь: FASM+TinyCC+Binlink+Objconv. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |