Réponses:
Si vous voulez apprendre Linux comme pour connaître le code source, vous voudrez peut-être essayer Linux à partir de zéro
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.
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.
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 .
Rootfs exécutables uniques
Le système minimum absolu exécute un seul /init
programme 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:
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
Grand ensemble de scripts Makefile qui gèrent:
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
Comment se fait-il que personne n'ait mentionné tomsrtbt ? (Linux sur une seule disquette 1,44 ")
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.
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.
Ce que vous devez faire est de télécharger le dernier noyau à partir de kernel.org, de faire make menuconfig
et de parcourir les options, et de l'utiliser comme point de départ pour la recherche et l'enquête. Tu apprendras beaucoup.
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.