web-dev-qa-db-fra.com

Quelle est la plus petite implémentation de Linux possible?

Quels sont les composants minimums nus pour un système d'exploitation Linux pour être fonctionnel et que je peux utiliser comme base pour se développer et améliorer lorsque j'apprends que j'apprends Linux et que ma compréhension et mes besoins augmentent?

21
slashmais

Si vous voulez dire apprendre Linux comme pour connaître le code source, vous voudrez peut-être essayer Linux à partir de zéro

26
Tobias Kienzler

Si vous cherchez à apprendre, Gentoo est une bonne option - l'installation minimale gentoo est une coque racine et un gestionnaire de paquets, et vous construisez le reste de votre système à partir de là. Gentoo reste également assez proche de l'amont sur des packages, de sorte que vous ne rencontrerez pas trop de problèmes si vous souhaitez télécharger et construire des paquets vous-même (et en fait, vous pouvez les ajouter au fichier /etc/portage/package.Provided File après leur installation, et les utiliser comme dépendances!)

Si vous recherchez le système de Linux le plus petit absolu, puis construisez votre propre noyau, en supprimant tous les pilotes et fonctionnalités que vous ne prévoyez pas d'utiliser, puis ajoutez un intitRamfs contenant une version de Busybox de manière similaire. Le résultat est un système de linux entièrement amorçable dans un seul exécutable (que vous pouvez pointer votre chargeur de démarrage) et lequel vous pouvez vous adapter à moins de 10 Mo sans même essayer.

9
p-static

Rootfs exécutable unique

Le système minimal absolu exécute un seul /init Programme comme j'ai expliqué à Application unique Linux | Super utilisateur

Linux minimal Live

https://github.com/ivandavidov/minimal

Pour un système interactif plus intéressant, il s'agit d'un petit script (surtout éducatif) qui:

  • téléchargements La source pour le noyau et Busybox
  • les compile
  • génère un iso de 8 Mo d'amorçable avec eux

L'ISO vous laisse alors dans une coquille minimale avec Bushbox.

Avec QEMU, vous pouvez facilement démarrer dans le système.

Je l'ai modifié pour permettre l'exécution du répertoire source du noyau: https://github.com/cirosanttilli/runlinux

Usage:

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

et vous serez laissé dans une fenêtre QEMU avec votre nouveau système minimal. Impressionnant.

Comme il est petit, c'est une bonne option pour lire la source et comprendre ce qui se passe.

Testé sur Ubuntu 16.04.

Buildroot

https://buildroot.org/

Grand ensemble de scripts de maquillage qui gèrent:

  • Tool à outils de compilation croisée GCC
  • compilation du noyau
  • compilation du chargeur de démarrage
  • génération de rootfs
  • a des tonnes de dossiers de téléchargement/de construction dans l'arborescence source, y compris des trucs complexes tels que GTK. Il y a un système de dépendance.

Exemple minimal:

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.

Il a même des recettes pour le bâtiment x11 à partir de zéro: Comment installer x11 sur mon propre système de buildroot Linux?

Testés de bataille professionnelle utilisées par certaines grandes entreprises.

Alpine Linux

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

Distribution intégrée avec un gestionnaire de packages proposant des fichiers binaires précompilés à partir d'un site Web.

Voir aussi

Si vous voulez vraiment simplement le strict minimum de ce qui est un système Linux, vous pouvez essayer des distributions pour des systèmes embarqués tels que des routeurs. Ils ne portent normalement que le minimum de logiciel absolu et l'absence commune d'une interface utilisateur graphique vous oblige à vous familiariser avec la ligne de commande. Un inconvénient est que souvent ces systèmes rompent des conventions de distributions Linux régulières, par ex. Ils installent des logiciels dans des endroits rares ou utilisent des systèmes d'init simplifiés.

Si vous voulez lui donner un coup, vous pourriez essayer par exemple. OpenWrt dans une machine virtuelle .

8
fschmitt

Comment est-ce que personne n'a mentionné tomsrtbt ? (Linux sur une seule disquette 1,44 "1,44"

6
Arafangion

Pour moi, Damn petit Linux J'ai le nom de "la plus petite distro de Linux possible"! Cependant, j'ai entendu dire que c'était un peu arrêté. Vous pouvez également voir une liste de distributions similaires (appelées "Mini Linux") sur cette page page wiki .

Si l'espace n'est pas votre objectif, je vais suggérer Gentoo ou Arch Linux , ils installent tous les deux un système de base. Vous choisissez quoi utiliser et installer des packages à mesure que vos besoins augmentent.

3
phunehehe

Ce que vous devez faire est de télécharger le dernier noyau de Kernel.org, faire un make menuconfig Et simplement regarder les options et utiliser cela comme point de départ pour la recherche et l'enquête. Vous apprendrez beaucoup.

2
LawrenceC

Vous pourriez regarder chiot Linux . Ce n'est peut-être pas le plus petit mais il a un repumet d'être petit.

Cependant, les distrtos Linux qui sont destinées à être petites ont généralement tendance à rester petit. Pour apprendre Linux, je vivrais de Debian quelque part. .Je obtiendrait les sources du noyau Debian, sources de bash et des sources sans tête cross- compilons et installer. Ensuite, Compiler Installez un éditeur, APT et GCC. Générez ensuite une liste de forfaits de la Live Debian. Installez la source pour chaque package, compiler et installer. Ajoutez ensuite x puis le WM de votre choix alors vous avez la base de ce que vous voulez faire.

PS: APT-GET SOURCE vous obtient la source d'un package Debian.

0
HandyGandy