
Code source du noyau Linux 4.1.15 avec un accent sur CVE-2023-4128, destiné à l'analyse de vulnérabilités et à l'étude pédagogique de la sécurité du noyau.
Version 4.x du noyau Linux http://kernel.org/
Ceci sont les notes de version pour Linux version 4. Lisez-les attentivement, car elles vous indiquent de quoi il s'agit, expliquent comment installer le noyau, et quoi faire si quelque chose ne va pas.
QU'EST-CE QUE LINUX ?
Linux est un clone du système d'exploitation Unix, écrit à partir 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, y compris le véritable multitâche, la mémoire virtuelle, les bibliothèques partagées, le chargement à la demande, les exécutables partagés copy-on-write, une gestion de la mémoire appropriée, et un réseau multi-pile 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 également sur (au moins) 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 vers la plupart des architectures 32 ou 64 bits à usage général tant qu'elles disposent d'une unité de gestion de mémoire paginée (PMMU) et d'un port du compilateur GNU C (gcc) (qui fait 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 également é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écifiques à Linux et concernant des questions UNIX générales. Je recommande de consulter les sous-répertoires de documentation sur tout site FTP Linux pour les livres du LDP (Projet de documentation Linux). Ce README n'est pas censé être une documentation sur le système : il existe de bien meilleures sources disponibles.
Il y a 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 qui est contenu dans chaque fichier. Veuillez lire le fichier Changes, car il contient des informations sur les problèmes qui peuvent résulter 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 un certain nombre de formats : PostScript (.ps), PDF, HTML, et pages de manuel, entre autres. Après installation, "make psdocs", "make pdfdocs", "make htmldocs", ou "make mandocs" rendra la documentation dans le format demandé.
INSTALLATION des sources du noyau :
Si vous installez les sources complètes, placez l'archive tarball 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 ce qu'il advient du noyau-du-jour.
Vous pouvez également effectuer une mise à niveau entre les versions 4.x en appliquant des correctifs. Les correctifs sont distribués au format xz. Pour installer par correctif, obtenez tous les fichiers de correctifs les plus récents, entrez dans le répertoire de plus haut 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 plus grandes que 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 assurez-vous 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 voulez 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 du noyau 4.0.2 et voulez passer à 4.0.3, vous devez d'abord inverser le correctif 4.0.2 (c'est-à-dire, patch -R) avant d'appliquer le correctif 4.0.3. Vous pouvez en savoir plus à ce sujet dans Documentation/applying-patches.txt
Sinon, 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 de la commande ci-dessus est l'emplacement des sources du noyau. Les correctifs sont appliqués depuis le répertoire courant, mais un répertoire alternatif peut être spécifié comme deuxième argument.
Assurez-vous de ne pas avoir de fichiers .o obsolètes et de dépendances qui traînent :
cd linux make mrproper
Vous devriez maintenant avoir les sources correctement installées.
PRÉREQUIS LOGICIELS
La compilation et l'exécution des noyaux 4.x nécessitent des versions à jour de divers paquets 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 du fonctionnement.
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 :
code source du noyau : /usr/src/linux-4.X
répertoire de construction : /home/name/build/kernel
Pour configurer et construire le noyau, utilisez :
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 l'être pour toutes les invocations de make.
CONFIGURATION du noyau :
Ne sautez pas cette étape même si vous ne mettez à niveau qu'une seule 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 d'effort, utilisez "make oldconfig", qui ne vous demandera que les réponses aux nouvelles questions.
Les commandes de configuration alternatives sont :
"make config" Interface texte simple.