J'essaie d'exécuter des expériences avec Linux et de rechercher la plus petite distribution par la taille d'installation. (RAM, la CPU n'a pas vraiment d'importance)
Si vous êtes prêt à passer par un processus de compilation et à réduire les fonctionnalités, vous pourriez essayer Buildroot . J'ai créé une installation de Linux très basique (essentiellement uniquement les utilitaires minimales Busybox et une application supplémentaire) qui s'intégrent à une image ISO de 6 Mo.
La clé ici consiste ici à réduire la configuration du noyau et de l'achabus ("faire linux-nconfig" et "faire buxybox-menuconfig") au minimum au minimum dont vous avez besoin, puis pour activer la compression XZ sur le noyau initial Ramdisk. Couper tout ce que je n'avais pas besoin de me permettre de réduire l'ensemble de l'image ISO jusqu'à environ 9 Mo, et après avoir permis à la compression XZ plus bas à 6 Mo.
Pour le noyau, je viens de vérifier chaque option dans le menu de configuration et de la désactivation à moins que je n'en ai plus besoin. Vous pouvez désactiver tous les pilotes de réseau pour lesquels vous n'avez pas d'adaptateur réseau correspondant, désactivez d'autres matériels moins courants que vous ne prévoyez pas d'utiliser (cartes série multi-ports, joysticks, appareils multifonctions ...) et ainsi au. Vous pouvez également laisser de nombreux sous-systèmes sur les implémentations de base plutôt que sur des états de base plus sophistiqués (par exemple des états de base de la CPU ACPI de base plutôt que des états inactifs d'Intel/AMD), ce qui peut signifier que vous échangerez l'efficacité de l'énergie et le support matériel complet pour la taille du noyau. Vous pouvez également désactiver des sous-systèmes entiers tels que Hibernation/support de veille et système de son si vous n'avez pas besoin de les utiliser.
Vous pouvez économiser beaucoup d'espace en faisant cela. Par exemple, le KVM (virtualisation) et les modules de support BTRFS (que j'ai décidé de mettre à l'extérieur du noyau sous forme de modules chargeux au cas où j'en aurais besoin à l'avenir), prenez 1,1 MB par eux-mêmes. En supprimant ces fichiers de module, vous pouvez descendre à environ 4,9 Mo. Il serait possible qu'ils prennent moins d'espace intégré dans le noyau binaire, mais j'ai ensuite vu que d'autres modules plus petits sont de 20 à 100 kilo-octets, donc votre kilométrage peut varier.
Busybox est un seul binaire qui se comporte comme des fichiers binaires différents en fonction de la manière dont il s'appelle à partir de la ligne de commande, ce qui vous permet de gagner de l'espace. Il est inclus dans Buildroot par défaut. Il peut se comporter comme LS, DF, DD, Cat, NC, Bash et Beaucoup d'autres. Cela ressemble à un bon remplacement de la quasi-totalité de l'ensemble de la * NIX Userland, à moins que vous n'ayez besoin d'extensions d'utilité spécifiques que vous ne pouvez trouver que dans des versions plus complètes/traditionnelles (par exemple GNU, BSD) de ces utilitaires. Busybox est similaire au noyau en termes de fonctionnalités désactivées - désactivez tout, à l'exception des fichiers binaires (aka applets) dont vous avez besoin, et la taille sera réduite. Busy Busy Busy Binary, il occupe 512 kilo-octets dans Businroot et environ 2,1 Mo sur Ubuntu 14.10. La version plus grande Ubuntu prend en charge beaucoup plus que ma version de Buildroot, et elle est toujours plus petite que la zone utilisateur par défaut en termes de taille - 2.1 MB pour Busybox, qui comprend tous les utilitaires de base (plus MD5, SHA256, SHA512 SUM, TELNET, GZIP, GREP, DF, DD, et beaucoup, beaucoup d'autres applets) vs The Traditionnel Wenterland - 2.1Mb vous donne bash et seulement quelques-uns de ces utilitaires.
Vous pouvez essayer certaines des choses ci-dessous pour réduire davantage la taille, mais faire des sauvegardes du répertoire de travail, car vous pouvez casser l'installation de Buildroot que vous travaillez et devrez peut-être reconstruire certains des fichiers binaires.
Compressez tous les exécutables (y compris le noyau) avec le compresseur UPX. Comme UPX est conçu spécifiquement pour effectuer une compression exécutable, cela rend les exécutables résultants beaucoup plus petits. Mais s'il vous plaît assurez-vous de tester tous les exécutables après et qu'ils fonctionnent correctement.
Utilisez un Libc différent. J'utilise UCLIBC, mais j'ai entendu dire que Musen et DietLib sont beaucoup plus petits et produisent des exécutables plus petits. J'ai eu des problèmes de construction de musulmes cette fois-ci, mais cela peut fonctionner mieux.
Remplacez une ou toutes les utilitaires Userland avec asmutils . Ces utilitaires mettent en œuvre certaines des utilitaires * NIX communs dans l'assemblage pur (plutôt que C ou d'autres langues), qui permet théoriquement un code beaucoup plus compact. Certaines d'entre elles fonctionnent bien, mais certaines peuvent être utilisées uniquement de manière très élémentaire (par exemple, "" Mont "ne prend que des paramètres dans une séquence spécifique et aucune option de montage spécifique FS n'est mise en œuvre). D'autre part, ils sont très petits (la plupart sont compilés de moins de 1 ko, les petits environ 139 octets ou plus). Vous pouvez choisir ceux que vous souhaitez utiliser, de sorte que vous pouvez utiliser ces remplacements uniquement pour les commandes que vous souhaitez enregistrer de l'espace et conserver plus de versions riches en fonctionnalités comme applets Bushbox.
OpenWrt est également l'un des plus petits.
tomsrtbt est un couple de mégaoctets; Il convient sur une disquette.