it-swarm-eu.dev

Je možné nainstalovat jádro Linuxu samostatně?

Jsem jen zvědavý, jestli je možné nainstalovat jádro Linuxu samostatně, nebo pokud potřebujete použít jednu z příchutí. Pokud by to bylo možné, jak byste to udělali? Nepotřebuji podrobný návod. Chci jen vědět, jak by to bylo provedeno koncepčně. Nejsem dobrý s nízkoúrovňovými věcmi a chci vědět, jak se vám do počítače dostane operační systém. Představuji si, že to má něco společného s MBR.

Jo a všiml jsem si, že mnoho odpovědí naznačuje určitou distribuci minimálního Linuxu. Měl jsem asi říci, že nechci instalovat minimální nebo holé kosti Linuxu. Tato otázka je čistě teoretická. Přesto si opravdu vážím všech odpovědí a budu na ně okamžitě odkazovat, pokud budu chtít nainstalovat skutečně personalizovaný Linux.

50
cesar

Technicky můžete nainstalovat pouze bootloader a jádro samotné, ale jakmile se jádro zavede, bude si stěžovat, že nebude moci spustit „init“, pak tam bude jen sedět a s tím nebudete moci nic dělat.

BTW, je součástí bootloaderu, který je v MBR. Jádro leží někde na pravidelné ploše disku. Zavaděč je nakonfigurován tak, aby věděl, kde to je, takže může načíst a spustit jádro.

54
Shawn J. Goff

Nemyslím si, že rozumíte přesně tomu, co požadujete, ale možná byste se měli podívat na projekt Linux From Scratch .

20
Shadur

Pokud se ptáte, zda můžete nainstalovat nebo upgradovat jádro „přes“ existující systém, aniž byste museli instalovat spoustu jiných programů?

Linuxové jádro je binární soubor obvykle pojmenovaný vmlinuz-x.x.x-x-name v adresáři boot (což je obvykle samostatný malý oddíl na začátku pevného disku), kde x jsou číslo verze. "jméno" je pouze vybrané jméno pro jádro, které lze nastavit při kompilaci, můžete jej použít k identifikaci typu počítače nebo architektury, pro které je jádro, nebo z jakéhokoli jiného důvodu.

Načítá se při bootování bootloaderem, obvykle GRUB, který je vyvolán bootovacím kódem v MBR, který je vyvolán BIOS ROM. Jakmile je načten, není to „drženo otevřené“ nebo chráněno speciálně. Takže můžete tento soubor nahradit jiným pracovním jádrem. GRUB má skvělou funkci, která vám umožní vybrat více jader, ze kterých se má zavést systém. Je tedy docela chytré přidat do tohoto seznamu další jádro, ale původní známé pracovní jádro si ponechejte jen pro případ, že se něco pokazí.

Téměř všechny distribuce věřím, že vytvoří "modulární" jádro, kde jsou ovladače zařízení v samostatných souborech. Většina jader tedy potřebuje souborový systém obsahující ovladače, které má k dispozici v době spuštění, a to je to, pro co je "initrd" (počáteční RAM disk) nebo "initramfs". GRUB will nahrajte jádro na místo v paměti a initrd na jiném místě a přeskočte na jádro a řekněte mu, kde je initrd, spuštěním Linuxu.

Ovladače mohou být také zabudovány do jádra, a proto jsou automaticky načteny a dostupné, když bootloader načte obrázek vmlinuz. Jádra, která mají pracovat na různých systémech (jako jsou ty většiny distribucí), obvykle minimalizují to, co je zabudováno do jádra, protože dostupný hardware bude zkontrolován později v zaváděcím procesu a načteny budou pouze moduly představující současný hardware.

Existují nástroje pro úpravu a vytváření initrds. Debian má pěkné nástroje a já si představuji, že to dělají i jiné distribuce.

Pokud tedy stáhnete novější jádro z kernel.org a zkompilujete jej, abyste vytvořili nový binární obraz jádra, musíte vytvořit nebo aktualizovat initrd pomocí ovladačů, které s tímto jádrem pracují. Starý initrd nebude fungovat, protože ovladače musí odpovídat verzi spuštěného jádra.

Soubor initrd se jmenuje initrd.img-x.x.x.x-name podobně jako jádro a lze jej po zavedení nahradit stejně jako jádro a podle osvědčeného postupu byste neměli smazat známého fungujícího initrd, dokud nebudete vědět, že nemůžete úspěšně zavést nový jádro + initrd.

Doufám, že to poskytne nějaký kontext.

Pokud hledáte Linuxovou instalaci „barebones“, která má málo nebo žádné další nainstalované programy, moje oblíbená volba byla vždy instalace obrazu Debian netinst. Do značné míry máte pouze nejzákladnější nástroje potřebné ke spuštění textové konzoly příkazového řádku a nano jako textový editor.

13
LawrenceC

Jednotlivé spustitelné rootfy

Absolutní minimální systém spustí jediný /init program, jak jsem vysvětlil na Single Application Linux | Super User

Minimální Linux Live

https://github.com/ivandavidov/minimal

Pro zajímavější interaktivní systém je to (většinou vzdělávací) malý skript, který:

  • stáhne zdroj pro jádro a busybox
  • zkompiluje je
  • vytváří s nimi zaváděcí ISO 8 MB

ISO vás pak nechá v minimálním prostředí s busyboxem.

S QEMU můžete snadno zavést systém.

Upravil jsem jej, abych ho mohl spustit ze zdrojového adresáře jádra: https://github.com/cirosantilli/runlinux

Používání:

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

a zůstanete uvnitř okna QEMU s novým minimálním systémem. Skvělý.

Protože je malý, je to dobrá možnost číst zdroj a porozumět tomu, co se děje.

Testováno na Ubuntu 16.04.

Buildroot

https://buildroot.org/

Velká sada skriptů Makefile, které spravují:

  • GCC cross compilation toolchain
  • kompilace jádra
  • kompilace bootloaderu
  • generace rootfs
  • má ve zdrojovém stromu spoustu balíčků ke stažení/sestavení balíčků, včetně složitých věcí, jako je GTK. Existuje závislostní systém.

Minimální příklad:

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.

Má dokonce recepty na sestavení X11 od nuly: Jak nainstalovat X11 na můj vlastní systém Linux Buildroot?

Profesionální věci.

Alpine Linux

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

Vestavěná distribuce se správcem balíků, který nabízí předkompilované binární soubory z webu.

Viz také

Je možné nainstalovat linuxové jádro bez obvyklých nástrojů uživatelského prostoru. To se běžně provádí ve vestavěných systémech, jako jsou směrovače. Obvykle je jádro načteno z ROM nebo Flash paměti) a bylo přizpůsobeno pro dané zařízení (obvykle s požadovanými ovladači zkompilovanými do jádra místo toho, aby byly načteny jako moduly).

Musí existovat alespoň jeden program v uživatelském prostoru, aby se stal procesem 'init' (nemusí být nutně nazýván init, ale byl spuštěn jádrem jako proces 1 a automatickým rodičem všech osiřelých procesů) - pokud jádro bylo upraveno (spíše než jednoduše přizpůsobeno), aby to nevyžadovalo.

Rozhodně není nutné mít k dispozici prostředí Shell, které by mělo funkční fungující zařízení na bázi Linuxu, ačkoli to může vývoj mnohem usnadnit!

3
Toby Speight

Chtěl bych podpořit Shadur's návrh, že byste měli nechat své ruce špinavým způsobem Linuxu od nuly.
Také něco podobného, ​​zkuste Pocket Linux .

Průvodce Pocket Linux ukazuje, jak vytvořit malý GNU/Linux systém založený na konzoli pomocí pouze zdrojového kódu a několika disket. Je určen pro uživatele Linuxu, kteří by chtěli získat hlubší pochopení toho, jak jejich systém funguje pod krytem specifických funkcí a nástrojů distribuce.

3
Philomath

Mnoho distros poskytuje "základní" instalace. To je to, co chcete. Viz ubuntu-minimal, debian net-install, archlinux (výchozí je pouze jádro).

Ostatní odpovědi jsou užitečné, pokud se chcete učit, ale to nemusí být případ = p

2
user606723