TCCBOOT проект е начално зареждане можете да компилирате и стартирате на Linux ядрото директно от изходен код.
TCCBOOT е само 138 KB голяма (некомпресиран код) и може да компилирате и стартирате типичен Linux ядрото за по-малко от 15 секунди на 2.4 GHz Pentium 4.
TCCBOOT се основава на TinyCC компилатор, асемблер и свръзката. TinyCC е експеримент, за да се получи много малък и прост компилатор съвместима с компилатора GNU C и бинарни комунални услуги.
TCCBOOT ботуши по същия начин като на Linux ядрото, така че всяко зареждане на ОС, която може да работи на Linux ядрото изображение "bzImage" може да работи TCCBOOT. Аз само го тествали с ISOLINUX, но LILO или GRUB трябва да работи също.
TCCBOOT чете C или монтаж източници от gzipped ROMFS файлова система съхранява в Initial Ram Disk (initrd). Той първо чете файла "обувка / tccargs", който съдържа командния ред TinyCC (същия синтаксис като TCC изпълнимия). The TinyCC позоваването трябва да изведе един бинарен имидж "ядрото". Това изображение е зареден с адрес 0x00100000. След TCCBOOT прави скок към адрес 0x00100000 в 32-битов режим плосък. Това е съвместима с ABI на "vmlinux" образа на ядрото.
Компилация:
TCCBOOT е тествана само с Linux 2.4.26. За да се изгради TCCBOOT, първо трябва да компилирате ядрото 4.2.26, защото за простота TCCBOOT използва някои бинарни файлове и хедъри от Linux ядрото. TCCBOOT също се нуждае от изходния код на TinyCC (тестван с TinyCC версия 0.9.21). Можете да променяте Makefile да даде необходимите пътеки.
Пример:
An "Hello World" ROMFS дял е включена (initrd.img). Можете да го възстанови от пример / директория. Можете да го тествате с PC емулатор QEMU със сценария "QEMU-tccboot".
Компилация Kernel:
За ваша информация, като кръпката "Linux-04.02.26-tcc.patch" дава необходимите промени, за да се изгради Linux ядрото с TCCBOOT (ЗАБЕЛЕЖКА: не се suffisant за изграждане на ядрото със собствен Makefile-ове - Аз никога не се опита). Съответният конфигурацията на ядрото е в файл Linux-4.2.26-довереник. Пластирите са необходими поради следните причини:
- Неподдържани директиви асамблея: .rept, .endr, .subsection
- "#define __ASSEMBLY__" Необходима в източници за сглобяване
- Статични променливи не могат да бъдат видяни от сглобяване кода за инлайн
- Пишете / lvalue проблеми с "? : "
- без сериозни дълги битови полета
- "Съответствие" не атрибут поддържа за целия structs, само за полета
- Obscur Препроцесор бъг
Някои от тези проблеми могат лесно да бъдат фиксирани, но аз съм твърде мързеливи, за сега. Той е сигурен, че все още има много бъгове в ядрото, генериран от TinyCC / TCCBOOT, но поне може да се стартира и ще започне една черупка.
Софтуер детайли:
Версия: 0.1
Дата на качване: 3 Jun 15
Разрешително: Shareware
Цена: 0.00 $
Популярност: 58
Коментари не е намерена