Ответы:
Если вы имеете в виду изучение Linux как изучение исходного кода, вы можете попробовать Linux с нуля.
Если вы хотите научиться, Gentoo - хороший вариант - минимальная установка Gentoo - это корневая оболочка и менеджер пакетов, и вы собираете оттуда остальную часть своей системы. Gentoo также находится довольно близко к апстрим-пакетам, поэтому вы не столкнетесь с большим количеством проблем, если захотите загрузить и собрать некоторые пакеты самостоятельно (и фактически вы можете добавить их в файл /etc/portage/package.provided после того, как они установлены, и используйте их как зависимости!)
Если вы ищете абсолютно наименьшую возможную систему Linux, то создайте свое собственное ядро, выделив все драйверы и функции, которые вы не планируете использовать, а затем добавьте initramfs, содержащий аналогично свернутую сборку Busybox. В результате получается полностью загружаемая система Linux в одном исполняемом файле (на которую вы можете указать свой загрузчик), и в которую вы можете уместить менее 10 МБ, даже не пытаясь.
Archlinux использует базовую группу файлов для минимальной установки.
Вместе с группой базового уровня , если вы собираетесь заниматься разработкой системы.
Если вы действительно хотите просто минимум системы Linux, вы можете попробовать дистрибутивы для встроенных систем, таких как маршрутизаторы. Обычно они несут только абсолютный минимум программного обеспечения, а общее отсутствие графического интерфейса пользователя заставляет вас ознакомиться с командной строкой. Один недостаток состоит в том, что эти системы часто нарушают соглашения обычных дистрибутивов Linux, например, они устанавливают программное обеспечение в необычных местах или используют упрощенные системы инициализации.
Если вы хотите попробовать, попробуйте, например, openwrt на виртуальной машине .
Один исполняемый файл rootfs
Система абсолютного минимума запускает одну /init
программу, как я объяснил в Single Application Linux | Супер пользователь
Минимальный Linux Live
https://github.com/ivandavidov/minimal
Для более интересной интерактивной системы это небольшой (в основном образовательный) скрипт, который:
Затем ISO оставляет вас в минимальной оболочке с busybox.
С 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?
Профессиональная боевая техника, используемая некоторыми крупными предприятиями.
Alpine Linux
https://github.com/gliderlabs/docker-alpine
Встроенный дистрибутив с менеджером пакетов, который предлагает предварительно скомпилированные двоичные файлы с веб-сайта.
Смотрите также
Как так получилось, что никто не упомянул tomsrtbt ? (Linux на одной 1.44 "дискете)
Вы можете попробовать Slackware Linux. Установка через меню позволит вам установить довольно минимальную систему. Вы можете легко оставить страницы справочника, X11, Tcl, Emacs, и это только с самого верхнего уровня установки. Вы можете погрузиться в установку и установить только минимум пакетов.
После этого я перекомпилирую ядро специально для машины, на которой вы установили.
Slackware по-прежнему по умолчанию использует менеджер загрузки Lilo, так что в итоге вы знаете немного больше, чем хотите знать о загрузочных секторах, какой раздел помечен как загрузочный, что содержит ваш initrd и т. Д., Чем дистрибутивы с загрузкой Grub.
Для меня Damn Small Linux получил название «самый маленький дистрибутив Linux»! Однако я слышал, что это отчасти прекращено. Вы также можете увидеть список подобных дистрибутивов (называемых «Mini Linux») на этой вики-странице .
Если пространство не ваша цель, я предложу Gentoo или Arch Linux , они оба устанавливают базовую систему. Вы выбираете, что использовать, и устанавливаете пакеты по мере роста ваших потребностей.
Что вам нужно сделать, это загрузить последнее ядро с сайта kernel.org, сделать make menuconfig
и просто просмотреть варианты и использовать их в качестве отправной точки для исследований и расследований. Вы многому научитесь.
Вы можете посмотреть на Puppy Linux . Возможно, он не самый маленький, но имеет репутацию маленького.
Однако дистрибутивы Linux, которые должны быть небольшими, обычно остаются небольшими. Для изучения linux я бы где-то был живым Debian. Я бы получил исходники ядра Debian, исходники bash и исходники grub для кросс-компиляции и установки. Затем выполните кросс-компиляцию, установите редактор, apt и gcc. Затем сгенерируйте список пакетов из Debian Live. Установите исходный код для каждого пакета, скомпилируйте и установите. Затем добавьте X, затем Wm по вашему выбору, тогда у вас есть основа для того, что вы хотите сделать.
PS: apt-get source получает исходный текст для пакета debian.