Quelle est la plus petite implémentation Linux possible? [fermé]


21

Quels sont les composants minimums pour qu'un OS Linux soit fonctionnel, et que je peux utiliser comme base pour étendre et améliorer à mesure que j'apprends Linux et que ma compréhension et mes besoins grandissent?

Réponses:



9

Si vous cherchez à apprendre, Gentoo est une bonne option - l'installation minimale de Gentoo est un shell root 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 les packages, vous ne rencontrerez donc pas trop de problèmes si vous souhaitez télécharger et créer vous-même certains packages (et en fait, vous pouvez les ajouter au fichier /etc/portage/package.provided après leur installation, et utilisez-les comme dépendances!)

Si vous recherchez le système Linux le plus petit possible, alors créez votre propre noyau, supprimez tous les pilotes et fonctionnalités que vous ne prévoyez pas d'utiliser, puis ajoutez un initramfs contenant une construction de Busybox minimisée de la même manière. Le résultat est un système Linux entièrement amorçable dans un seul exécutable (sur lequel vous pouvez pointer votre chargeur de démarrage), et dans lequel vous pouvez insérer moins de 10 Mo sans même essayer.


Votre dernier para - je pense que ce serait un bon point de départ. Ensuite, je saurai ce qu'il y a et pourquoi il est là, en l'utilisant comme base pour grandir.
slashmais

10 Mo? Vous pourriez probablement le faire sous 1 Mo
Falmarri

8

Archlinux utilise un groupe de base de fichiers pour une installation très minimale.

Avec un groupe de développement de base , si vous allez faire du développement de système.


3
Dans la bonne direction, comprend toujours beaucoup de paquets, mais je peux utiliser ce qu'ils donnent et couper des paquets jusqu'à ce que les choses se cassent.
slashmais

L'installation de l'archive est devenue beaucoup plus modulaire que 2010 - parlant de mémoire / sans lancer une nouvelle installation, l'utilitaire `` pacstrap '' vous donne la possibilité de choisir les groupes à utiliser, y compris simplement `` base '' ou peut-être même rien du tout (bien que Je pense que la base contient le système). Si vous voulez aller plus loin mais que vous avez toujours une distribution au moins vaguement utilisée, Slackware est probablement celui-là.
djvs

L'installation d'Arch est beaucoup moins modulaire qu'auparavant car ils ne prennent officiellement en charge qu'Am64 Arch, SystemD uniquement pour Init, etc. Cependant, je recommanderais également Slackware.
Lucas Ramage

8

Si vous voulez vraiment le strict minimum d'un système Linux, vous pouvez essayer des distributions pour des systèmes embarqués comme des routeurs. Ils ne comportent normalement que le minimum absolu de logiciels et le manque commun d'une interface utilisateur graphique vous oblige à vous familiariser avec la ligne de commande. Un inconvénient est que, souvent, ces systèmes enfreignent les conventions des distributions Linux régulières, par exemple, ils installent des logiciels dans des endroits rares ou utilisent des systèmes d'initialisation simplifiés.

Si vous voulez lui donner une chance, vous pouvez par exemple essayer openwrt dans une machine virtuelle .


Je peux utiliser OpenWrt comme référence; Je serai heureux si vous pouvez signaler d'autres sites de ce type. Vous utilisez déjà VirtualBox et ils ont un noddy-guide pour y installer OpenWrt.
slashmais

Peut-être intégré Debian: emdebian.org
fschmitt


8

Rootfs exécutables uniques

Le système minimum absolu exécute un seul /initprogramme comme je l'ai expliqué sur Single Application Linux | Super utilisateur

Minimal Linux Live

https://github.com/ivandavidov/minimal

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

  • télécharge la source du noyau et de la busybox
  • les compile
  • génère un ISO de 8 Mo amorçable avec eux

L'ISO vous laisse alors dans un shell minimal avec busybox.

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

Je l'ai modifié pour permettre de l'exécuter à partir du répertoire source du noyau: https://github.com/cirosantilli/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.

Puisqu'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 Makefile qui gèrent:

  • Chaîne d'outils de compilation croisée GCC
  • compilation du noyau
  • compilation du chargeur de démarrage
  • génération de rootfs
  • a des tonnes de recettes de téléchargement / construction de packages dans l'arborescence source, y compris des trucs complexes comme GTK. Il existe 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 construire X11 à partir de zéro: Comment installer X11 sur mon propre système Linux Buildroot?

Des trucs professionnels testés au combat utilisés par certaines grandes entreprises.

Alpine Linux

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

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

Voir également


1
J'ai finalement choisi la voie LFS.
Je l'ai

6

Comment se fait-il que personne n'ait mentionné tomsrtbt ? (Linux sur une seule disquette 1,44 ")


sonne bien - liens?
slashmais

ne vous inquiétez pas - je l'
ai

4
Qui a encore un lecteur de disquette ces jours-ci? ;)
p-statique

1
J'en regarde un en ce moment. Mais je ne l'ai utilisé qu'une seule fois au cours des années où j'ai eu le PC.
lamcro

3
@ p-static: J'utilise une vieille boîte comme serveur d'impression - elle a toujours un lecteur de disquette 8 1/4 pouces et je viens de la tester avec des disquettes de 20 ans - étonnamment, les disquettes sont toujours OK! avec des données non corrompues sur eux aussi (code turbo pascal v3 des jours étudiants).
slashmais

4

Vous pouvez essayer Slackware linux. L'installation pilotée par menu vous permettra d'installer un système assez minimal. Vous pouvez facilement laisser de côté les pages de manuel, X11, Tcl, Emacs et c'est juste à partir de l'installation de très haut niveau. Vous pouvez plonger dans l'installation et n'installer qu'un strict minimum de packages.

Après cela, je recompilerais le noyau spécifiquement pour la machine sur laquelle vous avez installé.

Slackware utilise toujours par défaut le gestionnaire de démarrage Lilo, donc vous finissez par en savoir un peu plus que vous ne voulez en savoir sur les secteurs de démarrage, quelle partition est marquée comme démarrable, ce que contient votre initrd, etc., etc. que pour les distributions lancées par Grub.


3

Pour moi, Damn Small Linux a obtenu le nom de "la plus petite distribution Linux possible"! Cependant, j'ai entendu dire qu'il était en quelque sorte abandonné. Vous pouvez également voir une liste de distributions similaires (appelées "Mini Linux") sur cette page wiki .

Si l'espace n'est pas votre objectif, je suggère 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.


Pas l'espace - apprendre Linux. J'ai regardé la plupart de ceux-ci, ainsi que LFS, mais LFS vous fait faire / ajouter des trucs avec, semble-t-il, pas assez d'explications.
slashmais

3
Si vous voulez apprendre, Archlinux est vraiment bon. Le Wiki Arch a BEAUCOUP d'informations claires et utiles.
Stefan

semble que j'ai changé la cible après avoir tiré votre tir, désolé: o
slashmais

2

Ce que vous devez faire est de télécharger le dernier noyau à partir de kernel.org, de faire make menuconfiget de parcourir les options, et de l'utiliser comme point de départ pour la recherche et l'enquête. Tu apprendras beaucoup.


"Le temps est mon ennemi." - pas vraiment, mais je vais certainement examiner votre suggestion.
slashmais

0

Vous pouvez regarder Puppy Linux . Ce n'est peut-être pas le plus petit, mais il a la réputation d'être petit.

Cependant, les distributions Linux censées être petites ont généralement tendance à rester petites. Pour apprendre Linux, je voudrais un Debian en direct quelque part. .Je ferais compiler et installer les sources du noyau Debian, les sources bash et les sources grub. Ensuite, compilez de manière croisée, installez un éditeur, apt et gcc. Générez ensuite une liste de paquets à partir du debian live. Installez la source de chaque package, compilez et installez. Ensuite, ajoutez X puis le Wm de votre choix, puis vous avez la base de ce que vous voulez faire.

PS: apt-get source vous fournit la source d'un paquet debian.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.