Je suis juste curieux de savoir s'il est possible d'installer le noyau Linux seul ou si vous avez besoin d'utiliser l'une des versions. Si c'était possible, comment le ferais-tu? Je n'ai pas besoin d'un tutoriel détaillé. Je veux juste savoir comment cela se ferait sur le plan conceptuel. Je ne suis pas doué pour les logiciels de bas niveau et je veux savoir comment obtenir un système d'exploitation dans l'ordinateur. J'imagine que cela a quelque chose à voir avec le MBR.
Oh et j'ai remarqué que beaucoup de réponses suggèrent une certaine distribution de Linux minimal. J'aurais probablement dû dire que je ne cherche pas à installer un système Linux minimal ou simple. Cette question est purement théorique. Malgré tout, j’apprécie vraiment toutes les réponses et y ferai immédiatement référence, si jamais je voulais installer un Linux vraiment personnalisé.
la source
kernel
n’avait aucunebash
capacité de base non plus. L'interface utilisateur standard a été fournie par le programme shellCOMMAND.COM
. La chose la plus proche que vous puissiez faire avec un noyau nu pour faire quelque chose d’utile serait de démarrer en utilisant le paramètre du noyauinit=/bin/bash
(en supposant qu’un minimum de Linux est sur le disque). Comme on vous l’a répondu, si vous n’avez que le chargeur de démarrage et le noyau, il s’arrêtera très rapidement s’il ne le trouve pasinit
.Réponses:
Vous pouvez techniquement installer uniquement un chargeur de démarrage et le noyau, mais dès que le noyau démarrera, il se plaindra de ne pas pouvoir démarrer "init", il restera alors immobile et vous ne pourrez rien faire avec.
BTW, c'est une partie du chargeur de démarrage qui se trouve dans le MBR. Le noyau se situe quelque part sur la zone normale d'un disque. Le chargeur de démarrage est configuré pour savoir où cela se trouve, il peut donc charger le noyau et l'exécuter.
la source
Je ne pense pas que vous compreniez exactement ce que vous demandez, mais vous voudrez peut-être jeter un coup d'œil au projet Linux From Scratch .
la source
aptitude search '?essential'
) sur Debian ou Ubuntu et comprenez ce que chacun fait (il ya un peu plus que le strict minimum).Si vous demandez si vous pouvez simplement installer ou mettre à niveau un noyau "sur" un système existant sans installer un tas d'autres programmes?
Le noyau Linux est un fichier binaire généralement nommé
vmlinuz-x.x.x-x-name
dans leboot
répertoire (qui est généralement une petite partition séparée au début du disque dur) où les x sont un numéro de version. "nom" est juste un nom choisi pour le noyau qui peut être défini lors de la compilation, vous pouvez l'utiliser pour identifier le type de machine ou d'architecture pour laquelle le noyau est utilisé, ou pour toute autre raison.Il est chargé à l'heure de démarrage par un chargeur de démarrage,
GRUB
qui est généralement appelé par le code de démarrage du MBR appelé par la ROM du BIOS. Une fois chargé, il n'est ni "tenu ouvert" ni protégé spécialement. Vous pouvez donc remplacer ce fichier par un autre noyau actif. Mais,GRUB
a une fonctionnalité intéressante qui vous permet de sélectionner plusieurs noyaux à partir desquels démarrer. Il est donc très judicieux d’ajouter votre noyau supplémentaire à cette liste, tout en conservant le noyau en fonctionnement connu au cas où tout irait mal.Je pense que presque toutes les distributions font un noyau "modulaire" dans lequel les pilotes de périphérique sont dans des fichiers séparés. La plupart des noyaux ont donc besoin d’un système de fichiers contenant les pilotes disponibles au démarrage, c’est à quoi sert un "initrd" (disque RAM initial) ou "initramfs".
GRUB
chargera le noyau à un emplacement en mémoire et l'initrd à un autre emplacement, puis sautera au noyau pour lui dire où se trouve l'initrd, en commençant par Linux.Les pilotes peuvent également être "intégrés" au noyau et sont donc automatiquement chargés et disponibles lorsque le chargeur de démarrage charge l'
vmlinuz
image. Les noyaux censés fonctionner sur divers systèmes (tels que ceux de la plupart des distributions) minimisent généralement ce qui est construit dans le noyau, car le matériel disponible sera analysé ultérieurement dans le processus de démarrage et seuls les modules représentant le matériel actuel seront chargés.Il existe des outils pour modifier et créer des initrds. Debian a de bons outils et j'imagine que d'autres distributions en ont aussi.
Ainsi, si vous téléchargez un noyau plus récent à partir de kernel.org et le compilez pour créer une nouvelle image binaire du noyau, vous devez créer ou mettre à jour un initrd avec des pilotes fonctionnant avec ce noyau. L'ancien initrd ne fonctionnera pas car les pilotes doivent correspondre à la version du noyau en cours d'exécution.
Le fichier initrd a le
initrd.img-x.x.x.x-name
même nom que le noyau et peut être remplacé après le démarrage de la même manière que le noyau. Une bonne pratique vous indiquerait de ne pas supprimer un initrd fonctionnel tant que vous ne savez pas que vous pouvez démarrer avec votre nouveau noyau + initrd avec succès.J'espère que cela fournit un contexte.
Si vous recherchez une installation Linux "à nu" qui ne comporte que peu ou pas de programmes supplémentaires, mon choix préféré a toujours été d'installer l'
netinst
image Debian . En gros, vous ne disposez que des outils les plus élémentaires pour exécuter une console de texte en ligne de commande etnano
un éditeur de texte.la source
Rootfs simples exécutables
Le système minimum absolu exécute un seul
/init
programme, comme je l'ai expliqué dans Single Application Linux | Super utilisateurMinimal 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 ensuite 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:
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.
Construire
https://buildroot.org/
Grand ensemble de scripts Makefile qui gèrent:
Exemple minimal:
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.
Alpine Linux
https://github.com/gliderlabs/docker-alpine
Distribution intégrée avec un gestionnaire de paquets offrant des fichiers binaires précompilés à partir d'un site Web.
Voir également
la source
Je voudrais appuyer la suggestion de Shadur selon laquelle vous devriez salir vos mains de la même manière que Linux From Scratch.
Aussi, quelque chose de similaire, essayez Pocket Linux .
la source
Il est possible d'installer un noyau Linux sans les outils d'espace utilisateur habituels. Cela se fait généralement dans des systèmes embarqués tels que les routeurs. En règle générale, le noyau est chargé à partir de la mémoire ROM ou Flash et a été personnalisé pour le périphérique en question (généralement avec les pilotes requis compilés dans le noyau plutôt que chargés en tant que modules).
Au moins un programme de l'espace utilisateur doit exister pour devenir le processus 'init' (pas nécessairement appelé
init
, mais démarré par le noyau en tant que processus 1 et le parent automatique de tous les processus orphelins) - à moins que le noyau n'ait été modifié (plutôt simplement sur mesure) pour ne pas en avoir besoin.Il n’est certainement pas nécessaire de disposer d’un shell pour pouvoir utiliser un périphérique basé sur Linux, bien que cela facilite grandement le développement!
la source
Beaucoup de distributions fournissent des installations "de base". Voici ce que tu veux. Voir ubuntu-minimal, debian net-install, archlinux (par défaut, c’est le cœur).
Les autres réponses sont utiles si vous voulez apprendre, mais ce n'est peut-être pas le cas = p
la source