UPD general setup, some fixes, add english TODO
This commit is contained in:
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user