Я хочу собрать действительно небольшой дистрибутив Linux, который будет использовать busybox, возможно, uClibc. Для начала подойдет только ramfs. Плюс, я не против отсутствия собственного набора инструментов. Я прошел через «linux с нуля», но, по-видимому, он предназначен для полнофункционального дистрибутива. Можете ли вы дать мне совет по этому поводу?
решение1
Я не могу сказать вам, какой наименьший возможный размер, ноКрошечное ядро Linuxэто самое маленькое, о чем я когда-либо слышал. Они умудряются втиснуть графическую систему в 12 МБ, а текстовую — в 8 МБ.
решение2
На самом деле ограничений по размеру дистрибутива нет, за исключением функциональности, которая вам нужна.
Я рекомендую посмотретьlinuxfromscratch.orgесли вы заинтересованы в создании нового дистрибутива.
решение3
Не уверен, что такое «минимально возможная» минимальная конфигурация, но вы можете начать сinitramfs(см. такжедокументация ядра), содержащий всего несколько файлов.
Это помещает образ ramdisk в фактическое vmlinux
ядро перед сжатием всего, так что при загрузке он автоматически извлекается и распаковывается. Ядро запускается с использованием этого образа памяти в качестве корневой файловой системы и ищет там исполняемый файл с именем init
. Который может бытьлюбойдвоичный - включая busybox
.
На самом деле, использование статически связанного busybox init
внутри initramfs не является необычным шагом при запуске встроенного устройства — вызов командной строки сразу после загрузки ядра подтверждает, что ядро загружается, интерфейс ядра/пользователя и консоль работают.
На этом этапе нет необходимости в каком-либо реальном устройстве хранения, функциональной корневой файловой системе и всем таком. Если ваше устройство используется в режиме киоска (никакие данные не сохраняются при перезагрузках), это на самом деле все, что вам нужно.
решение4
Ну вот,http://alpinelinux.org/ musl libc + busybox.
Это дистрибутив, который умещается менее чем в 8 МБ (хотя его можно немного уменьшить)
Он основан на musl-libc и busybox.