
Arborescence source du noyau Linux 3.0.35 avec un accent sur CVE-2019-10220, fournissant une référence pour l'analyse de vulnérabilités et la recherche d'exploitation.
Linux kernel release 3.x http://kernel.org/
Ce sont les notes de version pour Linux version 3. Lisez-les attentivement, car elles vous expliquent de quoi il s'agit, comment installer le noyau, et que 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é avec POSIX et la 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 copy-on-write, une gestion mémoire appropriée, et un réseau multi-piles incluant IPv4 et IPv6.
Il est distribué sous la licence GNU General Public License - voir le fichier COPYING ci-joint 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 (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 à usage général tant 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 également été porté sur lui-même. Vous pouvez maintenant exécuter le noyau comme une application en 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 générales UNIX. Je vous recommande de consulter les sous-répertoires de documentation sur tout 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 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 à niveau 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, & pages de manuel, entre autres. Après installation, "make psdocs", "make pdfdocs", "make htmldocs", ou "make mandocs" générera la documentation dans le format demandé.
INSTALLATION du source du noyau :
Si vous installez les sources complètes, placez l'archive tar du noyau dans un répertoire où vous avez les permissions (par exemple votre répertoire personnel) et décompressez-le :
gzip -cd linux-3.X.tar.gz | tar xvf -
ou bzip2 -dc linux-3.X.tar.bz2 | tar xvf -
Remplacez "XX" par le numéro de version du noyau le plus récent.
N'utilisez PAS la zone /usr/src/linux ! Cette zone contient un ensemble (généralement incomplet) d'en-têtes du noyau utilisé par les fichiers d'en-tête des bibliothèques. Ils doivent correspondre à la bibliothèque, et ne doivent pas être perturbés par ce qu'est le noyau-du-jour.
Vous pouvez également effectuer une mise à niveau entre les versions 3.x par patching. Les patches sont distribués au format traditionnel gzip et au format plus récent bzip2. Pour installer par patching, obtenez tous les fichiers de patch plus récents, entrez dans le répertoire de plus haut niveau des sources du noyau (linux-3.x) et exécutez :
gzip -cd ../patch-3.x.gz | patch -p1
ou bzip2 -dc ../patch-3.x.bz2 | patch -p1
(répétez xx pour toutes les versions supérieures à la version de votre arbre source actuel, dans_l'ordre) et tout devrait être ok. Vous voudrez peut-être supprimer les fichiers de sauvegarde (xxx~ ou xxx.orig), et vous assurer qu'il n'y a pas de patches échoués (xxx# ou xxx.rej). S'il y en a, soit vous soit moi avons commis une erreur.
Contrairement aux patches pour les noyaux 3.x, les patches pour les noyaux 3.x.y (également appelés noyaux -stable) ne sont pas incrémentiels mais s'appliquent directement au noyau de base 3.x. Veuillez lire Documentation/applying-patches.txt pour plus d'informations.
Alternativement, le script patch-kernel peut être utilisé pour automatiser ce processus. Il détermine la version actuelle du noyau et applique tous les patches trouvés.
linux/scripts/patch-kernel linux
Le premier argument de la commande ci-dessus est l'emplacement du source du noyau. Les patches sont appliqués depuis le répertoire courant, mais un répertoire alternatif peut être spécifié comme second argument.
Si vous effectuez une mise à niveau entre les versions en utilisant les patches de la série stable (par exemple, patch-3.x.y), notez que ces "dot-releases" ne sont pas incrémentiels et doivent être appliqués à l'arbre de base 3.x. Par exemple, si votre noyau de base est 3.0 et que vous voulez appliquer le patch 3.0.3, vous n'appliquez pas et ne devez surtout pas appliquer d'abord les patches 3.0.1 et 3.0.2. De même, si vous utilisez la version de noyau 3.0.2 et que vous voulez passer à 3.0.3, vous devez d'abord annuler le patch 3.0.2 (c'est-à-dire patch -R) avant d'appliquer le patch 3.0.3. Vous pouvez en lire plus à ce sujet dans Documentation/applying-patches.txt
Assurez-vous de n'avoir aucun fichier .o obsolète ni dépendances qui traînent :
cd linux
make mrproper
Vous devriez maintenant avoir les sources correctement installées.
CONFIGURATION LOGICIELLE REQUISE
La compilation et l'exécution des noyaux 3.x nécessitent des versions à jour de divers logiciels. Consultez Documentation/Changes pour les numéros de version minimum requis et comment obtenir des mises à jour de ces logiciels. Attention, l'utilisation de versions trop anciennes de ces logiciels peut provoquer des erreurs indirectes très difficiles à localiser, ne supposez donc pas que vous pouvez simplement mettre à jour les packages 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 les sources 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 : source du noyau : /usr/src/linux-3.N répertoire de construction : /home/name/build/kernel
Pour configurer et construire le noyau, utilisez : cd /usr/src/linux-3.N 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 :