Я пытаюсь провести несколько экспериментов с Linux и найти самый маленький дистрибутив по размеру установки. (RAM, CPU на самом деле не имеет значения)
Я пытаюсь провести несколько экспериментов с Linux и найти самый маленький дистрибутив по размеру установки. (RAM, CPU на самом деле не имеет значения)
Ответы:
Обновление: ttylinux на данный момент не поддерживается! Если вы все еще заинтересованы, начните здесь или здесь .
В зависимости от вашей платформы, ttylinux может быть чем-то для вас:
Эта наименьшая система ttylinux имеет файловую систему 8 МБ и работает на компьютерах i486 в пределах 28 МБ ОЗУ, но предоставляет полную среду командной строки и готова к доступу в Интернет.
Начиная с 2001 года, последняя версия выпущена в 2015-03-05, поэтому она все еще поддерживается.
OpenWrt также является одним из самых маленьких.
Если вы хотите пройти процесс компиляции и сократить возможности, вы можете попробовать buildroot . Я создал очень простую установку Linux (по сути, только ядро, минимальные утилиты Busybox и одно дополнительное приложение), которые вписываются в образ ISO размером 6 МБ.
Ключевым моментом здесь является сокращение конфигурации ядра и Busybox («make linux-nconfig» и «make busybox-menuconfig») до необходимого минимума, а затем включение сжатия XZ на начальном виртуальном диске ядра. Сокращение всего, в чем я не нуждался, позволило мне уменьшить весь ISO-образ примерно до 9 МБ, а после включения сжатия XZ - до 6 МБ.
Что касается ядра, я просто проверил каждую опцию в меню конфигурации и отключил ее, если она мне конкретно не нужна. Вы можете отключить все сетевые драйверы, для которых у вас нет соответствующего сетевого адаптера, отключить другое, менее распространенное оборудование, которое вы не планируете использовать (многопортовые последовательные карты, джойстики, многофункциональные устройства ...) и т. Д. на. Вы также можете оставить многие подсистемы в базовых реализациях, а не в более сложных (например, базовые состояния простоя ЦП ACPI, а не состояния простоя ЦП Intel / AMD), что может означать, что вы будете экономить на энергопотреблении и полной аппаратной поддержке размера ядра. Вы также можете отключить целые подсистемы, такие как гибернация / поддержка сна и звуковая система, если вам не нужно их использовать.
Вы можете сэкономить много места, делая это. Например, модули поддержки KVM (виртуализация) и btrfs (которые я решил разместить вне ядра в качестве загружаемых модулей на тот случай, если они понадобятся мне в будущем) сами по себе занимают 1,1 МБ. Удалив эти файлы модулей, вы можете получить около 4,9 МБ. Возможно, они занимают меньше места, встроенного в двоичный файл ядра, но потом я увидел, что другие, более мелкие модули имеют размер 20-100 килобайт, поэтому ваш пробег может варьироваться.
Busybox - это отдельный двоичный файл, который ведет себя как разные двоичные файлы в зависимости от того, как он вызывается из командной строки, что позволяет сэкономить место. Он включен в Buildroot по умолчанию. Он может вести себя как ls, df, dd, cat, nc, bash и многие другие. Это похоже на хорошую замену почти всей пользовательской среды * nix, если только вам не нужны какие-то особые расширения утилит, которые вы можете найти только в более полнофункциональных / традиционных (например, GNU, BSD) версиях этих утилит. Busybox аналогичен ядру с точки зрения отключения функций - отключите все, кроме бинарных файлов (AKA-апплетов), которые вам нужны, и размер будет уменьшен. Динамически скомпилированный двоичный файл Busybox занимает 512 килобайт в Buildroot и около 2,1 МБ в Ubuntu 14.10. Большая версия Ubuntu поддерживает намного больше, чем моя версия Buildroot, и
Вы можете попробовать кое-что из нижеприведенного, чтобы еще больше уменьшить размер, но часто делайте резервные копии рабочего каталога, так как вы можете нарушить установку Buildroot, над которой вы работаете, и, возможно, придется пересобрать некоторые из двоичных файлов.
Сжатие всех исполняемых файлов (включая ядро) с помощью компрессора UPX. Поскольку UPX специально разработан для выполнения исполняемого сжатия, это делает получаемые исполняемые файлы намного меньше. Но, пожалуйста, убедитесь, что вы тестируете все исполняемые файлы впоследствии и что они работают правильно.
Используйте другой libc. Я использую uClibc, но я слышал, что musl и dietlib намного меньше и производят меньшие исполняемые файлы. На этот раз у меня были проблемы со сборкой, но это может работать лучше.
Замените некоторые или все пользовательские утилиты asmutils . Эти утилиты реализуют некоторые обычные * nix утилиты на чистом ассемблере (а не на языке Си или других языках), что теоретически допускает гораздо более компактный код. Некоторые из них работают хорошо, но некоторые могут использоваться только очень простыми способами (например, «mount» принимает параметры только в определенной последовательности, и никакие опции монтирования для FS не реализованы). С другой стороны, они очень маленькие (большинство скомпилировано менее 1 КБ, а маленькие - около 139 байт или около того). Вы можете выбрать, какие из них вы хотите использовать, поэтому вы можете использовать эти замены только для тех команд, на которых вы хотите сэкономить место и оставить больше многофункциональных версий в качестве апплетов Busybox.
Tomsrtbt - это пара мегабайт; он помещается на дискету.