UPD general setup, some fixes, add english TODO

This commit is contained in:
2025-04-12 21:43:23 +02:00
parent eecd271634
commit 5b7797058c
6 changed files with 890 additions and 1235 deletions

View File

@@ -10,6 +10,11 @@ können (oder selbst wenn sie geladen werden können, können sie aufgrund
fehlender Hardware-Unterstützung nicht verwendet werden), möchten
Entwickler, im Gegensatz zu Distributoren, solche Treiber vielleicht
trotzdem kompilieren und testen.
\english{Some drivers can be compiled on a different platform than they are intended to be run on.
Despite they cannot be loaded there (or even when they load they cannot be used due to missing HW support),
developers still, opposing to distributors, might want to build such drivers to compile-test them.
If you are a developer and want to build everything available, say Y here.
If you are a user/distributor, say N here to exclude useless drivers to be distributed.}
\subsection{Compile the kernel with warnings as errors}
CONFIG\_WERROR \colorbox{yellow!80}{[=n] \textbf{[Y]}}\\
@@ -22,9 +27,14 @@ sinnvoll, wenn Sie einen neuen (oder sehr alten) Compiler bzw. Linker
mit seltenen, ungewöhnlichen Warnungen haben. Haben Sie auf Ihrer
Architektur Probleme, dann müssen Sie diese Konfiguration deaktivieren,
um den Kernel erfolgreich zu bauen. Im Zweifelsfall sagen sie Y für Ja.
\\\begin{scriptsize}
Für den Laptop wird der Kernel ohne Warnungen kompiliert, ansonsten wird ein Fehler generiert.
\end{scriptsize}
\english{A kernel build should not cause any compiler warnings, and this enables the `-Werror' (for C)
and `-Dwarnings' (for Rust) flags to enforce that rule by default.
Certain warnings from other tools such as the linker may be upgraded to errors with this option as well.\\
However, if you have a new (or very old) compiler or linker with odd and unusual warnings,
or you have some architecture with problems, you may need to disable this config option
in order to successfully build the kernel.\\
If in doubt, say Y.}
\note{Für den Laptop wird der Kernel ohne Warnungen kompiliert, ansonsten wird ein Fehler generiert.}
\subsection{Local version -- append to kernel release}
CONFIG\_LOCALVERSION [=] \textbf{[~]}\\
@@ -36,6 +46,11 @@ Dies wird angezeigt, wenn Sie z.\,B. \texttt{uname} eingeben. Die hier
angegebene Zeichenfolge wird an den Inhalt von einem Dateinamen mit
\texttt{localverion*} als Objekt und im Quellbaum, in dieser Reihenfolge
angezeigt. Die Zeichenkette darf maximal 64 Zeichen lang sein.
\english{Append an extra string to the end of your kernel version.
This will show up when you type uname, for example.
The string you set here will be appended after the contents of any files with a filename matching
localversion* in your object and source tree, in that order.
Your total string can be a maximum of 64~characters.}
%1.4
\subsection{Automatically append version information to the version string}
@@ -51,6 +66,15 @@ tatsächlich verwendete Zeichenkette sind die ersten 12~Zeichen, die durch
die Ausführung des Befehls erzeugt werden:\\
\indent\texttt{\$ git rev-parse --verify HEAD}\\
der innerhalb des Skripts \glqq scripts/setlocalversion\grqq{} ausgeführt wird.)
\english{This will try to automatically determine if the current tree is a release tree by
looking for git tags that belong to the current top of tree revision.\\
A string of the format -gxxxxxxxx will be added to the localversion if a git-based tree is found.
The string generated by this will be appended after any matching localversion* files,
and after the value set in CONFIG\_LOCALVERSION.\\
(The actual string used here is the first 12 characters produced by running the command:\\
\texttt{\$ git rev-parse --verify HEAD}\\
which is done within the script ``scripts/setlocalversion''.)}
\subsection{Build ID Salt}
CONFIG\_BUILD\_SALT [=] \textbf{[~]}\\
Type: string\\
@@ -59,6 +83,10 @@ Wenn diese Option gesetzt ist, dann wird dieser Wert in die Berechnung der
Build-ID einbezogen. Wird von Distributionen verwendet, die sicherstellen
wollen, dass es eineindeutige IDs zwischen verschiedenen Builds gibt.
Üblicherweise brauchen wir das nicht.
\english{The build ID is used to link binaries and their debug info.
Setting this option will use the value in the calculation of the build id.
This is mostly useful for distributions which want to ensure the build is unique between builds.
It's safe to leave the default.}
\subsection{Kernel compression mode \texorpdfstring{$\rightarrow$}{->}}
Der Linux-Kernel ist eine Art selbstextrahierende, ausführbare Datei.
@@ -75,17 +103,31 @@ aber die Ram-Größe weniger wichtig ist.\\
Arch Linux (seit Linux/x86 5.9.0) Standard: ZSTD (former: XZ seit 4.14.4, predecessor GZIP,XZ)\\
Debian 11.6: XZ\\
@TODO Weitere Linux Distributionen
\english{The linux kernel is a kind of self-extracting executable.
Several compression algorithms are available, which differ in efficiency, compression and decompression speed.
Compression speed is only relevant when building a kernel.
Decompression speed is relevant at each boot.
If you have any problems with bzip2 or lzma compressed kernels, mail me
(Alain Knaff) $<$alain\@knaff.lu$>$.
(An older version of this functionality (bzip2 only), for 2.4, was supplied by Christian Ludwig)\\
High compression options are mostly useful for users, who are low on disk space (embedded systems),
but for whom ram size matters less. If in doubt, select `gzip'}
\subsubsection{Gzip}
CONFIG\_KERNEL\_GZIP [=n] \textbf{[~]}\\
Die alte und bewährte gzip-Kompression. Sie bietet ein gutes
Gleichgewicht zwischen Kompressionsrate und
Dekompressionsgeschwindigkeit.
Gleichgewicht zwischen Kompressionsrate und Dekompressionsgeschwindigkeit.
\english{The old and tried gzip compression. It provides a good balance between compression ratio and decompression speed.}
\subsubsection{Bzip2}
CONFIG\_KERNEL\_BZIP2 [=n] \textbf{[~]}\\
Die Kompressionsrate und auch die Geschwindigkeit der ist durchschnittlich. Die Geschwindigkeit
der Dekomprimierung ist die langsamste. Größe des Kernels ist etwa $\qty{10}{\percent}$ kleiner
im Vergleich zu GZIP. Es benötigt auch einen großen Speicherbereich, bei
modernen Kerneln benötigt man zumindest 8~MB~RAM oder mehr beim Booten.
\english{Its compression ratio and speed is intermediate.
Decompression speed is slowest among the choices.
The kernel size is about \qty{10}{\percent} smaller with bzip2, in comparison to gzip.
Bzip2 uses a large amount of memory. For modern kernels you will need at least 8MB RAM or more for booting.}
\subsubsection{LZMA}
CONFIG\_KERNEL\_LZMA [=n] \textbf{[~]}\\
@@ -93,6 +135,10 @@ Dieser Kompressionsalgorithmus hat die höchste Komprimierung. Die Geschwindigke
Dekomprimierung liegt zwischen GZIP und BZIP2.
Komprimierung ist die langsamste. Kernelgröße beträgt etwa $\qty{33}{\percent}$
weniger als mit GZIP.
\english{This compression algorithm's ratio is best.
Decompression speed is between gzip and bzip2.
Compression is slowest.
The kernel size is about \qty{33}{\percent} smaller with LZMA in comparison to gzip.}
\subsubsection{XZ}
CONFIG\_KERNEL\_XZ [=n] \textbf{[~]}\\
@@ -106,6 +152,13 @@ einfaches LZMA.
Die Geschwindigkeit ist in etwa die gleiche wie bei LZMA: Die Dekomprimierungsgeschwindigkeit von
XZ ist besser als die von bzip2, aber schlechter als die von gzip und LZO.
Die Komprimierung ist langsam.
\english{XZ uses the LZMA2 algorithm and instruction set specific BCJ filters which can improve
compression ratio of executable code.
The size of the kernel is about \qty{30}{\percent} smaller with XZ in comparison to gzip.
On architectures for which there is a BCJ filter (i386, x86\_64, ARM, ARM64, RISC-V, big endian PowerPC,
and SPARC), XZ will create a few percent smaller kernel than plain LZMA.\\
The speed is about the same as with LZMA: The decompression speed of XZ is better than that of
bzip2 but worse than gzip and LZO. Compression is slow.}
%1.6.5
\subsubsection{LZO}
@@ -113,6 +166,9 @@ CONFIG\_KERNEL\_LZO [=n] \textbf{[~]}\\
Kompressionsrate ist die schlechteste aller anderen. Kernelgröße ist etwa $\qty{10}{\percent}$
größer als GZIP.
Jedoch ist die Geschwindigkeit beim Komprimieren und Dekomprimieren die höchste.
\english{Its compression ratio is the poorest among the choices.
The kernel size is about \qty{10}{\percent} bigger than gzip; however its speed
(both compression and decompression) is the fastest.}
\subsubsection{LZ4}
CONFIG\_KERNEL\_LZ4 [=n] \textbf{[~]}\\
@@ -120,6 +176,12 @@ LZ4 ist eine LZ77-Typ-Komprimierung mit einer festen, byte"=orientierten Enkodie
Siehe auch \url{http://code.google.com/p/lz4}.\\
Komprimierungsverhältnis ist noch schlechter als LZO. $\qty{8}{\percent}$ größere Kernelgröße als bei LZO.
Dekomprimierung ist jedoch von der Geschwindigkeit her schneller als LZO.
\english{LZ4 is an LZ77-type compressor with a fixed, byte-oriented encoding.
A preliminary version of LZ4 de/compression tool is available at
\url{https://code.google.com/p/lz4/}.\\
Its compression ratio is worse than LZO.
The size of the kernel is about \qty{8}{\percent} bigger than LZO.
But the decompression speed is faster than LZO.}
\subsubsection{ZSTD}
CONFIG\_KERNEL\_ZSTD [=y] \textbf{[Y]}\\
@@ -129,6 +191,10 @@ komprimiert besser als GZIP und dekomprimiert etwa so schnell wie
LZO, ist aber langsamer als LZ4. Sie benötigen mindestens
192~KB~RAM oder mehr zum Booten. Das Kommandozeilenprogramm \texttt{zstd}
ist für die Komprimierung erforderlich.
\english{ZSTD is a compression algorithm targeting intermediate compression with fast decompression speed.
It will compress better than GZIP and decompress around the same speed as LZO, but slower than LZ4.
You will need at least 192~KB~RAM or more for booting.
The zstd command line tool is required for compression.}
\subsection{Default init path}
CONFIG\_DEFAULT\_INIT [=] \textbf{[~]}\\
@@ -137,6 +203,10 @@ wenn in der Kernel-Befehlszeile keine solche \texttt{init=}"=Option übergeben w
Wenn der angeforderte Pfad nicht vorhanden ist, wird trotzdem versucht,
weitere Orte zu finden (z.\,B. /sbin/init usw.). Wenn dieser Pfad leer ist,
wird einfach die Fallback-Liste verwendet, wenn \texttt{init=} nicht übergeben wird.
\english{This option determines the default init for the system if no \texttt{init=option} is passed on the kernel command line.
If the requested path is not present, we will still then move on to attempting further locations (e.g. /sbin/init, etc).
If this is empty, we will just use the fallback list when \texttt{init=} is not passed.}
%1.8
\subsection{Default hostname}
CONFIG\_DEFAULT\_HOSTNAME \colorbox{yellow!80}{[=archlinux]~\textbf{[=orange]}}\\
@@ -145,6 +215,8 @@ noch bevor der Userspace das Kommando sethostname(2) aufruft.
Der Kernel verwendet hier traditionell ''(none)'', Sie möchten
vielleicht eine andere Voreinstellung verwenden, um ein minimales
System mit weniger Konfiguration benutzbar zu machen.
\english{This option determines the default system hostname before userspace calls sethostname(2).
The kernel traditionally uses ``(none)'' here, but you may wish to use a different default here to make a minimal system more usable with less configuration.}
\subsection{System V IPC}
CONFIG\_SYSVIPC [=y] \textbf{[Y]}\\
@@ -152,17 +224,33 @@ Die Inter-Prozess-Kommunikation IPC ist eine Zusammenstellung
aus Bibliotheksfunktionen (libraries) und Systemaufrufen die Prozesse (laufende Programme)
synchronisiert und Daten untereinander austauschen kann. Generell ist das eine gute Sache,
einige Programme würden auch nicht funktionieren wenn Sie hier kein Y (ja) setzen.
Insbesondere, wenn Sie den DOS-Emulator \texttt{dosemu} unter Linux laufen lassen wollen (lesen Sie das DOSEMU-HOWTO, verfügbar unter
\url{http://www.tldp.org/docs.html\#howto}), müssen Sie hier Y sagen.\\
Sie können Dokumentation über IPC mit \texttt{info ipc} und auch in Abschnitt 6.4 des Linux Programmer's Guide finden,
verfügbar unter \url{http://www.tldp.org/guides.html}.
\english{Inter Process Communication is a suite of library functions and system calls which let processes (running programs) synchronize and exchange information.
It is generally considered to be a good thing, and some programs won't run unless you say Y here.
In particular, if you want to run the DOS emulator \texttt{dosemu} under Linux (read the DOSEMU-HOWTO, available from
\url{http://www.tldp.org/docs.html\#howto}), you'll need to say Y here.\\
You can find documentation about IPC with ``info ipc'' and also in section 6.4 of the Linux Programmer's Guide,
available from \url{http://www.tldp.org/guides.html}.}
%1.10
\subsection{POSIX Message Queues}
CONFIG\_POSIX\_MQUEUE [=y] \textbf{[Y]}\\
Die POSIX-Variante der Nachrichtenwarteschlangen (message queues) ist ein Teil der IPC.
In POSIX"=Nachrichtenwarteschlangen hat jede Nachricht eine Priorität, die über die Reihenfolge
des Empfangs durch einen Prozess entscheidet. Wenn Sie Programme kompilieren und ausführen wollen,
die z.\,B. für Solaris geschrieben wurden und die POSIX"=Warteschlangen
des Empfangs durch einen Prozess entscheidet.
Wenn Sie Programme kompilieren und ausführen wollen, die z.\,B. für Solaris geschrieben wurden und die POSIX"=Warteschlangen
(Funktionen \texttt{mq\_$\ast$}) verwenden, sagen Sie hier Y.
POSIX"=Nachrichtenwarteschlangen sind via Dateisystem als \glqq mqueue\grqq{} sichtbar und können irgendwo
POSIX"=Nachrichtenwarteschlangen sind als Dateisystem mit dem Namen \glqq mqueue\grqq{} sichtbar und können irgendwo
eingehängt werden, wenn Sie Dateisystemoperationen auf Nachrichtenwarteschlangen durchführen wollen.
Wenn Sie unsicher sind, sagen Sie Y.
\english{POSIX variant of message queues is a part of IPC.
In POSIX message queues every message has a priority which decides about succession of receiving it by a process.
If you want to compile and run programs written e.g. for Solaris with use of its POSIX message queues (functions mq\_*) say Y here.\\
POSIX message queues are visible as a filesystem called `mqueue' and can be mounted somewhere if you want to do filesystem operations on message queues.\\
If unsure, say Y.}
\subsection{General notification queue}
CONFIG\_WATCH\_QUEUE \colorbox{yellow!80}{[=y] \textbf{[N]}}\\
@@ -170,10 +258,12 @@ Dies ist eine allgemeine Benachrichtigungswarteschlange für den Kernel,
um Ereignisse an den Userspace weiterzuleiten, indem sie in Pipes gesplittet werden.
Sie kann in Verbindung mit Watches für Schlüssel-/Schlüsseländerungsbenachrichtigungen (key/keyring) und
Gerätebenachrichtigungen verwendet werden.\\
Bemerkung: Bei Debian Bullseye and Bookworm ist dies nicht gesetzt (N).
\\\begin{scriptsize}
Eventuell benützt dies bereits GNOME, wir kommen derzeit vermutlich ohne aus
\end{scriptsize}
Siehe \texttt{Documentation/core-api/watch\_queue.rst}.
\english{This is a general notification queue for the kernel to pass events to userspace by splicing them into pipes.
It can be used in conjunction with watches for key/keyring change notifications and device notifications.\\
See \texttt{Documentation/core-api/watch\_queue.rst}}
\note{Bemerkung: Bei Debian Bullseye and Bookworm ist dies nicht gesetzt (N).\\
Eventuell benützt dies bereits GNOME, wir kommen derzeit vermutlich ohne aus.}
\subsection{Enable process\_vm\_readv/writev\ syscalls}
@@ -182,6 +272,8 @@ Die Aktivierung dieser Option fügt die Systemaufrufe process\_vm\_readv und
process\_vm\_writev hinzu, die es einem Prozess mit den richtigen Rechten ermöglichen,
direkt aus dem Adressraum eines anderen Prozesses zu lesen oder in diesen zu schreiben.
Weitere Einzelheiten finden Sie in der Manpage.
\english{Enabling this option adds the system calls process\_vm\_readv and process\_vm\_writev which allow a process with the correct privileges
to directly read from or write to another process' address space. See the man page for more details.}
\subsection{uselib syscall (for libc5 and earlier)}
CONFIG\_USELIB [=n] \textbf{[N]}\\
@@ -189,46 +281,80 @@ Diese Option schaltet den uselib-Systemaufruf ein, der im dynamic"=Linker von li
Das aktuelle glibc verwendet diesen Systemaufruf nicht mehr, deshalb kann man diese Option
ausschalten wenn sie
keine Programme mehr verwenden, die auf libc5 (oder früher) compiliert wurden.\\
Bemerkung: Debian Bullseye verwendet dies noch (Y).
\english{This option enables the uselib syscall, a system call used in the dynamic linker from libc5 and earlier.
glibc does not use this system call.
If you intend to run programs built on libc5 or earlier, you may need to enable this syscall.
Current systems running glibc can safely disable this.}
\note{Bemerkung: Debian Bullseye verwendet dies noch (Y).}
%1.14
\subsection{Auditing support}
CONFIG\_AUDIT [=y] \textbf{[Y]}\\
Aktivieren Sie eine Überwachungsinfrastruktur, die mit einem anderen Kernel-Subsystem
verwendet werden kann, wie z.\,B. SELinux (das dies für die Protokollierung der Ausgabe
von avc-Nachrichten benötigt). Die Systemaufrufüberprüfung ist auf Architekturen,
die sie unterstützen, enthalten.
verwendet werden kann, wie z.\,B. SELinux (das dies für die Protokollierung der Ausgabe von avc-Nachrichten benötigt).
Die Systemaufrufüberprüfung ist auf Architekturen, die sie unterstützen, enthalten.
\english{Enable auditing infrastructure that can be used with another kernel subsystem, such as SELinux (which requires this for logging of avc messages output).\\
System call auditing is included on architectures which support it.}
%1.15 IRQ subsystem
\subsection{IRQ subsystem \texorpdfstring{$\rightarrow$}{->}}
\subsection{IRQ subsystem \texorpdfstring{$\rightarrow$}{->}}
Über diese Schnittstelle kann man Funktionen und Parameter für den
Kernelbau auswählen.
Merkmale können entweder eingebaut, modularisiert oder ignoriert werden.
Parameter müssen als dezimale oder hexadezimale Zahlen oder als Text eingegeben
werden.
\english{This interface lets you select features and parameters for the build.
Features can either be built-in, modularized, or ignored.
Parameters must be entered in as decimal or hexadecimal numbers or text.}
\subsubsection{Expose irq internals in debugfs}
CONFIG\_GENERIC\_IRQ\_DEBUGFS [=n] \textbf{[N]}\\
Legt interne Zustandsinformationen über debugfs offen.
Hauptsächlich für Entwickler und zur Fehlersuche bei schwer
zu diagnostizierenden Interrupt-Problemen.
Wenn Sie nicht wissen, was Sie hier tun sollen, sagen Sie N.
\english{Exposes internal state information through debugfs.
Mostly for developers and debugging of hard to diagnose interrupt problems.
If you don't know what to do here, say N.}
%1.16 Timers subsystem
\subsection{Timers subsystem \texorpdfstring{$\rightarrow$}{->}}
\subsubsection{Timer tick handling \texorpdfstring{$\rightarrow$}{->}}
Sie müssen aus den folgenden drei Möglichkeiten eine wählen:
\paragraph{Periodic timer ticks (constant rate, no dynticks)} $~$ \\
CONFIG\_HZ\_PERIODIC [=n] \textbf{[N]}\\
Diese Option sorgt dafür, dass der Tick periodisch mit einer konstanten Rate läuft,
auch wenn die CPU ihn nicht braucht.
\english{This option keeps the tick running periodically at a constant rate, even when the CPU doesn't need it.}
\paragraph{Idle dynticks system (tickless idle)} $~$ \\
CONFIG\_NO\_HZ\_IDLE [=n] \textbf{[N]}\\
Diese Option ermöglicht ein tickloses idle-System (Leerlaufsystem):
Timer-Interrupts werden nur bei Bedarf ausgelöst, wenn das System im
Leerlauf ist. Dies ist v.a. zum Energiesparen interessant.
\english{This option enables a tickless idle system: timer interrupts will only trigger on an as-needed basis when the system is idle.
This is usually interesting for energy saving.\\
Most of the time you want to say Y here.}
\paragraph{Full dynticks system (tickless)} $~$ \\
CONFIG\_NO\_HZ\_FULL [=y] \textbf{[Y]}\\
Diese Option ermöglicht ein tickloses idle-System (Leerlaufsystem):
Timer-Interrupts werden nur bei Bedarf ausgelöst, wenn das System im
Leerlauf ist. Dies ist v.a. zum Energiesparen interessant.\\
Adaptiv versuchen, die Ticks abzuschalten, wann immer dies möglich ist, auch wenn die CPU Aufgaben ausführt.
Normalerweise erfordert dies die Ausführung einer einzelnen Aufgabe auf der CPU.
Die Chancen für einen ticklosen Betrieb sind am größten, wenn die Aufgabe größtenteils im Userspace läuft und wenig Kernelaktivität aufweist.
Sie müssen den Boot-Parameter nohz\_full mit dem gewünschten Bereich von dynticks CPUs auffüllen, um ihn zu verwenden.
Dies wird auf Kosten eines gewissen Overheads bei Benutzer $\leftrightarrow$ Kernel-Übergängen implementiert:
syscalls, exceptions und interrupts.\\
Standardmäßig, ohne Übergabe des nohz\_full-Parameters, verhält sich dies genau wie NO\_HZ\_IDLE.
Wird bei Linux-Distributionen ausgewählt.
\english{Adaptively try to shutdown the tick whenever possible, even when the CPU is running tasks.
Typically this requires running a single task on the CPU.
Chances for running tickless are maximized when the task mostly runs in userspace and has few kernel activity.\\
You need to fill up the nohz\_full boot parameter with the desired range of dynticks CPUs to use it.
This is implemented at the expense of some overhead in user $\leftrightarrow$ kernel transitions:
syscalls, exceptions and interrupts.\\
By default, without passing the nohz\_full parameter, this behaves just like NO\_HZ\_IDLE.
If you're a distro say Y.}
\subsubsection{Force user context tracking}
CONFIG\_CONTEXT\_TRACKING\_USER\_FORCE [=n] \textbf{[N]}\\
@@ -250,6 +376,15 @@ Sagen Sie nur dann ja (Y), wenn Sie an der Entwicklung eines Architektur-Backend
für die Benutzerkontextverfolgung arbeiten.
Sagen Sie ansonsten N, da diese Option einen Overhead mit sich bringt, den Sie in
der Praxis nicht haben wollen.
\english{The major pre-requirement for full dynticks to work is to support the user context tracking subsystem.
But there are also other dependencies to provide in order to make the full dynticks working.\\
This option stands for testing when an arch implements the user context tracking backend but doesn't yet fulfill all the requirements to make
the full dynticks feature working.
Without the full dynticks, there is no way to test the support for user context tracking and the subsystems that rely on it:
RCU userspace extended quiescent state and tickless cputime accounting.
This option copes with the absence of the full dynticks subsystem by forcing the user context tracking on all CPUs in the system.\\
Say Y only if you're working on the development of an architecture backend for the user context tracking.\\
Say N otherwise, this option brings an overhead that you don't want in production.}
\subsubsection{Old Idle dynticks config}
CONFIG\_NO\_HZ \colorbox{yellow!80}{[=y] \textbf{[N]}}\\*
@@ -257,9 +392,9 @@ CONFIG\_NO\_HZ \colorbox{yellow!80}{[=y] \textbf{[N]}}\\*
Dies ist der alte Konfigurationseintrag, der Dynticks im Leerlauf aktiviert.
\sout{Wir behalten ihn noch eine Weile bei, um die Abwärtskompatiblität mit älteren
Konfigurations\-dateien zu gewähr\-leisten.}
\\\begin{scriptsize}
Alte Dynticks-Konfiguration wird nicht mehr unterstützt.
\end{scriptsize}
\english{This is the old config entry that enables dynticks idle.
We keep it around for a little while to enforce backward compatibility with older config files.}
\note{Alte Dynticks-Konfiguration wird nicht mehr unterstützt.}
\subsubsection{High Resolution Timer Support}
CONFIG\_HIGH\_RES\_TIMERS [=y] \textbf{[Y]}\\
@@ -267,6 +402,8 @@ CONFIG\_HIGH\_RES\_TIMERS [=y] \textbf{[Y]}\\
Diese Option aktiviert die Unterstützung hochauflösender Timer.
Wenn ihre Hardware dazu nicht in der Lage ist, erhöht diese
Option nur die Größe des Kernel"=Images.
\english{This option enables high resolution timer support.
If your hardware is not capable then this option only increases the size of the kernel image.}
\subsubsection{Clocksource watchdog maximum allowable skew}
CONFIG\_CLOCKSOURCE\_WATCHDOG\_MAX\_SKEW\_US [=100] \textbf{[100]}\\
@@ -278,6 +415,10 @@ Sekunde und der maximalen Frequenzdrift von NTP von 500 Teilen pro Million.
Wenn die Clocksource gut genug für NTP ist, ist sie auch gut genug
für den Watchdog der Clocksource!\\
Bereich (Range): 50 -- 1000
\english{Specify the maximum amount of allowable watchdog skew in microseconds before reporting the clocksource to be unstable.
The default is based on a half-second clocksource watchdog interval and NTP's maximum frequency drift of 500 parts per million.
If the clocksource is good enough for NTP, it is good enough for the clocksource watchdog!}
%1.17 BPF subsystem
\subsection{BPF subsystem \texorpdfstring{$\rightarrow$}{->}}
Berkeley Packet Filter, Firewall-Filtertechnik im Kernel
@@ -306,6 +447,7 @@ Wenn CONFIG\_BPF\_JIT\_ALWAYS\_ON eingeschaltet ist, dann wird
\texttt{/proc/sys/net/core/bpf\_jit\_enable} permanent auf 1 gesetzt, alle
Versuche diese Einstellung auf andere Werte zu legen wird mit einem Fehler
zurückgewiesen.
\subsubsection{Disable unprivileged BPF by default}
CONFIG\_BPF\_UNPRIV\_DEFAULT\_OFF [=y] \textbf{[Y]}\\
Deaktiviert die unprivilegierte BPF standardmäßig, indem der entsprechende Eintrag\\
@@ -316,6 +458,7 @@ er sie auf 1 setzt (von wo aus kein weiterer Übergang auf 0 mehr möglich ist).
Unprivilegierte BPF könnte verwendet werden, um bestimmte potenzielle Seitenkanalschwachstellen
für spekulative Ausführung auf nicht gemilderter betroffener Hardware auszunutzen.
Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie mit Y.
\subsubsection{Preload BPF file system with kernel specific program
and map iterators \texorpdfstring{$\rightarrow$}{->}}
BPF\_PRELOAD [=n] \textbf{[N]}\\
@@ -323,6 +466,7 @@ Dadurch wird ein Kernelmodul mit mehreren eingebetteten BPF"=Programmen erstellt
die als für den Menschen lesbare Dateien in den BPF-FS"=Einhängepunkt
eingefügt werden, was bei der Fehlersuche und der Untersuchung von BPF"=Programmen
und -Maps nützlich ist.
\paragraph{bpf\_preload kernel module\\} $~$ \\
\textit{Dies ist nur sichtbar wenn der übergeordnete Punkt aktiviert ist.}\\
CONFIG\_BPF\_PRELOAD\_UMD [=m] \textbf{[~]}\\
@@ -353,6 +497,7 @@ im Kernel.
Diese neuen Unterbrechungspunkte wurden ausgewählt, um die maximale Latenz beim neuerlichen Zuordnen
des Schedulers zu reduzieren und dadurch schnelle Reaktionszeiten der Applikationen zu gewährleisten. --
Auf Kosten eines geringeren Durchsatzes wird dies erreicht.
\subsubsection{Preemptible Kernel (Low-Latency Desktop)}
CONFIG\_PREEMPT \colorbox{yellow!80}{[=y] \textbf{[N]}}\\
Bei dieser Einstellung wird die Latenz des Kernels weiter erniedrigt indem der gesamte Code des Kernels
@@ -361,6 +506,7 @@ Arbeiten mit Applikationen aus Nutzersicht erreicht, sogar unter Volllast.
Wähle diese Einstellung, wenn man einen Desktop oder ein Embedded-System mit einer Latenz im
Millisekundenbereich möchte. Natürlich geht diese Einstellung mit einem leicht geringerem Durchsatz an
Rechenleistung einher.
%1.19 Preemption behaviour defined on boot
\subsection{Preemtion behaviour defined on boot}
CONFIG\_PREEMPT\_DYNAMIC \colorbox{yellow!80}{[=y] \textbf{[N]}}\\
@@ -381,10 +527,8 @@ sollte der potenzielle Overhead in Betracht gezogen werden.
Interessant wird es, wenn derselbe vorgefertigte Kernel
sowohl für Server- als auch für Desktop-Workloads verwendet
werden soll.
\\\begin{scriptsize}
Wir setzen dies nicht, da wir wissen, dass der Kernal für den Desktop
kompiliert wird.
\end{scriptsize}
\note{Wir setzen dies nicht, da wir wissen, dass der Kernal für den Desktop kompiliert wird.}
%1.20 Core Scheduling for SMT
\subsection{Core Scheduling for SMT}
CONFIG\_SCHED\_CORE [=y] \textbf{[Y]}\\
@@ -407,6 +551,7 @@ 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.
% 1.21 Extensible Scheduling Class (seit 6.11)
\subsection{Extensible Scheduling Class {\tiny seit 6.12}}
CONFIG\_SCHED\_CLASS\_EXT [=y] \textbf{[Y]}\\
@@ -432,8 +577,7 @@ struct sched\_class.
Für weitere Informationen:\\
Dokumentation/scheduler/sched-ext.rst\\
\href{https://github.com/sched-ext/scx}{https://github.com/sched-ext/scx}\\[1em]
\english{
This option enables a new scheduler class sched\_ext (SCX), which
\english{This option enables a new scheduler class sched\_ext (SCX), which
allows scheduling policies to be implemented as BPF programs to
achieve the following:
\begin{itemize}
@@ -462,6 +606,7 @@ Kontextverfolgungs-Subsystems implementiert.
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
\subsubsection{Fine granularity task level IRQ time accounting}
CONFIG\_IRQ\_TIME\_ACCOUNTING \colorbox{yellow!80}{[=y] \textbf{[N]}}\\
@@ -471,10 +616,7 @@ Dies geschieht durch das Lesen eines Zeitstempels bei jedem Übergang
zwischen dem softirq- und dem hardirq"=Zustand, so dass es zu geringen
Leistungseinbußen kommen kann.\\
Im Zweifelsfall sagen Sie hier N für Nein.
\\\begin{scriptsize}
Um etwas mehr Performance zu gewinnen, setzen wir dies auf N für Nein.
\end{scriptsize}
\note{Um etwas mehr Performance zu gewinnen, setzen wir dies auf N für Nein.}
\subsubsection{BSD Process Accounting}
CONFIG\_BSD\_PROCESS\_ACCT [=y] \textbf{[Y]}\\
@@ -1180,6 +1322,7 @@ zu haben, solange sie sich in verschiedenen pid-Namensräumen befinden. Dies is
\subsubsection{Network namespace}
CONFIG\_NET\_NS [=y] \textbf{[Y]}\\
Ermöglicht es dem Benutzer, scheinbar mehrere Instanzen des Netzwerkstapels zu erstellen.
%1.34 Checkpoint/restore support
\subsection{Checkpoint/restore support}
CONFIG\_CHECKPOINT\_RESTORE [=y] \textbf{[Y]}\\
@@ -1187,6 +1330,9 @@ Ermöglicht zusätzliche Kernel-Funktionen in einer Art Checkpoint/Restore.
Insbesondere fügt es zu\-sätz\-liche prctl"=Codes zum Einrichten von Prozesstext, Daten- und Heap"=Segmentgrößen
sowie einige zusätzliche \texttt{/proc}-Dateisystemeinträge hinzu.\\
Wenn Sie unsicher sind, geben Sie hier N an.
\english{Enables additional kernel features in a sake of checkpoint/restore.
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
\subsection{Automatic process group scheduling}