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