
Linux-Kernel 4.1.15-Quellbaum mit einem Patch für CVE-2022-45934, eine Use-after-Free-Schwachstelle im Netfilter-Subsystem, zur Analyse und zum Testen.
Linux-Kernel-Release 4.x http://kernel.org/
Dies sind die Versionshinweise für Linux-Version 4. Lesen Sie sie sorgfältig durch, da sie Ihnen erklären, worum es geht, wie der Kernel installiert wird, und was zu tun ist, wenn etwas schiefgeht.
WAS IST LINUX?
Linux ist ein Klon des Betriebssystems Unix, der von Grund auf von Linus Torvalds mit Hilfe einer losen Gruppe von Hackern aus dem Internet geschrieben wurde. Es zielt auf die Einhaltung von POSIX und der Single UNIX Specification ab.
Es verfügt über alle Funktionen, die Sie von einem modernen, voll ausgestatteten Unix erwarten, einschließlich echtem Multitasking, virtuellem Speicher, Shared Libraries, Demand Loading, Shared Copy-on-Write-Executables, ordnungsgemäßer Speicherverwaltung, und Multistack-Netzwerken einschließlich IPv4 und IPv6.
Es wird unter der GNU General Public License vertrieben – siehe die beigefügte Datei COPYING für weitere Details.
AUF WELCHER HARDWARE LÄUFT ES?
Obwohl ursprünglich für 32-Bit-x86-basierte PCs (386 oder höher) entwickelt, läuft Linux heute auch auf (mindestens) den Architekturen Compaq Alpha AXP, Sun SPARC und 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 und Renesas M32R.
Linux ist leicht auf die meisten gängigen 32- oder 64-Bit-Architekturen portierbar, solange sie eine ausgelagerte Speicherverwaltungseinheit (PMMU) und eine Portierung des GNU C Compilers (gcc) (Teil der GNU Compiler Collection, GCC) besitzen. Linux wurde auch auf eine Reihe von Architekturen ohne PMMU portiert, wobei die Funktionalität dann offensichtlich etwas eingeschränkt ist. Linux wurde auch auf sich selbst portiert. Sie können den Kernel jetzt als Userspace-Anwendung ausführen – dies wird als UserMode Linux (UML) bezeichnet.
DOKUMENTATION:
Es gibt eine Vielzahl von Dokumentationen sowohl in elektronischer Form im Internet als auch in Büchern, sowohl Linux-spezifisch als auch zu allgemeinen UNIX-Fragen. Ich empfehle, in den Dokumentationsunterverzeichnissen auf einer beliebigen Linux-FTP-Site nach den LDP-Büchern (Linux Documentation Project) zu suchen. Diese README ist nicht als Systemdokumentation gedacht: Es gibt viel bessere Quellen.
Im Unterverzeichnis Documentation/ gibt es verschiedene README-Dateien: Diese enthalten normalerweise kernel-spezifische Installationshinweise für einige Treiber. Siehe Documentation/00-INDEX für eine Liste dessen, was in jeder Datei enthalten ist. Bitte lesen Sie die Datei Changes, da sie Informationen über die Probleme enthält, die durch ein Upgrade Ihres Kernels auftreten können.
Das Unterverzeichnis Documentation/DocBook/ enthält mehrere Anleitungen für Kernel-Entwickler und -Benutzer. Diese Anleitungen können in einer Reihe von Formaten ausgegeben werden: PostScript (.ps), PDF, HTML und Man-Seiten, unter anderem. Nach der Installation rendern "make psdocs", "make pdfdocs", "make htmldocs", oder "make mandocs" die Dokumentation im gewünschten Format.
INSTALLATION DER KERNELQUELLEN:
Wenn Sie die vollständigen Quellen installieren, legen Sie das Kernel-Tarball in ein Verzeichnis, für das Sie Berechtigungen haben (z. B. Ihr Home-Verzeichnis) und entpacken Sie es:
xz -cd linux-4.X.tar.xz | tar xvf -
Ersetzen Sie "X" durch die Versionsnummer des neuesten Kernels.
Verwenden Sie NICHT das Verzeichnis /usr/src/linux! In diesem Bereich befindet sich ein (normalerweise unvollständiger) Satz von Kernel-Headern, die von den Bibliotheks-Header-Dateien verwendet werden. Sie sollten mit der Bibliothek übereinstimmen und nicht durch das, was der Kernel-des-Tages gerade ist, durcheinandergebracht werden.
Sie können auch zwischen 4.x-Releases durch Patchen upgraden. Patches werden im xz-Format verteilt. Um per Patchen zu installieren, holen Sie sich alle neueren Patch-Dateien, wechseln Sie in das oberste Verzeichnis der Kernelquellen (linux-4.X) und führen Sie aus:
xz -cd ../patch-4.x.xz | patch -p1
Ersetzen Sie "x" für alle Versionen, die größer sind als die Version "X" Ihres aktuellen Quellbaums, der Reihe nach, und alles sollte in Ordnung sein. Sie möchten möglicherweise die Sicherungsdateien entfernen (some-file-name~ oder some-file-name.orig) und sicherstellen, dass keine fehlgeschlagenen Patches vorhanden sind (some-file-name# oder some-file-name.rej). Falls doch, haben entweder Sie oder ich einen Fehler gemacht.
Im Gegensatz zu Patches für die 4.x-Kernel sind Patches für die 4.x.y-Kernel (auch als -stable-Kernel bezeichnet) nicht inkrementell, sondern werden direkt auf den Basis-4.x-Kernel angewendet. Wenn Ihr Basiskernel z. B. 4.0 ist und Sie den 4.0.3-Patch anwenden möchten, müssen Sie nicht zuerst die 4.0.1- und 4.0.2-Patches anwenden. Wenn Sie Kernel-Version 4.0.2 ausführen und zu 4.0.3 springen möchten, müssen Sie zuerst den 4.0.2-Patch rückgängig machen (d. h. patch -R) bevor Sie den 4.0.3-Patch anwenden. Mehr dazu finden Sie in Documentation/applying-patches.txt
Alternativ kann das Skript patch-kernel verwendet werden, um diesen Prozess zu automatisieren. Es ermittelt die aktuelle Kernel-Version und wendet alle gefundenen Patches an.
linux/scripts/patch-kernel linux
Das erste Argument im obigen Befehl ist der Speicherort der Kernelquellen. Patche werden aus dem aktuellen Verzeichnis angewendet, aber ein alternatives Verzeichnis kann als zweites Argument angegeben werden.
Stellen Sie sicher, dass sich keine veralteten .o-Dateien und Abhängigkeiten herumtreiben:
cd linux make mrproper
Sie sollten jetzt die Quellen korrekt installiert haben.
SOFTWAREANFORDERUNGEN
Das Kompilieren und Ausführen der 4.x-Kernel erfordert aktuelle Versionen verschiedener Softwarepakete. Konsultieren Sie Documentation/Changes für die erforderlichen Mindestversionsnummern und wie Sie Updates für diese Pakete erhalten. Beachten Sie, dass die Verwendung extrem alter Versionen dieser Pakete indirekte Fehler verursachen kann, die sehr schwer aufzuspüren sind. Gehen Sie also nicht davon aus, dass Sie Pakete einfach aktualisieren können, wenn während des Builds oder des Betriebs offensichtliche Probleme auftreten.
BUILD-VERZEICHNIS FÜR DEN KERNEL:
Beim Kompilieren des Kernels werden alle Ausgabedateien standardmäßig zusammen mit dem Kernel-Quellcode gespeichert. Mit der Option "make O=output/dir" können Sie einen alternativen Speicherort für die Ausgabedateien (einschließlich .config) angeben. Beispiel:
Kernel-Quellcode: /usr/src/linux-4.X
Build-Verzeichnis: /home/name/build/kernel
So konfigurieren und bauen Sie den Kernel:
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
Bitte beachten: Wenn die Option 'O=output/dir' verwendet wird, muss sie für alle Aufrufe von make verwendet werden.
KONFIGURATION DES KERNELS:
Überspringen Sie diesen Schritt nicht, auch wenn Sie nur eine Nebenversion upgraden. In jeder Version werden neue Konfigurationsoptionen hinzugefügt, und es treten seltsame Probleme auf, wenn die Konfigurationsdateien nicht wie erwartet eingerichtet sind. Wenn Sie Ihre vorhandene Konfiguration mit minimalem Aufwand auf eine neue Version übertragen möchten, verwenden Sie "make oldconfig", das Sie nur nach den Antworten auf neue Fragen fragt.
Alternative Konfigurationsbefehle sind:
"make config" Nur-Text-Oberfläche.
"make menuconfig" Textbasierte Farbmenüs, Radiolisten & Dialoge.
"make nconfig" Verbesserte textbasierte Farbmenüs.
"make xconfig" X Windows (Qt) basiertes Konfigurationstool.
"make gconfig" X Windows (Gtk) basiertes Konfigurationstool.