Обычное стабильное 3 * ядро сейчас около 70 мб. Но есть небольшие дистрибутивы Linux размером 30-10 Мб с программным обеспечением и другими вещами из коробки.
Как ядро Linux может быть таким маленьким в этих дистрибутивах? Может ли разборка только ненужных модулей и драйверов резко уменьшить размер? Что еще делается для уменьшения размера ядра?
Ответы:
Да. Если вы удалите их (скомпилируйте / сделайте модули только теми вещами, которые вам нужны), сожмите ядро (оптимизируйте по размеру) ... это приведет к такому маленькому ядру. Вы можете сделать еще меньше, для целевой системы. Как будто я знаю свой компьютер, я знаю свои вещи. Так что я просто скомпилирую то, что мне нужно. Как и мои собственные драйверы SATA, драйвер для USB и т. Д. Ничего другого. Нет веб-камеры, нет старых дисков IDE, ничего.
Также: чем больше вы встречаете, так это ЦЕЛЫМ ядром (которое никогда не нужно использовать). Даже настольные компьютеры содержат (в большинстве случаев в виде модулей) МНОГО ненужного. Но новички ожидают, что все виды подключаемого оборудования будут работать.
(Обратите внимание, что модули не будут загружаться до тех пор, пока они не потребуются. Существует 3 состояния:
[ ]
- не будет скомпилировано, не будет частью вашего ядра.[M]
- будет скомпилировано как модуль.(Вы можете проверить его , или ваша система автоматически загрузит его, когда это необходимо.
Зависит от системы, пользовательской области.)
[X]
- Он будет скомпилирован в ядро И будет присутствовать - всегда.Distros с небольшим ядром:
источник
Ранние дистрибутивы Linux, такие как Tom's Root-Boot , MuLinux , Diet-router , (ныне несуществующий) LOAF и многие другие, уже вышедшие из эксплуатации, все устанавливали работающую систему Linux на одну или две 1,44 МБ дискеты.
Ядро Linux выросло, но не забывайте, что оно модульное, модули ядра загружаются по мере необходимости. Таким образом, все еще возможно создать дистрибутив Linux с очень маленьким размером.
Смотрите: Руководство по настройке размера ядра - eLinux.org
Если вы прочитаете Linux_tiny.pdf, вы увидите это
источник
Конфигурация ядра по умолчанию настроена для поддержки как можно большего количества оборудования. Ядро без разделителя с конфигурацией по умолчанию привело к размеру 1897996 КБ (включая ядро + модули). При удалении многих ненужных драйверов и опций (зачем мне нужен модуль HP, если у меня есть ноутбук Clevo), его размер составил 892892 кБ, что на 53% меньше по сравнению со стандартным ядром.
При установке модулей ядра добавьте эту
INSTALL_MOD_STRIP=1
опцию. Это удалит все символы отладки и уменьшит размер для меня на 92% (с 892892 кБ до 69356 кБ). Обратите внимание, что это влияет только на устанавливаемые модули, а не на само ядро (vmlinuz):Из документации / kbuild / kbuild.txt :
источник
Большинство крупных дистрибутивов конфигурируют свои ядра с максимальной аппаратной поддержкой, поэтому он будет работать из коробки с большинством компьютеров и всем, что вы подключите позже. Они также используют систему initrd, которая в большинстве случаев не нужна. В конфигурации ядра также есть параметры, которые оптимизируют процесс сборки под размер, и также можно выбрать лучший (хотя и более медленный) метод сжатия. Наконец, если вы смотрите на размер исходного кода ядра, имейте в виду, что он также включает поддержку нескольких архитектур помимо x86 / amd64, сетевых протоколов, файловых систем и других функций, которые вы, вероятно, никогда не будете использовать и которые могут быть отключенным.
источник
Это довольно просто, минимальная система просто нуждается в загрузчике + ядре, хотя это почти бесполезно. Большинство команд, используемых каждый день, являются необязательными двоичными для системы, такими как sh, ls и т. Д. Если вы интересуетесь внутренними компонентами, Linux From Scratch! это хорошая отправная точка.
источник