TCCBOOT проект является загрузчик в состоянии собрать и загрузить ядро Linux с непосредственно из исходного кода.
TCCBOOT только 138 Кб большой (несжатый код), и это может скомпилировать и запустить типичный ядро Linux менее чем за 15 секунд на 2.4 ГГц Pentium 4.
TCCBOOT основан на TinyCC компилятора, ассемблера и компоновщика. TinyCC эксперимент, чтобы произвести очень маленький и простой компилятор C совместимый с компилятором GNU C и бинарными утилитами.
TCCBOOT сапоги так же, как ядра Linux в, так что любой загрузчик, который сможет запускать '' bzImage Linux ядра изображение может работать TCCBOOT. Я только проверил его с ISOLINUX, но, компилятор должен работать тоже.
TCCBOOT читает Си или ассемблере источники из упакованных в архив ROMFS файловой системы хранится в начального RAM-диска (INITRD). Сначала читает файл 'загрузки / tccargs', который содержит командную строку TinyCC (тот же синтаксис, как TCC исполняемый файл). TinyCC вызов выведите одно бинарное изображение "ядра". Это изображение загружается по адресу 0x00100000. TCCBOOT то делает прыжок на адрес 0x00100000 в 32-битной плоской режиме. Это совместимо с ABI о '' vmlinux образа ядра.
Компиляция:
TCCBOOT был протестирован только с Linux 2.4.26. Для того, чтобы построить TCCBOOT, вы должны сначала собрать ядро 2.4.26, так как для простоты TCCBOOT использует некоторые бинарные файлы и заголовки ядра Linux. TCCBOOT также нуждается в исходный код TinyCC (проверено с TinyCC версии 0.9.21). Вы можете изменить Makefile, чтобы дать необходимые пути.
Пример:
Термин "Hello World" ROMFS раздел включен (initrd.img). Вы можете восстановить его из примера каталоге /. Вы можете проверить это с PC эмулятор QEMU с «QEMU-tccboot" сценария.
Компиляция ядра:
Для вашей информации, патч "Linux-2.4.26-tcc.patch" дает необходимые изменения, чтобы построить ядро Linux с TCCBOOT (ПРИМЕЧАНИЕ: Не suffisant построить ядро с make-файлов собственного - я никогда не пробовал). Соответствующий конфигурации ядра находится в файле Linux-2.4.26-конфигурации. Патчи необходимо по следующим причинам:
- Сплошные инструкции по монтажу: .rept, .endr, .subsection
- "#define __ASSEMBLY__" Необходимо в источниках монтажных
- Статические переменные не могут быть видно из кода сборки встроенного
- Проблемы набрав / Lvalue с? : '
- Не долго длинные битовые поля
- "Выравнивается" атрибут не поддерживается для целых структур, только для полей
- Obscur препроцессор ошибка
Некоторые из этих проблем можно было бы легко исправить, но я слишком ленив, в настоящее время. Он уверен, что есть еще много ошибок в ядре, порожденной TinyCC / TCCBOOT, но по крайней мере он может загрузиться и запустить оболочку.
Детали программы:
Версия: 0.1
Дата загрузки: 3 Jun 15
Тип распространения: Условно-бесплатная
Цена: 0.00 $
Популярность: 58
Комментарии не найдены