
Arborescence source du noyau Linux 4.1.15 avec des correctifs pour CVE-2023-28772, fournissant une référence pour l'analyse de vulnérabilités et la recherche d'exploitation.
Linux kernel release 4.x http://kernel.org/
Ce sont les notes de version pour Linux version 4. Lisez-les attentivement, car elles vous expliquent de quoi il s'agit, comment installer le noyau, et que faire si quelque chose se passe mal.
QU'EST-CE QUE LINUX ?
Linux est un clone du système d'exploitation Unix, écrit de zéro par Linus Torvalds avec l'aide d'une équipe informelle de hackers à travers le Net. Il vise la conformité POSIX et Single UNIX Specification.
Il possède toutes les fonctionnalités que vous attendez d'un Unix moderne et complet, notamment le vrai multitâche, la mémoire virtuelle, les bibliothèques partagées, le chargement à la demande, les exécutables partagés avec copie sur écriture, une gestion de la mémoire appropriée, et un réseau multi-piles incluant IPv4 et IPv6.
Il est distribué sous la licence publique générale GNU - voir le fichier COPYING accompagnant pour plus de détails.
SUR QUEL MATÉRIEL FONCTIONNE-T-IL ?
Bien qu'initialement développé pour les PC 32 bits basés sur x86 (386 ou supérieur), Linux fonctionne aujourd'hui (au moins) sur les architectures Compaq Alpha AXP, Sun SPARC et UltraSPARC, Motorola 68000, PowerPC, PowerPC64, ARM, Hitachi SuperH, Cell, IBM S/390, MIPS, HP PA-RISC, Intel IA-64, DEC VAX, AMD x86-64, AXIS CRIS, Xtensa, Tilera TILE, AVR32 et Renesas M32R.
Linux est facilement portable sur la plupart des architectures 32 ou 64 bits généralistes à condition qu'elles disposent d'une unité de gestion mémoire paginée (PMMU) et d'un port du compilateur GNU C (gcc) (partie de la collection de compilateurs GNU, GCC). Linux a également été porté sur un certain nombre d'architectures sans PMMU, bien que les fonctionnalités soient alors évidemment quelque peu limitées. Linux a aussi été porté sur lui-même. Vous pouvez maintenant exécuter le noyau en tant qu'application espace utilisateur - cela s'appelle UserMode Linux (UML).
DOCUMENTATION :
Il existe beaucoup de documentation disponible à la fois sous forme électronique sur Internet et dans des livres, à la fois spécifique à Linux et concernant des questions UNIX générales. Je recommande de consulter les sous-répertoires de documentation sur n'importe quel site FTP Linux pour les livres du LDP (Linux Documentation Project). Ce README n'est pas destiné à être une documentation sur le système : il existe de bien meilleures sources.
Il existe divers fichiers README dans le sous-répertoire Documentation/ : ils contiennent généralement des notes d'installation spécifiques au noyau pour certains pilotes par exemple. Voir Documentation/00-INDEX pour une liste de ce que contient chaque fichier. Veuillez lire le fichier Changes, car il contient des informations sur les problèmes, qui peuvent survenir lors de la mise à jour de votre noyau.
Le sous-répertoire Documentation/DocBook/ contient plusieurs guides pour les développeurs et utilisateurs du noyau. Ces guides peuvent être rendus dans plusieurs formats : PostScript (.ps), PDF, HTML, & pages de manuel, entre autres. Après installation, "make psdocs", "make pdfdocs", "make htmldocs", ou "make mandocs" rendront la documentation dans le format demandé.
INSTALLATION du code source du noyau :
Si vous installez les sources complètes, placez l'archive du noyau dans un répertoire où vous avez les permissions (par exemple votre répertoire personnel) et décompressez-la :
xz -cd linux-4.X.tar.xz | tar xvf -
Remplacez "X" par le numéro de version du dernier noyau.
N'utilisez PAS la zone /usr/src/linux ! Cette zone contient un ensemble (généralement incomplet) d'en-têtes du noyau utilisés par les fichiers d'en-tête de la bibliothèque. Ils doivent correspondre à la bibliothèque, et ne pas être perturbés par le noyau du jour.
Vous pouvez également effectuer une mise à niveau entre les versions 4.x par patching. Les correctifs sont distribués au format xz. Pour installer par patching, obtenez tous les fichiers de correctifs les plus récents, entrez dans le répertoire de premier niveau des sources du noyau (linux-4.X) et exécutez :
xz -cd ../patch-4.x.xz | patch -p1
Remplacez "x" pour toutes les versions supérieures à la version "X" de votre arbre source actuel, dans l'ordre, et tout devrait bien se passer. Vous pouvez supprimer les fichiers de sauvegarde (some-file-name~ ou some-file-name.orig), et vérifier qu'il n'y a pas de correctifs ayant échoué (some-file-name# ou some-file-name.rej). S'il y en a, soit vous, soit moi avons fait une erreur.
Contrairement aux correctifs pour les noyaux 4.x, les correctifs pour les noyaux 4.x.y (également appelés noyaux -stable) ne sont pas incrémentiels mais s'appliquent directement au noyau de base 4.x. Par exemple, si votre noyau de base est 4.0 et que vous souhaitez appliquer le correctif 4.0.3, vous ne devez pas d'abord appliquer les correctifs 4.0.1 et 4.0.2. De même, si vous utilisez la version 4.0.2 du noyau et souhaitez passer à la 4.0.3, vous devez d'abord annuler le correctif 4.0.2 (c'est-à-dire patch -R) avant d'appliquer le correctif 4.0.3. Vous pouvez en lire plus à ce sujet dans Documentation/applying-patches.txt
Alternativement, le script patch-kernel peut être utilisé pour automatiser ce processus. Il détermine la version actuelle du noyau et applique tous les correctifs trouvés.
linux/scripts/patch-kernel linux
Le premier argument dans la commande ci-dessus est l'emplacement des sources du noyau. Les correctifs sont appliqués à partir du répertoire courant, mais un répertoire alternatif peut être spécifié comme second argument.
Assurez-vous de ne pas avoir de fichiers .o obsolètes ni de dépendances qui traînent :
cd linux make mrproper
Vous devriez maintenant avoir les sources correctement installées.
EXIGENCES LOGICIELLES
Compiler et exécuter les noyaux 4.x nécessite des versions à jour de divers logiciels. Consultez Documentation/Changes pour les numéros de version minimaux requis et comment obtenir des mises à jour pour ces paquets. Attention, l'utilisation de versions excessivement anciennes de ces paquets peut provoquer des erreurs indirectes très difficiles à tracer, alors ne supposez pas que vous pouvez simplement mettre à jour les paquets lorsque des problèmes évidents surviennent lors de la construction ou de l'exploitation.
RÉPERTOIRE DE CONSTRUCTION pour le noyau :
Lors de la compilation du noyau, tous les fichiers de sortie seront par défaut stockés avec le code source du noyau. L'utilisation de l'option "make O=output/dir" vous permet de spécifier un emplacement alternatif pour les fichiers de sortie (y compris .config). Exemple :
kernel source code: /usr/src/linux-4.X
build directory: /home/name/build/kernel
To configure and build the kernel, use:
cd /usr/src/linux-4.X
make O=/home/name/build/kernel menuconfig
make O=/home/name/build/kernel
sudo make O=/home/name/build/kernel modules_install install
Veuillez noter : si l'option 'O=output/dir' est utilisée, elle doit être utilisée pour toutes les invocations de make.
CONFIGURATION du noyau :
Ne sautez pas cette étape, même si vous ne mettez à jour qu'une version mineure. De nouvelles options de configuration sont ajoutées à chaque version, et des problèmes étranges apparaîtront si les fichiers de configuration ne sont pas configurés comme prévu. Si vous souhaitez reporter votre configuration existante vers une nouvelle version avec un minimum de travail, utilisez "make oldconfig", qui ne vous demandera que les réponses aux nouvelles questions.
Commandes de configuration alternatives :
"make config" Interface en texte simple.