Яка найменша реалізація Linux? [зачинено]


21

Які мінімальні компоненти, щоб ОС Linux була функціональною, і що я можу використовувати в якості основи для розширення та вдосконалення, коли я вивчаю Linux та зростаюче розуміння та потреби?

Відповіді:


26

Якщо ви маєте на увазі вивчити Linux як ознайомлення з вихідним кодом, можливо, ви захочете спробувати Linux з нуля



9

Якщо ви хочете навчитися, Gentoo - хороший варіант - мінімальна установка Gentoo - це коренева оболонка та менеджер пакунків, і ви будуєте звідти іншу систему. Gentoo також залишається досить близько до потоку пакетів, тому у вас не виникне занадто багато проблем, якщо ви хочете завантажити і створити деякі пакунки самостійно (і насправді ви можете додати їх у файл /etc/portage/package.provided після їх встановлення та використовуйте їх як залежність!)

Якщо ви шукаєте абсолютну найменшу можливу систему Linux, тоді створіть власне ядро, позбавивши всіх драйверів і функцій, які ви не плануєте використовувати, а потім додайте initramfs, що містить аналогічно мінімізовану збірку Busybox. Результат - це повністю завантажувана система Linux в одному виконуваному файлі (на який ви можете вказати свій завантажувач), і до якого ви можете вмістити менше 10 Мб, навіть не намагаючись.


Ваш останній пункт - я думаю, це було б хорошим місцем для початку. Тоді я буду знати, що там і чому воно є, використовуючи це як основу для зростання.
slashmais

10 Мб? Можливо, ви могли це зробити під 1 МБ
Falmarri

8

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

Разом з базовою групою, якщо ви збираєтесь робити якісь розробки системи.


3
У правильному напрямку все ще входить багато пакетів, але я можу використовувати те, що вони дають та вирізати, поки речі не зламаються.
slashmais

Встановлення арки стало набагато більш модульним, ніж у 2010 році. Якщо говорити з пам'яті / не закручуючи свіжу установку, утиліта "pacstrap" дає вам можливість використовувати групи, включаючи просто "базу" або, можливо, навіть нічого взагалі (хоча Я думаю, що база містить системні речі). Якщо ви хочете піти на крок глибше, але все ще маєте хоча б невиразно поширений дистрибутив, Slackware - це, мабуть, один.
djvs

Встановлення Arch набагато менш модульне, ніж раніше, оскільки вони офіційно підтримують лише арку am64, тільки для системи init і т. Д. Однак я теж рекомендую Slackware.
Лукас Рамаж

8

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

Якщо ви хочете зняти це, ви можете спробувати, наприклад, openwrt у віртуальній машині .


Я можу використовувати OpenWrt для довідки; Я буду радий, якщо ви можете вказати на інші подібні сайти. Вже використовуючи VirtualBox, вони мають посібник, що встановлює OpenWrt.
slashmais

Можливо, вбудований Debian: emdebian.org
fschmitt


8

Поодинокі виконувані корені

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

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

https://github.com/ivandavidov/minimal

Для більш цікавої інтерактивної системи це (переважно навчальний) невеликий сценарій, який:

  • завантажує джерело для ядра та зайнятої скриньки
  • складає їх
  • створює завантажувальний 8Mb ISO з ними

Тоді 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

https://buildroot.org/

Великий набір сценаріїв Makefile, які керують:

  • Мережа інструментів перехресної компіляції GCC
  • компіляція ядра
  • компіляція завантажувача
  • генерація коренів
  • містить десятки рецептів завантаження / складання пакунків у вихідному дереві, включаючи складні речі, такі як 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?

Професійні бойові випробування використовували деякі великі підприємства.

Альпійський Linux

https://github.com/gliderlabs/docker-alpine

Вбудований дистрибутив за допомогою менеджера пакунків, який пропонує попередньо складені бінарні файли з веб-сайту.

Дивись також


1
Зрештою я пішов LFS маршрут.
Зазначила

6

Як так, що ніхто не згадав про tomsrtbt ? (Linux на одиночній дискеті 1,44 ")


звучить про право - посилання?
slashmais

не хвилюйтесь - знайшли
slashmais

4
У кого ще є дискета сьогодні? ;)
p-статичний

1
Я зараз дивлюсь на одного. Але я використовував його лише один раз у роки, в яких був ПК.
ламкро

3
@ p-static: я використовую стару коробку як сервер друку - у неї все ще є 8-дюймовий дискети, і я лише протестував її з 20-річними дискетами - дивно, що дискети все ще в порядку! з некорумпованими даними про них (код turbo pascal v3 зі студентських днів).
slashmais

4

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

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

Slackware все ще за замовчуванням диспетчеру завантаження Lilo, тому ви дізнаєтесь трохи більше, ніж ви хочете знати про завантажувальні сектори, який розділ позначений завантажувальним, що містить ваш initrd тощо тощо, ніж для дистрибутивів, завантажених Grub.


3

Для мене, Чорт Малий Linux отримав назву "найменшого можливого дистрибутива Linux"! Однак я чув, що це якось припинено. На цій вікі-сторінці ви також можете побачити список подібних дистрибутивів (званий "Mini Linux") .

Якщо простір не є вашою метою, я пропоную Gentoo або Arch Linux , вони обидва встановлять базову систему. Ви вибираєте, що використовувати та встановлювати пакунки у міру зростання потреб.


Не місце - Linux. Я переглянув більшість із них, а також LFS, але LFS змушує вас робити / додавати речі, але, здається, недостатньо пояснень.
slashmais

3
Якщо ви хочете навчитися, Archlinux - це справді добре. Arch Wiki має БАГАТО чіткої, КОРИСНІ інформації.
Стефан

здається, що я перемістив ціль після того, як ви прострілили, пробачте: o
slashmais

2

Що потрібно зробити, це завантажити останнє ядро ​​з kernel.org, зробити make menuconfigі просто переглянути параметри і використовувати це як вихідну точку для дослідження та дослідження. Ви багато чого навчитесь


"Час - мій ворог". - Не дуже, але я обов'язково буду вивчати вашу пропозицію.
slashmais

0

Ви можете подивитися на Puppy Linux . Це може бути не найменше, але воно має невелику репутацію.

Однак дистрибутиви Linux, які мають бути невеликими, як правило, залишаються невеликими. Для вивчення Linux я б десь жив дебіан. . Я отримав би джерела ядра debian, джерела bash та джерела grub, перехресні компіляцію та встановлення. Потім крос-компіляція встановить редактор, apt та gcc. Потім генеруйте список пакунків з живої програми debian. Встановіть джерело для кожного пакету, компілюйте та встановіть. Потім додайте X та Wm на свій вибір, тоді у вас є основа для того, що ви хочете зробити.

PS: джерело apt-get отримує джерело для пакета debian.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.