Відповіді:
Якщо ви маєте на увазі вивчити Linux як ознайомлення з вихідним кодом, можливо, ви захочете спробувати Linux з нуля
Якщо ви хочете навчитися, Gentoo - хороший варіант - мінімальна установка Gentoo - це коренева оболонка та менеджер пакунків, і ви будуєте звідти іншу систему. Gentoo також залишається досить близько до потоку пакетів, тому у вас не виникне занадто багато проблем, якщо ви хочете завантажити і створити деякі пакунки самостійно (і насправді ви можете додати їх у файл /etc/portage/package.provided після їх встановлення та використовуйте їх як залежність!)
Якщо ви шукаєте абсолютну найменшу можливу систему Linux, тоді створіть власне ядро, позбавивши всіх драйверів і функцій, які ви не плануєте використовувати, а потім додайте initramfs, що містить аналогічно мінімізовану збірку Busybox. Результат - це повністю завантажувана система Linux в одному виконуваному файлі (на який ви можете вказати свій завантажувач), і до якого ви можете вмістити менше 10 Мб, навіть не намагаючись.
Archlinux використовує базову групу файлів для мінімальної установки.
Разом з базовою групою, якщо ви збираєтесь робити якісь розробки системи.
Якщо ви дійсно хочете просто мінімум того, що є системою Linux, ви можете спробувати дистрибутиви для вбудованих систем, таких як маршрутизатори. Зазвичай вони несуть лише абсолютний мінімум програмного забезпечення, а звичайна відсутність графічного інтерфейсу користувача змушує вас ознайомитися з командним рядком. Одним із недоліків є те, що часто ці системи порушують звичайні дистрибутиви Linux, наприклад, вони встановлюють програмне забезпечення в рідкісних місцях або використовують спрощені системи init.
Якщо ви хочете зняти це, ви можете спробувати, наприклад, openwrt у віртуальній машині .
Поодинокі виконувані корені
Абсолютна мінімальна система запускає єдину /init
програму, як я пояснив в Single Application Linux | Супер Користувач
Мінімальний Linux Live
https://github.com/ivandavidov/minimal
Для більш цікавої інтерактивної системи це (переважно навчальний) невеликий сценарій, який:
Тоді ISO залишає вас у мінімальній оболонці з busbox.
За допомогою QEMU ви можете легко завантажуватися в систему.
Я змінив його, щоб дозволити запускати його з каталогу джерела ядра: https://github.com/cirosantilli/runlinux
Використання:
git clone https://github.com/ivandavidov/minimal
cd minimal/src
./build_minimal_linux_live.sh
# Wait.
# Install QEMU.
# minimal_linux_live.iso was generated
./qemu64.sh
і ви залишитеся у вікні QEMU з вами новою мінімальною системою. Дивовижно.
Оскільки він невеликий, це хороший варіант, щоб прочитати джерело і зрозуміти, що відбувається.
Тестовано на Ubuntu 16.04.
Buildroot
Великий набір сценаріїв Makefile, які керують:
Мінімальний приклад:
git clone git://git.buildroot.net/buildroot
cd buildroot
git checkout 2016.05
make qemu_x86_defconfig
# Can't use -jN, use `BR2_JLEVEL=2` instead.
BR2_JLEVEL=2 make
# Wait.
# cat board/qemu/x86_64/readme.txt
qemu-system-x86_64 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -append root=/dev/vda -net nic,model=virtio -net user
# You are now in a shell with BusyBox utilities.
У ньому навіть є рецепти побудови X11 з нуля: Як встановити X11 в моїй власній системі Linux Buildroot?
Професійні бойові випробування використовували деякі великі підприємства.
Альпійський Linux
https://github.com/gliderlabs/docker-alpine
Вбудований дистрибутив за допомогою менеджера пакунків, який пропонує попередньо складені бінарні файли з веб-сайту.
Дивись також
Як так, що ніхто не згадав про tomsrtbt ? (Linux на одиночній дискеті 1,44 ")
Ви можете спробувати Slackware linux. Інсталяція, керована меню, дозволить вам встановити цілком мінімальну систему. Ви можете легко залишити підручні сторінки, X11, Tcl, Emacs, і це лише з самого встановлення верхнього рівня. Ви можете зануритися в інсталяцію та встановити лише мінімум пакетів.
Після цього я би перекомпілював ядро спеціально для машини, на яку встановлено.
Slackware все ще за замовчуванням диспетчеру завантаження Lilo, тому ви дізнаєтесь трохи більше, ніж ви хочете знати про завантажувальні сектори, який розділ позначений завантажувальним, що містить ваш initrd тощо тощо, ніж для дистрибутивів, завантажених Grub.
Для мене, Чорт Малий Linux отримав назву "найменшого можливого дистрибутива Linux"! Однак я чув, що це якось припинено. На цій вікі-сторінці ви також можете побачити список подібних дистрибутивів (званий "Mini Linux") .
Якщо простір не є вашою метою, я пропоную Gentoo або Arch Linux , вони обидва встановлять базову систему. Ви вибираєте, що використовувати та встановлювати пакунки у міру зростання потреб.
Що потрібно зробити, це завантажити останнє ядро з kernel.org, зробити make menuconfig
і просто переглянути параметри і використовувати це як вихідну точку для дослідження та дослідження. Ви багато чого навчитесь
Ви можете подивитися на Puppy Linux . Це може бути не найменше, але воно має невелику репутацію.
Однак дистрибутиви Linux, які мають бути невеликими, як правило, залишаються невеликими. Для вивчення Linux я б десь жив дебіан. . Я отримав би джерела ядра debian, джерела bash та джерела grub, перехресні компіляцію та встановлення. Потім крос-компіляція встановить редактор, apt та gcc. Потім генеруйте список пакунків з живої програми debian. Встановіть джерело для кожного пакету, компілюйте та встановіть. Потім додайте X та Wm на свій вибір, тоді у вас є основа для того, що ви хочете зробити.
PS: джерело apt-get отримує джерело для пакета debian.