diff --git a/documentation/linux_configuration.pdf b/documentation/linux_configuration.pdf index a71ab88..827924e 100644 --- a/documentation/linux_configuration.pdf +++ b/documentation/linux_configuration.pdf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8d2ce63926acfaece33a28ff08c609dd3fb6635580d33a99bd04dcd69f9932fb -size 3204350 +oid sha256:bf5bb334bb5a77d7901e3b270aeec296448a9814d48ef1c3024270a1470bf6ca +size 3208217 diff --git a/documentation/linux_configuration_01_general_setup.tex b/documentation/linux_configuration_01_general_setup.tex index 736aaa3..3306c3b 100644 --- a/documentation/linux_configuration_01_general_setup.tex +++ b/documentation/linux_configuration_01_general_setup.tex @@ -478,6 +478,7 @@ CONFIG\_BPF\_LSM [=y] \textbf{[Y]}\\ Ermöglicht die Instrumentierung der Sicherheitshaken mit BPF-Programmen zur Implementierung dynamischer MAC- und Prüfungsrichtlinien. Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollten, antworten Sie mit N. + %1.18 \subsection{Preemption Model (\textcolor{gray}{Preemptible Kernel (Low-Latency Desktop)}) \texorpdfstring{$\rightarrow$}{->}} Eingestellt auf : Low-Latency, d.\,h. nur kleine Verzögerungen beim Modell des Multitaskings. @@ -507,7 +508,23 @@ Wähle diese Einstellung, wenn man einen Desktop oder ein Embedded-System mit ei Millisekundenbereich möchte. Natürlich geht diese Einstellung mit einem leicht geringerem Durchsatz an Rechenleistung einher. -%1.19 Preemption behaviour defined on boot +%1.19 +\subsection{Fully Preemtible Kernel (Real-Time)} +CONFIG\_PREEMPT\_RT [=n] \textbf{[N]}\\* +Mit dieser Option wird der Kernel zu einem Echtzeit-Kernel, indem verschiedene Sperrprimitive (spinlocks, rwlocks usw.) +durch präemptive Varianten mit Prioritätsvererbung ersetzt werden, Interrupt-Threading erzwungen wird und Mechanismen +zur Unterbrechung langer nicht präemptiver Abschnitte eingeführt werden. +Dadurch wird der Kernel mit Ausnahme von sehr einfachen und kritischen Codepfaden (Einstiegscode, Scheduler, +Low-Level-Interrupt-Handling) vollständig preemptibel und bringt die meisten Ausführungskontexte unter die Kontrolle +des Schedulers. +Wählen Sie dies, wenn Sie einen Kernel für Systeme erstellen, die Echtzeitgarantien erfordern. +\english{This option turns the kernel into a real-time kernel by replacing various locking primitives (spinlocks, rwlocks, etc.) with +preemptible priority-inheritance aware variants, enforcing interrupt threading and introducing mechanisms to break up long non-preemptible sections. +This makes the kernel, except for very low level and critical code paths (entry code, scheduler, low level interrupt handling) +fully preemptible and brings most execution contexts under scheduler control.\\ +Select this if you are building a kernel for systems which require real-time guarantees.} + +%1.20 Preemption behaviour defined on boot \subsection{Preemtion behaviour defined on boot} CONFIG\_PREEMPT\_DYNAMIC \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ Diese Option ermöglicht es, das Präemptionsmodell über den @@ -529,7 +546,7 @@ sowohl für Server- als auch für Desktop-Workloads verwendet werden soll. \note{Wir setzen dies nicht, da wir wissen, dass der Kernal für den Desktop kompiliert wird.} -%1.20 Core Scheduling for SMT +%1.21 Core Scheduling for SMT \subsection{Core Scheduling for SMT} CONFIG\_SCHED\_CORE [=y] \textbf{[Y]}\\ Kern-Scheduling für SMT @@ -551,8 +568,16 @@ SCHED\_CORE ist standardmäßig deaktiviert. Wenn es aktiviert und unbenutzt ist bei Linux-Distributionen wahrscheinlich der Fall ist, sollte es keine messbaren Auswirkungen auf die Leistung haben. +\english{This option permits Core Scheduling, a means of coordinated task selection across SMT siblings. +When enabled -- see \texttt{prctl}(PR\_SCHED\_CORE) -- task selection ensures that all SMT siblings +will execute a task from the same `core group', forcing idle when no matching task is found.\\ +Use of this feature includes:\\ + -- mitigation of some (not all) SMT side channels;\\ + -- limiting SMT interference to improve determinism and/or performance.\\ +SCHED\_CORE is default disabled. When it is enabled and unused, which is the likely usage by Linux distributions, +there should be no measurable impact on performance.} -% 1.21 Extensible Scheduling Class (seit 6.11) +% 1.22 Extensible Scheduling Class (seit 6.11) \subsection{Extensible Scheduling Class {\tiny seit 6.12}} CONFIG\_SCHED\_CLASS\_EXT [=y] \textbf{[Y]}\\ Diese Option aktiviert eine neue Scheduler-Klasse sched\_ext (SCX), die es ermöglicht, @@ -593,7 +618,8 @@ which exports function callbacks and flags to BPF programs that wish to implement scheduling policies. The struct\_ops structure exported by sched\_ext is struct sched\_ext\_ops, and is conceptually similar to struct sched\_class.} -%1.22 CPU/Task time and stats accounting + +%1.23 CPU/Task time and stats accounting \subsection{CPU/Task time and stats accounting \texorpdfstring{$\rightarrow$}{->}} \subsubsection{Cputime accounting (Full dynticks CPU time accounting) \texorpdfstring{$\rightarrow$}{->}} @@ -607,7 +633,7 @@ Die Berechnung erfolgt daher auf Kosten eines erheblichen Overheads.\\ Im Moment ist dies nur sinnvoll, wenn Sie an der Entwicklung des vollständigen Dynticks-Subsystems arbeiten. -%1.22.2 +%1.23.2 \subsubsection{Fine granularity task level IRQ time accounting} CONFIG\_IRQ\_TIME\_ACCOUNTING \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ Wählen Sie diese Option aus, um eine fein granulare Berechnung der @@ -701,7 +727,8 @@ Scheduler-Stresstests, wie z.\,B. Hackbench.\\ Wenn Sie paranoid sind und nicht sicher, wofür der Kernel verwendet wird, sagen Sie Y für Ja.\\ Sagen Sie N, wenn Sie unsicher sind. -%1.23 + +%1.24 \subsection{CPU isolation} CONFIG\_CPU\_ISOLATION [=y] \textbf{[Y]}\\ Stellen Sie sicher, dass CPUs, auf denen kritische Aufgaben laufen, @@ -710,9 +737,11 @@ kthreads usw. gestört werden.\\ Ungebundene Aufgaben werden auf Housekeeping"=CPUs verlagert. Dies wird durch den Boot-Parameter \texttt{isolcpus=} gesteuert.\\ Sagen Sie Y für ja, wenn Sie unsicher sind. -%1.24 + +%1.25 \subsection{RCU Subsystem \texorpdfstring{$\rightarrow$}{->}} Read -- Copy -- Update (Lesen, Kopieren, Aktualisieren) + \subsubsection{Make expert-level adjustments to RCU configuration} CONFIG\_RCU\_EXPERT \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ Diese Option muss aktiviert werden, wenn Sie Anpassungen der RCU"=Konfiguration @@ -907,7 +936,8 @@ Diese Option rundet rcutree.rcu\_resched\_ns auf den nächsten Jiffy auf und set die 32-Callback-Batching-Funktion außer Kraft, wenn diese Grenze überschritten wird.\\ Sagen Sie hier Y, wenn Sie eine strengere Durchsetzung des Rückruflimits benötigen.\\ Sagen Sie hier N, wenn Sie unsicher sind. -% 1.25 + +% 1.26 \subsection{Kernel .config support} CONFIG\_IKCONFIG \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ Mit dieser Option kann der gesamte Inhalt der \glqq .config\grqq{}-Datei des Linux-Kernels im @@ -927,6 +957,7 @@ CONFIG\_IKCONFIG\_PROC [=y] \textbf{[Y]}\\ Diese Option ermöglicht den Zugriff auf die Kernelkonfigurationsdatei über /proc/config.gz. +%1.27 \subsection{Enable kernel headers through /sys/kernel/kheaders.tar.xz} CONFIG\_IKHEADERS \colorbox{yellow!80}{[=m] \textbf{[N]}}\\* Diese Option ermöglicht den Zugriff auf die In-Kernel-Header, die während des @@ -938,6 +969,7 @@ geladen werden kann, um Zugriff auf die Header zu erhalten. Ist auch als Modul nicht unbedingt notwendig, wie auch in Debian Bookworm wird dies ausgeschaltet. \end{scriptsize} +%1.28 \subsection{Kernel log buffer size (16 \texorpdfstring{$\Rightarrow$}{=>} 64KB, 17 \texorpdfstring{$\Rightarrow$}{=>} 128KB)} CONFIG\_LOG\_BUF\_SHIFT [=17] \textbf{[17]}\\* Wählen Sie die minimale Größe des Kernel-Protokollpuffers als eine Potenz von 2 aus. @@ -954,6 +986,8 @@ Beispiele:\\ Symbol: LOG\_BUF\_SHIFT\\ Type: Integer (Ganzzahl)\\ Bereich (range): [12 25] + +%1.29 \subsection{CPU kernel log buffer size contribution (13 \texorpdfstring{$\Rightarrow$}{=>} 8 KB, 17 \texorpdfstring{$\Rightarrow$}{=>} 128KB)} CONFIG\_LOG\_BUF\_SHIFT [=12] \textbf{[12]}\\ Diese Option ermöglicht es, die Standardgröße des Ringpuffers entsprechend der Anzahl @@ -980,7 +1014,8 @@ werden kann. Beispiele für Verschiebungswerte und ihre Bedeutung:\\ Symbol: LOG\_CPU\_MAX\_BUF\_SHIFT\\ Type: Integer (Ganzzahl)\\ Bereich (range): [0 21] -%1.29 + +%1.30 \subsection{Printk indexing debugfs interface)} CONFIG\_PRINTK\_INDEX \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ Unterstützung für die Indizierung aller zur Kompilierzeit bekannten @@ -994,7 +1029,8 @@ Es gibt keine zusätzlichen Laufzeitkosten für printk, wenn dies aktiviert ist. \\\begin{scriptsize} Wie bei Debian Bookworm wird diese Indizierung ausgeschaltet. \end{scriptsize} -%1.30 + +%1.31 \subsection{Scheduler features \texorpdfstring{$\rightarrow$}{->}} \textit{(Scheduler-Funktionen)} @@ -1039,7 +1075,8 @@ möglich, den Spielraum zu verringern, indem die Anzahl der Clamp"=Buckets erhöht wird, um den verbrauchten Speicher gegen die Genauigkeit der Laufzeitverfolgung einzutauschen.\\ Im Zweifelsfall sollten Sie den Standardwert verwenden. -%1.31 + +%1.32 \subsection{Memory placement aware NUMA scheduler} CONFIG\_NUMA\_BALANCING [=y] \textbf{[Y]}\\ Diese Option bietet Unterstützung für die automatische @@ -1052,7 +1089,8 @@ Dieses System ist auf UMA"=Systemen inaktiv. CONFIG\_NUMA\_BALANCING\_DEFAULT\_ENABLED [=y] \textbf{[Y]}\\ Wenn diese Option gesetzt ist, wird der automatische NUMA"=Ausgleich aktiviert, wenn das System auf einem NUMA"=Rechner läuft. -%1.32 Control Group support + +%1.33 Control Group support \subsection{Control Group support \texorpdfstring{$\rightarrow$}{->}} CONFIG\_CGROUPS [=y] \textbf{[Y]}\\ (Unterstützung der Kontrollgruppe)\\ @@ -1066,7 +1104,8 @@ oder Geräteisolierung. Isolierung und Ressourcenkontrolle) \end{itemize} Sagen Sie N, wenn Sie unsicher sind. -%1.32.1 + +%1.33.1 \subsubsection{Favor dynamic modification latency reduction by default} CONFIG\_CGROUP\_FAVOR\_DYNMODS [=n] \textbf{[N]}\\ Diese Option aktiviert standardmäßig die Einhängeoption @@ -1075,7 +1114,8 @@ wie Task-Migrationen und Controller-Ein-/Ausschaltungen auf Kosten von Hot-Path-Operationen wie Forks und Exits verteuert.\\ Sagen Sie N, wenn Sie unsicher sind. -%1.32.2 + +%1.33.2 \subsubsection{Memory controller} CONFIG\_MEMCG [=y] \textbf{[Y]}\\ Ermöglicht die Kontrolle über den Speicherbedarf von Tasks in einer cgroup. @@ -1095,7 +1135,7 @@ Von neuen Implementierungen mit v1-Controller wird dringend abgeraten. Please note that feature set of the legacy memory controller is likely going to shrink due to deprecatoin process. New deployments with v1 controller are highly discouraged.} -%1.32.3 +%1.33.3 \subsubsection{IO controller} CONFIG\_BLK\_CGROUP [=y] \textbf{[Y]}\\ Generische Block IO Controller cgroup Schnittstelle. Dies ist die gemeinsame @@ -1114,7 +1154,8 @@ CONFIG\_BFQ\_GROUP\_IOSCHED=y; für die Aktivierung der Drosselungspolitik setzen Sie CONFIG\_BLK\_DEV\_THROTTLING=y.\\ Weitere Informationen finden Sie unter Documentation/admin-guide/cgroup-v1/blkio-controller.rst. -%1.32.4 + +%1.33.4 \subsubsection{CPU controller \texorpdfstring{$\rightarrow$}{->}} CONFIG\_CGROUP\_SCHED [=y] \textbf{[Y]}\\ Diese Funktion ermöglicht es dem CPU-Scheduler, Task"=Gruppen zu erkennen und @@ -1155,7 +1196,7 @@ Weitere Informationen finden Sie unter Documentation/scheduler/sched-rt-group.rs %kann nicht größer sein als die entsprechende auf Task"=Gruppen"=Ebene definierte Klemmung.\\ %Im Zweifelsfall sagen Sie N. -%1.32.5 +%1.33.5 \subsubsection{PIDs controller} CONFIG\_CGROUP\_PIDS [=y] \textbf{[Y]}\\ Erzwingt die Begrenzung der Prozessanzahl im Bereich einer cgroup. Jeder Versuch, mehr @@ -1183,7 +1224,7 @@ So können Sie zum Beispiel die VRAM-Nutzung für Anwendungen im DRM-Subsystem e \english{The DMEM controller allows compatible devices to restrict device memory usage based on the cgroup hierarchy.\\ As an example, it allows you to restrict VRAM usage for applications in the DRM subsystem.} -%1.32.8 Freezer controller +%1.33.8 Freezer controller \subsubsection{Freezer controller} CONFIG\_CGROUP\_FREEZER [=y] \textbf{[Y]}\\ Ermöglicht das Einfrieren und Aufheben des Einfrierens aller Aufgaben in einer C-Group. @@ -1202,7 +1243,7 @@ dass die Anwendung im Voraus weiß, wie viele HugeTLB-Seiten sie für ihre Nutzu Die Kontrollgruppe wird im dritten Page-lru-Zeiger verfolgt. Dies bedeutet, dass wir die Steuergruppe nicht mit einer riesigen Seite von weniger als 3~Seiten verwenden können. -%1.32.10 Cpuset controller +%1.33.10 Cpuset controller \subsubsection{Cpuset controller} CONFIG\_CPUSETS [=y] \textbf{[Y]}\\ Mit dieser Option können Sie CPUSETs erstellen und verwalten, die es ermöglichen, ein System @@ -1226,7 +1267,7 @@ CONFIG\_PROC\_PID\_CPUSET [=y] \textbf{[Y]}\\ \textit{Für diese Option gibt es keine Hilfe.} \english{There is no help available for this option.} -%1.32.11 Device controller +%1.33.11 Device controller \subsubsection{Device controller} CONFIG\_CGROUP\_DEVICE [=y] \textbf{[Y]}\\ Bietet einen cgroup-Controller an, der Whitelists für Geräte implementiert, @@ -1271,7 +1312,7 @@ cgroups"=Frame\-work exportiert. Dieser Controller ist nur für das Debugging vo Seine Schnitt\-stellen sind nicht stabil.\\ Sagen Sie N. -%1.33 Namespaces support +%1.34 Namespaces support \subsection{Namespaces support \texorpdfstring{$\rightarrow$}{->}} CONFIG\_NAMESPACES [=y] \textbf{[Y]}\\ (Unterstützung von Namensräumen, namespaces)\\ @@ -1323,7 +1364,7 @@ zu haben, solange sie sich in verschiedenen pid-Namensräumen befinden. Dies is CONFIG\_NET\_NS [=y] \textbf{[Y]}\\ Ermöglicht es dem Benutzer, scheinbar mehrere Instanzen des Netzwerkstapels zu erstellen. -%1.34 Checkpoint/restore support +%1.35 Checkpoint/restore support \subsection{Checkpoint/restore support} CONFIG\_CHECKPOINT\_RESTORE [=y] \textbf{[Y]}\\ Ermöglicht zusätzliche Kernel-Funktionen in einer Art Checkpoint/Restore. @@ -1334,7 +1375,7 @@ Wenn Sie unsicher sind, geben Sie hier N an. In particular it adds auxiliary prctl codes to setup process text, data and heap segment sizes, and a few additional /proc filesystem entries.\\ If unsure, say N here.} -%1.35 Automatic process group scheduling +%1.36 Automatic process group scheduling \subsection{Automatic process group scheduling} CONFIG\_SCHED\_AUTOGROUP [=y] \textbf{[Y]}\\ Mit dieser Option wird der Scheduler für gängige Desktop"=Workloads optimiert, @@ -1342,7 +1383,7 @@ indem automatisch Aufgabengruppen erstellt und aufgefüllt werden. Diese Trennung von Arbeitslasten isoliert aggressive CPU"=Brenner (wie Build"=Jobs) von Desktop"=Anwendungen. Die automatische Erstellung von Aufgabengruppen basiert derzeit auf der Aufgabensitzung. -%1.36 Kernel -> user space relay support (formerly relayfs) +%1.37 Kernel -> user space relay support (formerly relayfs) \subsection{Kernel\texorpdfstring{$\rightarrow$}{->}user space relay support (formerly relayfs)} CONFIG\_RELAY [=y] \textbf{[Y]}\\ Diese Option aktiviert die Unterstützung für die Relaisschnittstelle in bestimmten Dateisystemen @@ -1350,7 +1391,7 @@ Diese Option aktiviert die Unterstützung für die Relaisschnittstelle in bestim zur Weiterleitung großer Datenmengen aus dem Kernelbereich in den Benutzerbereich bereitzustellen.\\ Wenn Sie unsicher sind, sagen Sie N. -%1.37 Initial RAM filesystem and RAM disk (initramfs/initrd) support +%1.38 Initial RAM filesystem and RAM disk (initramfs/initrd) support \subsection{Initial RAM filesystem and RAM disk (initramfs/initrd) support} CONFIG\_BLK\_DEV\_INITRD [=y] \textbf{[Y]}\\ Das anfängliche RAM-Dateisystem ist ein ramfs, das vom Bootloader (loadlin oder lilo) geladen und vor @@ -1361,7 +1402,8 @@ Wenn die RAM"=Disk"=Unterstützung\\ (BLK\_DEV\_RAM) eben\-falls enthalten ist, aktiviert dies auch die anfängliche RAM"=Disk"=Unterstützung (initrd) und fügt \qty{15}{\kilo\byte} (auf einigen anderen Architekturen mehr) zur Kernelgröße hinzu.\\ Wenn Sie unsicher sind, sagen Sie Y. -%1.37.1 + +%1.38.1 \subsubsection{Initramfs source file(s)} CONFIG\_INITRAMFS\_SOURCE [=] \textbf{[~]}\\ Dies kann entweder ein einzelnes cpio-Archiv mit der Endung .cpio oder eine durch Leerzeichen getrennte @@ -1377,7 +1419,7 @@ für weitere Details.\\ Wenn Sie sich nicht sicher sind, lassen Sie das Feld leer.\\ Symbol: INITRAMFS\_SOURCE [=]\\ Type : string (Zeichenkette) -%1.37.2 Support initial ramdisk/ramfs compressed using gzip +%1.38.2 Support initial ramdisk/ramfs compressed using gzip \subsubsection{Support initial ramdisk/ramfs compressed using gzip} CONFIG\_RD\_GZIP \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ Unterstützung des Ladens eines gzip-kodierten Anfangs-Ramdisk- @@ -1424,22 +1466,26 @@ oder Cpio-Puffers.\\ Wenn Sie unsicher sind, sagen Sie Y. \note{Seit dem Kernel 5.9 wird standardmäßig mit ZSTD komprimiert.} -%1.37.8 Support initial ramdisk/ramfs compressed using ZSTD +%1.38.8 Support initial ramdisk/ramfs compressed using ZSTD \subsubsection{Support initial ramdisk/ramfs compressed using ZSTD} CONFIG\_RD\_ZSTD [=y] \textbf{[Y]}\\ Unterstützung des Ladens eines ZSTD-kodierten Anfangs-Ramdisk- oder Cpio-Puffers.\\ Wenn Sie unsicher sind, sagen Sie Y. -%1.38 Boot config support +%1.39 Boot config support \subsection{Boot config support} CONFIG\_BOOT\_CONFIG [=y] \textbf{[Y]}\\ Extra boot config ermöglicht es dem Systemadministrator, eine Konfigurationsdatei als zusätzliche Erweiterung der Kernel-Cmdline beim Booten zu übergeben. -Die Bootkonfigurationsdatei muss am Ende von \mbox{initramfs} mit Prüfsumme, Größe und +Die Bootkonfigurationsdatei muss am Ende von \texttt{initramfs} mit Prüfsumme, Größe und magischem Wort angehängt werden.\\ Siehe $<$file:Documentation/admin-guide/bootconfig.rst$>$ für Details.\\ Wenn Sie unsicher sind, sagen Sie Y. +\english{Extra boot config allows system admin to pass a config file as complemental extension of kernel cmdline when booting. +The boot config file must be attached at the end of initramfs with checksum, size and magic word. +See $<$file:Documentation/admin-guide/bootconfig.rst$>$ for details. +If unsure, say Y.} \subsubsection{Force unconditional bootconfig processing} CONFIG\_BOOT\_CONFIG\_FORCE [=n] \textbf{[N]}\\ @@ -1457,7 +1503,7 @@ jedoch initrd nicht unterstützt, hilft Ihnen diese Option, indem sie eine bootc beim Erstellen des Kernels einbettet.\\ Wenn Sie unsicher sind, sagen Sie N. -%1.39 Preserve cpio archive mtimes in initramfs +%1.40 Preserve cpio archive mtimes in initramfs \subsection{Preserve cpio archive mtimes in initramfs} CONFIG\_INITRAMFS\_PRESERVE\_MTIME [=y] \textbf{[Y]}\\ Jeder Eintrag in einem initramfs cpio-Archiv enthält einen mtime-Wert. @@ -1466,7 +1512,7 @@ wobei die mtime-Einstellung des Verzeichnisses aufgeschoben wird, bis nach der Erstellung aller untergeordneten Einträge.\\ Wenn Sie unsicher sind, sagen Sie Y. -%1.40 Compiler optimization level +%1.41 Compiler optimization level \subsection{Compiler optimization level \texorpdfstring{$\rightarrow$}{->}} Optimierungsgrad des Compilers, Auswahl aus den folgenden zwei Punkten: @@ -1481,7 +1527,7 @@ CONFIG\_CC\_OPTIMIZE\_FOR\_SIZE [=n] \textbf{[N]}\\ Wenn Sie diese Option wählen, wird \texttt{-Os} an Ihren Compiler übergeben, was zu einem kleineren Kernel führt. -%1.41 Configure standard kernel features (expert users) +%1.42 Configure standard kernel features (expert users) \subsection{Configure standard kernel features (expert users)} CONFIG\_EXPERT \colorbox{yellow!80}{[=n] \textbf{[Y]}}\\ Mit dieser Option können bestimmte Basis-Kerneloptionen und -einstellungen @@ -1489,13 +1535,13 @@ deaktiviert oder optimiert werden. Dies ist für spezielle Umgebungen gedacht, die einen \glqq Nicht-Standard\grqq{}-Kernel tolerieren können.\\ Verwenden Sie diese Option nur, wenn Sie wirklich wissen, was Sie tun. -%1.41.1 Enable 16-bit UID system calls +%1.42.1 Enable 16-bit UID system calls \subsubsection{Enable 16-bit UID system calls} CONFIG\_UID16 [=y] \textbf{[Y]}\\ Damit werden die alten 16-Bit-UID-Syscall-Wrapper aktiviert. \english{This enables the legacy 16-bit UID syscall wrappers.} -%1.41.2 Multiple users, groups and capabilities support +%1.42.2 Multiple users, groups and capabilities support \subsubsection{Multiple users, groups and capabilities support} CONFIG\_MULTIUSER [=y] \textbf{[Y]}\\ Diese Option aktiviert die Unterstützung für Nicht-Root-Benutzer, -Gruppen und -Fähigkeiten. @@ -1513,7 +1559,7 @@ Wenn Sie unsicher sind, sagen Sie hier Y. If unsure, say Y here.} \note{Dies wäre nur auf kleinen Systemen ohne Benutzer sinnvoll, auf N zu stellen.} -%1.41.3 sgetmask/ssetmask syscalls support +%1.42.3 sgetmask/ssetmask syscalls support \subsubsection{sgetmask/ssetmask syscalls support} CONFIG\_SGETMASK\_SYSCALL [=y] \textbf{[Y]}\\ sys\_sgetmask und sys\_ssetmask sind veraltete Systemaufrufe, die @@ -1525,7 +1571,7 @@ Wenn Sie unsicher sind, lassen Sie die Standardoption hier. } \note{Eventuell könnten wir dies auf N stellen.} -%1.41.4 Sysfs syscall support +%1.42.4 Sysfs syscall support \subsubsection{Sysfs syscall support} CONFIG\_SYSFS\_SYSCALL \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ sys\_sysfs ist ein veralteter Systemaufruf, der von der libc nicht mehr unterstützt wird. @@ -1539,7 +1585,7 @@ Wenn Sie unsicher sind, sagen Sie hier Y. } \note{Eventuell könnten wir dies auf N stellen.} -%1.41.5 open by fhandle syscalls +%1.42.5 open by fhandle syscalls \subsubsection{open by fhandle syscalls} CONFIG\_FHANDLE {[=y] \textbf{[Y]}}\\ Wenn Sie hier Y angeben, kann ein Programm auf Benutzerebene Dateinamen auf Handles @@ -1555,7 +1601,7 @@ Ermöglicht open\_by\_handle\_at(2) und name\_to\_handle\_at(2) Syscalls. The handle would remain the same even if file names get renamed. Enables open\_by\_handle\_at(2) and name\_to\_handle\_at(2) syscalls.} -%1.41.6 Posix Clocks \& timers +%1.42.6 Posix Clocks \& timers \subsubsection{Posix Clocks \& timers} CONFIG\_POSIX\_TIMERS [=y] \textbf{[Y]}\\ Dazu gehört die native Unterstützung für POSIX-Timer im Kernel. @@ -1579,7 +1625,7 @@ Wenn Sie unsicher sind, sagen Sie y. CLOCK\_REALTIME, CLOCK\_MONOTONIC and CLOCK\_BOOTTIME only.\\ If unsure say y.} -%1.41.7 Enable support for printk +%1.42.7 Enable support for printk \subsubsection{Enable support for printk} CONFIG\_PRINTK [=y] \textbf{[Y]}\\ Diese Option aktiviert die normale printk-Unterstützung. @@ -1593,7 +1639,7 @@ wird von der Angabe von N hier dringend abgeraten. As this makes it very difficult to diagnose system problems, saying N here is strongly discouraged.} -%1.41.8 BUG() support +%1.42.8 BUG() support \subsubsection{BUG() support} CONFIG\_BUG [=y] \textbf{[Y]}\\ Durch die Deaktivierung dieser Option wird die Unterstützung für BUG und WARN eliminiert, @@ -1606,19 +1652,19 @@ die keine Möglichkeit haben, Fehler zu melden.\\Sagen Sie einfach Y. You should only consider disabling this option for embedded systems with no facilities for reporting errors.\\Just say Y.} -%1.41.9 Enable ELF core dumps +%1.42.9 Enable ELF core dumps \subsubsection{Enable ELF core dumps} CONFIG\_ELF\_CORE [=y] \textbf{[Y]}\\ Aktivieren Sie die Unterstützung für die Erzeugung von Kerndumps. Die Deaktivierung spart etwa 4k. \english{Enable support for generating core dumps. Disabling saves about 4k.} -%1.41.10 Enable PC-Speaker support +%1.42.10 Enable PC-Speaker support \subsubsection{Enable PC-Speaker support} CONFIG\_PCSPKR\_PLATFORM \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ Mit dieser Option können Sie die Unterstützung des internen PC-Lautsprechers deaktivieren, um Speicherplatz zu sparen. \english{This option allows to disable the internal PC speaker support, saving some memory.} -%1.41.11 Enable smaller-sized data structures for core (NEW) +%1.42.11 Enable smaller-sized data structures for core (NEW) \subsubsection{Enable smaller-sized data structures for core (NEW)} CONFIG\_BASE\_SMALL [=n] \textbf{[N]}\\ Wenn Sie diese Option aktivieren, wird die Größe verschiedener Kernel-Datenstrukturen reduziert. @@ -1626,7 +1672,7 @@ Dies spart Speicher auf kleinen Rechnern, kann aber die Leistung verringern. \english{Enabling this option reduces the size of miscellaneous core kernel data structures. This saves memory on small machines, but may reduce performance.} -%1.41.12 Enable futex support +%1.42.12 Enable futex support \subsubsection{Enable futex support} CONFIG\_FUTEX [=y] \textbf{[Y]}\\ Die Deaktivierung dieser Option führt dazu, dass der Kernel ohne Unterstützung für \glqq schnelle Userspace-Mutexe\grqq{} @@ -1635,14 +1681,14 @@ Der resultierende Kernel führt möglicherweise glibc-basierte Anwendungen nicht \english{Disabling this option will cause the kernel to be built without support for ``fast userspace mutexes''. The resulting kernel may not run glibc-based applications correctly.} -%1.41.13 Enable eventpoll support +%1.42.13 Enable eventpoll support \subsubsection{Enable eventpoll support} CONFIG\_EPOLL [=y] \textbf{[Y]}\\ Die Deaktivierung dieser Option führt dazu, dass der Kernel ohne Unterstützung für die epoll-Familie von Systemaufrufen gebaut wird. \english{Disabling this option will cause the kernel to be built without support for epoll family of system calls.} -%1.41.14 Enable signalfd() system call +%1.42.14 Enable signalfd() system call \subsubsection{Enable signalfd() system call} CONFIG\_SIGNALFD [=y] \textbf{[Y]}\\ Aktivieren Sie den Systemaufruf signalfd(), der den Empfang von Signalen auf einem Datei\-deskriptor ermöglicht.\\[0.5em] @@ -1650,7 +1696,7 @@ Wenn Sie unsicher sind, sagen Sie Y. \english{Enable the signalfd() system call that allows to receive signals on a file descriptor.\\ If unsure, say Y.} -%1.41.15 Enable timerfd() system call +%1.42.15 Enable timerfd() system call \subsubsection{Enable timerfd() system call} CONFIG\_TIMERFD [=y] \textbf{[Y]}\\ Aktivieren Sie den Systemaufruf timerfd(), der den Empfang von Timer-Ereignissen auf einem Datei\-deskriptor ermöglicht.\\[0.5em] @@ -1658,7 +1704,7 @@ Wenn Sie unsicher sind, sagen Sie Y. \english{Enable the timerfd() system call that allows to receive timer events on a file descriptor.\\ If unsure, say Y.} -%1.41.16 Enable eventfd() system call +%1.42.16 Enable eventfd() system call \subsubsection{Enable eventfd() system call} CONFIG\_EVENTFD [=y] \textbf{[Y]}\\ Aktivieren Sie den Systemaufruf eventfd(), der es ermöglicht, sowohl Kernel-Benachrichtigungen (z. B. KAIO) @@ -1667,7 +1713,7 @@ Wenn Sie unsicher sind, sagen Sie Y. \english{Enable the eventfd() system call that allows to receive both kernel notification (ie. KAIO) or userspace notifications.\\ If unsure, say Y.} -%1.41.17 Use full shmem filesystem +%1.42.17 Use full shmem filesystem \subsubsection{Use full shmem filesystem} CONFIG\_SHMEM [=y] \textbf{[Y]}\\ Das shmem ist ein internes Dateisystem, das zur Verwaltung des gemeinsamen Speichers verwendet wird. @@ -1681,7 +1727,7 @@ der auf kleinen Systemen ohne Swap geeignet sein kann. Disabling this option replaces shmem and tmpfs with the much simpler ramfs code, which may be appropriate on small systems without swap.} -%1.41.18 Enable AIO support +%1.42.18 Enable AIO support \subsubsection{Enable AIO support} CONFIG\_AIO [=y] \textbf{[Y]}\\ Diese Option aktiviert die asynchrone POSIX-E/A, die von einigen Hochleistungs-Thread-Anwendungen verwendet werden kann. @@ -1689,7 +1735,7 @@ Die Deaktivierung dieser Option spart etwa 7k. \english{This option enables POSIX asynchronous I/O which may by used by some high performance threaded applications. Disabling this option saves about 7k.} -%1.41.19 Enable IO uring support +%1.42.19 Enable IO uring support \subsubsection{Enable IO uring support} CONFIG\_IO\_URING [=y] \textbf{[Y]}\\ Diese Option aktiviert die Unterstützung für die io\_uring-Schnittstelle, die es Anwendungen ermöglicht, @@ -1698,7 +1744,7 @@ die von Kernel und Anwendung gemeinsam genutzt werden. \english{This option enables support for the io\_uring interface, enabling applications to submit and complete IO through submission and completion rings that are shared between the kernel and application.} -%1.42 Enable madvice/fadvise syscalls +%1.43 Enable madvice/fadvise syscalls \subsection{Enable madvise/fadvise syscalls} CONFIG\_ADVISE\_SYSCALLS [=y] \textbf{[Y]}\\ Diese Option aktiviert die Syscalls madvise und fadvise, @@ -1711,7 +1757,7 @@ können Sie diese Option deaktivieren, um Platz zu sparen. If building an embedded system where no applications use these syscalls, you can disable this option to save space.} -%1.43 Enable membarrier() system call +%1.44 Enable membarrier() system call \subsection{Enable membarrier() system call} CONFIG\_MEMBARRIER [=y] \textbf{[Y]}\\ Aktivieren Sie den Systemaufruf membarrier(), der die Ausgabe von Speicherbarrieren für alle laufenden Threads ermöglicht. @@ -1723,7 +1769,7 @@ Wenn Sie unsicher sind, sagen Sie Y. pairs of memory barriers into pairs consisting of membarrier() and a compiler barrier.\\ If unsure, say Y.} -%1.44 Enable kcmp() system call +%1.45 Enable kcmp() system call \subsection{Enable kcmp() system call} CONFIG\_KCMP [=y] \textbf{[Y]}\\ Aktivieren Sie den Systemaufruf Kernel-Ressourcenvergleich. @@ -1736,7 +1782,7 @@ Wenn Sie unsicher sind, sagen Sie N. such as a file descriptor or even virtual memory space.\\ If unsure, say N.} -%1.45 Enable rseq() system call +%1.46 Enable rseq() system call \subsection{Enable rseq() system call} CONFIG\_RSEQ [=y] \textbf{[Y]}\\ Aktivieren Sie den Systemaufruf \glqq Neustartbare Sequenzen\grqq{}. @@ -1748,7 +1794,7 @@ Wenn Sie unsicher sind, sagen Sie Y. CPU~number from user-space, as well as an ABI to speed up user-space operations on per-CPU data.\\ If unsure, say Y.} -%1.45.1 Enable debugging of rseq() system call (NEW) +%1.46.1 Enable debugging of rseq() system call (NEW) \subsubsection{Enable debugging of rseq() system call (NEW)} CONFIG\_DEBUG\_RSEQ [=n] \textbf{[N]}\\ Aktivieren Sie zusätzliche Debugging-Prüfungen für den Systemaufruf rseq.\\[.5em] @@ -1756,7 +1802,7 @@ Wenn Sie unsicher sind, sagen Sie N. \english{Enable extra debugging checks for the rseq system call.\\ If unsure, say N.} -%1.46 Enable cachestat() system call +%1.47 Enable cachestat() system call \subsection{Enable cachestat() system call} CONFIG\_CACHESTAT\_SYSCALL [=y] \textbf{[Y]}\\ Aktivieren Sie den Systemaufruf cachestat, der die Seiten-Cache-Statistiken einer Datei abfragt @@ -1775,7 +1821,7 @@ Aktivieren Sie diese Option, wenn Ihr Zielrechner über einen PC/104-Bus verfüg \english{Expose PC/104 form factor device drivers and options available for selection and configuration. Enable this option if your target machine has a PC/104 bus.} -%1.48 Load all symbols for debugging/ksymoops +%1.49 Load all symbols for debugging/ksymoops \subsection{Load all symbols for debugging/ksymoops} CONFIG\_KALLSYMS [=y] \textbf{[Y]}\\ (sichtbar wenn EXPERT [=y])\\ @@ -1785,7 +1831,7 @@ da alle Symbole in das Kernel-Image geladen werden müssen. \english{Say Y here to let the kernel print out symbolic crash information and symbolic stack backtraces. This increases the size of the kernel somewhat, as all symbols have to be loaded into the kernel image.} -%1.48.1 +%1.49.1 \subsubsection{Test the basic functions and performance of kallsyms} CONFIG\_KALLSYMS\_SELFTEST [=n] \textbf{[N]}\\ Testen Sie die Grundfunktionen und die Leistung einiger Schnittstellen, wie z.\,B. @@ -1811,7 +1857,7 @@ kann sie \qty{300}{\kibi\byte} oder etwas Ähnliches betragen).\\ Sagen Sie N, es sei denn, Sie brauchen wirklich alle Symbole, oder Kernel-Live-Patching. -%1.49 +%1.50 \subsection{Kernel Performance Events And Counters \texorpdfstring{$\rightarrow$}{->}} Kernel"=Leistungsereignisse und -Zähler @@ -1843,13 +1889,29 @@ Verwendung von vmalloc-Speicher zur Sicherung von mmap()-Puffern. Hauptsächlich nützlich zum Debuggen des vmalloc"=Codes auf Plattformen, die dies nicht erfordern. Sagen Sie N, wenn Sie unsicher sind. +%1.51 \subsection{Profiling support} CONFIG\_PROFILING [=y] \textbf{[Y]}\\ Sagen Sie hier Y, um die erweiterten Unterstützungsmechanismen für das Profiling zu aktivieren, die von Profilern verwendet werden. +%1.52 +\subsection{Rust support} +CONFIG\_RUST [=y] \textbf{[Y]}\\* +Aktiviert die Rust-Unterstützung im Kernel.\\ +Dies ermöglicht die Auswahl anderer Rust-bezogener Optionen, wie z.\,B. in Rust geschriebene Treiber.\\ +Es ist auch erforderlich, um externe, in Rust geschriebene Kernel-Module laden zu können.\\ +Siehe \texttt{Dokumentation/rust/} für weitere Informationen.\\ +Wenn Sie unsicher sind, sagen Sie N. +\english{Enables Rust support in the kernel.\\ +This allows other Rust-related options, like drivers written in Rust, to be selected.\\ +It is also required to be able to load external kernel modules written in Rust.\\ +See \texttt{Documentation/rust/} for more information.\\ +If unsure, say N.} + +%1.53 \subsection{Kexec and crash features \texorpdfstring{$\rightarrow$}{->}} -Kexec und Absturzmerkmale +\textit{Kexec und Absturzmerkmale} \subsubsection{Enable kexec system call} CONFIG\_KEXEC [=y] \textbf{[Y]}\\