Jaka jest najmniejsza możliwa implementacja Linuksa? [Zamknięte]


21

Jakie są absolutnie minimalne komponenty systemu operacyjnego Linux, które mogę wykorzystać jako bazę do rozbudowy i doskonalenia w trakcie nauki Linuksa, a moje zrozumienie i potrzeby rosną?

Odpowiedzi:



9

Jeśli chcesz się uczyć, Gentoo jest dobrą opcją - minimalna instalacja Gentoo to powłoka root i menedżer pakietów, a stamtąd budujesz resztę systemu. Gentoo jest również bardzo blisko pakietów, więc nie napotkasz zbyt wielu problemów, jeśli chcesz sam pobrać i zbudować niektóre pakiety (a tak naprawdę możesz dodać je do pliku /etc/portage/package.provided po ich zainstalowaniu i użyj ich jako zależności!)

Jeśli szukasz absolutnie najmniejszego możliwego systemu Linux, zbuduj własne jądro, usuwając wszystkie sterowniki i funkcje, których nie planujesz używać, a następnie dodaj initramfs zawierające podobnie zminimalizowaną kompilację Busybox. Rezultatem jest w pełni bootowalny system Linux w jednym pliku wykonywalnym (na który można skierować bootloader), i który można zmieścić poniżej 10 MB, nawet nie próbując.


Twój ostatni para - myślę, że to byłby dobry początek. Wtedy będę wiedział, co tam jest i dlaczego tam jest, wykorzystując to jako bazę do wzrostu.
slashmais

10 MB? Prawdopodobnie możesz to zrobić poniżej 1 MB
Falmarri

8

Archlinux używa podstawowej grupy plików do bardzo minimalnej instalacji.

Wraz z grupą zajmującą się tworzeniem bazy , jeśli zamierzasz opracowywać system.


3
W dobrym kierunku nadal zawiera wiele pakietów, ale mogę używać tego, co dają i wycinają, dopóki wszystko się nie zepsuje.
slashmais,

Arch install stał się znacznie bardziej modułowy niż w 2010 roku - mówiąc z pamięci / bez podkręcania nowej instalacji, narzędzie „pacstrap” daje ci możliwość wyboru grup, w tym po prostu „base” lub nawet w ogóle nic (chociaż Myślę, że baza zawiera rzeczy systemowe). Jeśli chcesz pójść o krok dalej, ale nadal masz co najmniej niejasno używaną dystrybucję, Slackware jest prawdopodobnie tym.
djvs

Instalacja Arch jest o wiele mniej modularna niż wcześniej, ponieważ oficjalnie obsługują arch am64, systemd-only dla init itp. Jednak ja również poleciłbym Slackware.
Lucas Ramage

8

Jeśli naprawdę chcesz tylko minimum systemu Linux, możesz wypróbować dystrybucje dla systemów wbudowanych, takich jak routery. Zwykle mają one tylko absolutne minimum oprogramowania, a powszechny brak graficznego interfejsu użytkownika zmusza do zapoznania się z linią poleceń. Wadą jest to, że często systemy te łamią konwencje zwykłych dystrybucji Linuksa, np. Instalują oprogramowanie w nietypowych miejscach lub korzystają z uproszczonych systemów inicjujących.

Jeśli chcesz spróbować, możesz spróbować np. Openwrt na maszynie wirtualnej .


Mogę użyć OpenWrt w celach informacyjnych; Będę zadowolony, jeśli możesz wskazać inne takie strony. Już używają VirtualBox i mają noddy-guide, aby zainstalować w nim OpenWrt.
slashmais,

Może osadzony Debian: emdebian.org
fschmitt


8

Pojedyncze pliki wykonywalne rootf

System absolutnie minimalny uruchamia jeden /initprogram, jak wyjaśniłem w Single Application Linux | Super użytkownik

Minimalny Linux Live

https://github.com/ivandavidov/minimal

Dla bardziej interesującego systemu interaktywnego jest to (głównie edukacyjny) mały skrypt, który:

  • pobiera źródło jądra i busybox
  • kompiluje je
  • generuje z nimi rozruchowy ISO 8Mb

ISO pozostawia Cię w minimalnej powłoce z busybox.

Dzięki QEMU możesz łatwo uruchomić system.

Zmodyfikowałem go, aby umożliwić uruchamianie go z katalogu źródłowego jądra: https://github.com/cirosantilli/runlinux

Stosowanie:

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

i pozostaniesz w oknie QEMU z nowym minimalnym systemem. Niesamowite.

Ponieważ jest mały, jest to dobra opcja, aby przeczytać źródło i zrozumieć, co się dzieje.

Testowane na Ubuntu 16.04.

Konstruktor

https://buildroot.org/

Duży zestaw skryptów Makefile, które zarządzają:

  • Zestaw narzędzi do kompilacji krzyżowej GCC
  • kompilacja jądra
  • kompilacja bootloadera
  • generowanie rootfów
  • ma mnóstwo przepisów na pobieranie / budowanie pakietów w drzewie źródłowym, w tym złożone rzeczy, takie jak GTK. Istnieje system zależności.

Minimalny przykład:

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.

Ma nawet przepisy na budowę X11 od podstaw: Jak zainstalować X11 na własnym systemie Linux Buildroot?

Profesjonalne rzeczy przetestowane w bitwie, używane przez niektóre duże przedsiębiorstwa.

Alpine Linux

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

Wbudowana dystrybucja z menedżerem pakietów, który oferuje wstępnie skompilowane pliki binarne ze strony internetowej.

Zobacz też


1
W końcu pojechałem drogą LFS.
Zanotowałem

6

Jak to możliwe, że nikt nie wspomniał o tomsrtbt ? (Linux na pojedynczej dyskietce 1.44 ")


brzmi dobrze - linki?
slashmais,

nie martw się - znalazłem
slashmais

4
Kto nadal ma dyskietkę? ;)
p-static

1
Patrzę teraz na jedną. Ale korzystałem z niego tylko raz, kiedy miałem komputer.
lamcro

3
@ p-static: Używam starego urządzenia jako serwera wydruku - nadal ma ono dyskietkę 8 1/4 cala i właśnie przetestowałem je z 20-letnimi dyskietkami - zadziwiająco dyskietki są nadal OK! z niezakłóconymi danymi również na nich (kod turbo pascal v3 z dni studenckich).
slashmais

4

Możesz spróbować Slackware Linux. Instalacja oparta na menu pozwoli ci zainstalować dość minimalny system. Możesz łatwo pominąć strony podręcznika man, X11, Tcl, Emacs i to tylko z instalacji na najwyższym poziomie. Możesz zagłębić się w instalację i zainstalować tylko minimum pakietów.

Następnie skompiluję jądro specjalnie dla komputera, na którym został zainstalowany.

Slackware nadal domyślnie używa menedżera rozruchu Lilo, więc ostatecznie wiesz nieco więcej niż chcesz wiedzieć o sektorach rozruchowych, która partycja jest oznaczona jako bootowalna, co zawiera initrd itp., Niż w przypadku dystrybucji wykonywanych przez Grub.


3

Dla mnie Damn Small Linux otrzymał nazwę „najmniejszej możliwej dystrybucji Linuksa”! Słyszałem jednak, że jest to trochę zaniechane. Na tej stronie wiki możesz również zobaczyć listę podobnych dystrybucji (zwanych „Mini Linux”) .

Jeśli przestrzeń nie jest twoim celem, zasugeruję Gentoo lub Arch Linux , oba instalują system podstawowy. Ty wybierasz, co chcesz używać, i instalujesz pakiety w miarę wzrostu potrzeb.


Nie kosmos - nauka Linuksa. Patrzyłem na większość z nich, a także na LFS, ale LFS sprawia, że ​​robisz / dodajesz rzeczy, wydaje mi się, że nie ma wystarczającego wyjaśnienia.
slashmais,

3
Jeśli chcesz się uczyć, Archlinux jest naprawdę dobry. Arch Wiki ma DUŻO jasnych, pomocny informacji.
Stefan

wygląda na to, że
zmieniłem

2

To, co musisz zrobić, to pobrać najnowsze jądro z kernel.org, po make menuconfigprostu przejrzyj opcje i użyj go jako punktu wyjścia do badań i dochodzeń. Dowiesz się dużo.


„Czas jest moim wrogiem”. - nie bardzo, ale na pewno przyjrzę się twojej sugestii.
slashmais

0

Możesz spojrzeć na Puppy Linux . Może nie jest najmniejszy, ale ma reputację małej.

Jednak dyskietki z Linuksem, które mają być małe, zwykle pozostają małe. Aby nauczyć się linux, chciałbym gdzieś debiutować na żywo. .Zabrałbym źródła jądra Debiana, źródła bash i źródła gruba kompilują się i instalują. Następnie zainstaluj kompilator, zainstaluj edytor, apt i gcc. Następnie wygeneruj listę pakietów z debian live. Zainstaluj źródło dla każdego pakietu, skompiluj i zainstaluj. Następnie dodaj X, a następnie Wm swojego wyboru, a następnie będziesz mieć podstawę do tego, co chcesz zrobić.

PS: apt-get source dostaje źródło dla pakietu debian.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.