Я хочу создать действительно маленький дистрибутив Linux, который будет использовать busybox, возможно, uClibc. В начале только ramfs сделали бы. Плюс, я не против того, чтобы у меня не было родного набора инструментов. Я прошел через «Linux с нуля»; но, видимо, он предназначен для полноценного дистрибутива. Можете ли вы дать мне совет по этому вопросу?
5 ответов
Я не могу сказать вам, что является наименьшим возможным, но Tiny Core Linux - самый маленький из тех, о которых я когда-либо слышал. Им удается сжать графическую систему в 12 МБ, а текстовую систему - в 8 МБ.
На самом деле нет никаких ограничений на размер дистрибутива, кроме той функциональности, которая вам нужна в этом дистрибутиве.
Я рекомендую заглянуть на linuxfromscratch.org, если вы заинтересованы в создании нового дистрибутива.
Не уверен, что это "минимально возможная" минимальная конфигурация, но вы можете начать с initramfs (см. Также документацию ядра), содержащего всего несколько файлов.
Это заправляет образ виртуального диска в собственное ядро vmlinux
перед сжатием всей партии, так что при загрузке он автоматически извлекается и распаковывается. Ядро запускается с использованием этого образа памяти в качестве корневой файловой системы и ищет там исполняемый файл с именем init
. Который может быть любым двоичным файлом, включая busybox
.
На самом деле, использование статически связанного busybox в качестве init
внутри initramfs не является необычным шагом при запуске встроенного устройства - переход к приглашению оболочки только после загрузки ядра подтверждает, что ядро загружается, интерфейс ядра / пользовательского пространства и консоль работают.
На этом этапе нет необходимости в каком-либо фактическом устройстве хранения данных, функциональной корневой файловой системе и тому подобном. Если ваше устройство используется в режиме киоска (нет данных, сохраняемых при перезагрузке), это на самом деле все, что вам нужно.
Knoppix меньше, чем Tinycore. А для Акиры, который считает, что мое доказательство имеет больше смысла, попробуйте различить методы start_kernel() между двумя, и вы сами поймете, насколько проще Knoppix.
Вот, пожалуйста, http://alpinelinux.org/ musl libc + busybox.
Это дистрибутив, который подходит под 8 МБ (хотя его можно немного уменьшить)
Он основан на musl-libc и busybox.