Какова наименьшая возможная реализация Linux? [закрыто]


21

Какие минимальные компоненты для операционной системы Linux должны быть функциональными, и что я могу использовать в качестве основы для расширения и совершенствования по мере изучения Linux и роста моего понимания и потребностей?

Ответы:



9

Если вы хотите научиться, Gentoo - хороший вариант - минимальная установка Gentoo - это корневая оболочка и менеджер пакетов, и вы собираете оттуда остальную часть своей системы. Gentoo также находится довольно близко к апстрим-пакетам, поэтому вы не столкнетесь с большим количеством проблем, если захотите загрузить и собрать некоторые пакеты самостоятельно (и фактически вы можете добавить их в файл /etc/portage/package.provided после того, как они установлены, и используйте их как зависимости!)

Если вы ищете абсолютно наименьшую возможную систему Linux, то создайте свое собственное ядро, выделив все драйверы и функции, которые вы не планируете использовать, а затем добавьте initramfs, содержащий аналогично свернутую сборку Busybox. В результате получается полностью загружаемая система Linux в одном исполняемом файле (на которую вы можете указать свой загрузчик), и в которую вы можете уместить менее 10 МБ, даже не пытаясь.


Ваш последний пункт - я думаю, что это было бы хорошим началом. Тогда я узнаю, что там и почему, используя его как основу для роста.
Слэшмаис

10MB? Вероятно, вы могли бы сделать это под 1
МБ

8

Archlinux использует базовую группу файлов для минимальной установки.

Вместе с группой базового уровня , если вы собираетесь заниматься разработкой системы.


3
В правильном направлении, все еще включает в себя множество пакетов, но я могу использовать то, что они дают и вырезать пакеты, пока все не сломается.
Слэшмаис

Установка Arch стала намного более модульной, чем в 2010 году - если говорить из памяти / без ускорения новой установки, утилита 'pacstrap' дает вам возможность выбирать группы для использования, включая просто 'base' или, возможно, вообще ничего (хотя Я думаю, что база содержит материал системы). Если вы хотите сделать еще один шаг вперед, но у вас есть хотя бы расплывчато распространенный дистрибутив, вероятно, именно Slackware.
DJVS

Установка Arch намного менее модульна, чем раньше, поскольку они официально поддерживают только am64 arch, systemd-only для init и т. Д. Однако я бы тоже порекомендовал Slackware.
Лукас Рэймидж

8

Если вы действительно хотите просто минимум системы Linux, вы можете попробовать дистрибутивы для встроенных систем, таких как маршрутизаторы. Обычно они несут только абсолютный минимум программного обеспечения, а общее отсутствие графического интерфейса пользователя заставляет вас ознакомиться с командной строкой. Один недостаток состоит в том, что эти системы часто нарушают соглашения обычных дистрибутивов Linux, например, они устанавливают программное обеспечение в необычных местах или используют упрощенные системы инициализации.

Если вы хотите попробовать, попробуйте, например, openwrt на виртуальной машине .


Я могу использовать OpenWrt для справки; Я буду рад, если вы можете указать на другие подобные сайты. Уже использую VirtualBox, и у них есть руководство по установке OpenWrt.
Слэшмаис

Возможно встроенный Debian: emdebian.org
fschmitt


8

Один исполняемый файл rootfs

Система абсолютного минимума запускает одну /initпрограмму, как я объяснил в Single Application Linux | Супер пользователь

Минимальный Linux Live

https://github.com/ivandavidov/minimal

Для более интересной интерактивной системы это небольшой (в основном образовательный) скрипт, который:

  • скачивает исходники для ядра и busybox
  • компилирует их
  • генерирует с ними загрузочный 8Mb ISO

Затем 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

https://buildroot.org/

Большой набор скриптов Makefile, которые управляют:

  • GCC кросс-компиляция
  • сборка ядра
  • компилятор загрузчика
  • генерация rootfs
  • имеет множество рецептов загрузки / сборки пакетов в дереве исходников, включая сложные вещи, такие как GTK. Есть система зависимости.

Минимальный пример:

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

Встроенный дистрибутив с менеджером пакетов, который предлагает предварительно скомпилированные двоичные файлы с веб-сайта.

Смотрите также


1
В конце концов я пошел по маршруту LFS. Сделал заметку об этом и скоро ее исследую
slashmais

6

Как так получилось, что никто не упомянул tomsrtbt ? (Linux на одной 1.44 "дискете)


звучит про право - ссылки?
Слэшмаис

не волнуйся - нашел это
slashmais

4
У кого все еще есть дисковод гибких дисков в эти дни? ;)
p-static

1
Я смотрю на один прямо сейчас. Но я использовал его только один раз за те годы, когда у меня был компьютер.
Lamcro

3
@ p-static: я использую старую коробку в качестве сервера печати - у нее все еще есть 8 1/4-дюймовый дисковод гибких дисков, и я только что проверил ее с 20-летними дискетами - удивительно, что дискеты все еще в порядке! с неточными данными на них тоже (Turbo Pascal v3 код из студенческих дней).
Слэшмаис

4

Вы можете попробовать Slackware Linux. Установка через меню позволит вам установить довольно минимальную систему. Вы можете легко оставить страницы справочника, X11, Tcl, Emacs, и это только с самого верхнего уровня установки. Вы можете погрузиться в установку и установить только минимум пакетов.

После этого я перекомпилирую ядро ​​специально для машины, на которой вы установили.

Slackware по-прежнему по умолчанию использует менеджер загрузки Lilo, так что в итоге вы знаете немного больше, чем хотите знать о загрузочных секторах, какой раздел помечен как загрузочный, что содержит ваш initrd и т. Д., Чем дистрибутивы с загрузкой Grub.


3

Для меня Damn Small Linux получил название «самый маленький дистрибутив Linux»! Однако я слышал, что это отчасти прекращено. Вы также можете увидеть список подобных дистрибутивов (называемых «Mini Linux») на этой вики-странице .

Если пространство не ваша цель, я предложу Gentoo или Arch Linux , они оба устанавливают базовую систему. Вы выбираете, что использовать, и устанавливаете пакеты по мере роста ваших потребностей.


Не космос - учим Linux. Я рассмотрел большинство из них, а также LFS, но LFS заставляет вас делать / добавлять вещи, кажется, недостаточно объяснений.
Слэшмаис

3
Если вы хотите учиться, Archlinux действительно хорош. Arch Wiki имеет МНОГО четкой, ПОЛЕЗНЫЕ информации.
Стефан

похоже, что я сместил цель после того, как ты выстрелил, извини: o
slashmais

2

Что вам нужно сделать, это загрузить последнее ядро ​​с сайта kernel.org, сделать make menuconfigи просто просмотреть варианты и использовать их в качестве отправной точки для исследований и расследований. Вы многому научитесь.


«Время - мой враг». - не совсем, но я обязательно рассмотрю ваше предложение.
Слэшмайс

0

Вы можете посмотреть на Puppy Linux . Возможно, он не самый маленький, но имеет репутацию маленького.

Однако дистрибутивы Linux, которые должны быть небольшими, обычно остаются небольшими. Для изучения linux я бы где-то был живым Debian. Я бы получил исходники ядра Debian, исходники bash и исходники grub для кросс-компиляции и установки. Затем выполните кросс-компиляцию, установите редактор, apt и gcc. Затем сгенерируйте список пакетов из Debian Live. Установите исходный код для каждого пакета, скомпилируйте и установите. Затем добавьте X, затем Wm по вашему выбору, тогда у вас есть основа для того, что вы хотите сделать.

PS: apt-get source получает исходный текст для пакета debian.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.