diff --git a/documentation/linux_configuration.pdf b/documentation/linux_configuration.pdf index f4f9260..4b83b78 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:bfa2bc224dccb8b8b310005897873ba972f6e15abc5d9412ba8c77cbbc50ae67 -size 1749013 +oid sha256:d4aa2b392ab9b80e7e6923f8ef277a79fe96142480f020a2d4bfdfa877aa071c +size 1769481 diff --git a/documentation/linux_configuration_01_general_setup.tex b/documentation/linux_configuration_01_general_setup.tex index 5efa143..81b8b9d 100644 --- a/documentation/linux_configuration_01_general_setup.tex +++ b/documentation/linux_configuration_01_general_setup.tex @@ -1368,18 +1368,405 @@ 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 +\subsubsection{Enable 16-bit UID system calls} +CONFIG\_UID16 [=y] \textbf{[Y]}\\ +Damit werden die alten 16-Bit-UID-Syscall-Wrapper aktiviert. +\begin{small} + \textit{ + \\This enables the legacy 16-bit UID syscall wrappers. + } +\end{small} + +%1.14.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. +Wenn Sie hier N angeben, werden alle Prozesse mit UID 0, GID 0 und allen möglichen Fähigkeiten ausgeführt. +Wenn Sie hier N angeben, wird auch die Unterstützung für Systemaufrufe, +die sich auf UIDs, GIDs und Fähigkeiten beziehen, wie setuid, setgid und capset, +herauskompiliert. + +Wenn Sie unsicher sind, sagen Sie hier Y. +\begin{small} + \textit{ + \\This option enables support for non-root users, groups and capabilities. + If you say N here, all processes will run with UID 0, GID 0, and all + possible capabilities. + Saying N here also compiles out support for system calls related to UIDs, + GIDs, and capabilities, such as setuid, setgid, and capset.\\ + If unsure, say Y here. + } +\end{small} +\\\begin{scriptsize} + Dies wäre nur auf kleinen Systemen ohne Benutzer sinnvoll, auf N zu stellen. +\end{scriptsize} + +%1.14.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 +in der libc nicht mehr unterstützt werden, aber in einigen Architekturen immer noch standardmäßig aktiviert sind.\\ +Wenn Sie unsicher sind, lassen Sie die Standardoption hier. +\begin{small} + \textit{ + sys\_sgetmask and sys\_ssetmask are obsolete system calls no + longer supported in libc but still enabled by default in some architectures.\\ + If unsure, leave the default option here. + } +\end{small} +\\\begin{scriptsize} + Eventuell könnten wir dies auf N stellen. +\end{scriptsize} + +%1.14.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. +Beachten Sie, dass die Deaktivierung dieser Option sicherer ist, aber die Kompatibilität mit einigen Systemen beeinträchtigen könnte.\\ +Wenn Sie unsicher sind, sagen Sie hier Y. +\begin{small} + \textit{ + \\sys\_sysfs is an obsolete system call no longer supported in libc. + Note that disabling this option is more secure but might break + compatibility with some systems.\\ + If unsure, say Y here. + } +\end{small} +\\\begin{scriptsize} + Eventuell könnten wir dies auf N stellen. +\end{scriptsize} + +%1.41.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 +abbilden und diese Handles dann später für verschiedene Dateisystemoperationen verwenden. +Dies ist nützlich bei der Implementierung von Userspace-Dateiservern, die jetzt Dateien +über Handles anstelle von Namen verfolgen. +Das Handle bleibt gleich, auch wenn die Dateinamen umbenannt werden. +Ermöglicht open\_by\_handle\_at(2) und name\_to\_handle\_at(2) Syscalls. +\begin{small} + \textit{ + \\If you say Y here, a user level program will be able to map file names to handle and + then later use the handle for different file system operations. + This is useful in implementing userspace file servers, which now track files using handles + instead of names. + 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. + } +\end{small} + +%1.41.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. +Einige eingebettete Systeme haben keine Verwendung für sie und können daher deaktiviert +werden, um die Größe des Kernel-Images zu verringern.\\[0.5em] +Wenn diese Option deaktiviert ist, sind die folgenden Syscalls nicht verfügbar\: +timer\_create, timer\_gettime: timer\_getoverrun, timer\_settime, timer\_delete, +clock\_adjtime, getitimer, setitimer, alarm.\\ +Außerdem werden die Syscalls clock\_settime, clock\_gettime, clock\_getres und +clock\_nanosleep nur auf CLOCK\_REALTIME, CLOCK\_MONOTONIC und CLOCK\_BOOTTIME beschränkt.\\ +Wenn Sie unsicher sind, sagen Sie y. +\begin{small} + \textit{ + \\This includes native support for POSIX timers to the kernel. + Some embedded systems have no use for them and therefore they + can be configured out to reduce the size of the kernel image. + When this option is disabled, the following syscalls won't be + available\: timer\_create, timer\_gettime\: timer\_getoverrun, + timer\_settime, timer\_delete, clock\_adjtime, getitimer, + setitimer, alarm. + Furthermore, the clock\_settime, clock\_gettime, + clock\_getres and clock\_nanosleep syscalls will be limited to\\ + CLOCK\_REALTIME, CLOCK\_MONOTONIC and CLOCK\_BOOTTIME only.\\ + If unsure say y. + } +\end{small} + +%1.41.7 Enable support for printk +\subsubsection{Enable support for printk} +CONFIG\_PRINTK [=y] \textbf{[Y]}\\ +Diese Option aktiviert die normale printk-Unterstützung. +Wenn Sie diese Option entfernen, werden die meisten Meldungsstrings aus dem Kernel-Image entfernt +und der Kernel wird mehr oder weniger still.\\ +Da dies die Diagnose von Systemproblemen sehr erschwert, +wird von der Angabe von N hier dringend abgeraten. +\begin{small} + \textit{ + \\This option enables normal printk support. + Removing it eliminates most of the message strings from the kernel image and + makes the kernel more or less silent. + As this makes it very difficult to diagnose system problems, + saying N here is strongly discouraged.} +\end{small} + +%1.41.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, +wodurch die Größe Ihres Kernel-Images verringert und zahlreiche fatale Zustände +möglicherweise stillschweigend ignoriert werden. +Sie sollten die Deaktivierung dieser Option nur für eingebettete Systeme in Erwägung ziehen, +die keine Möglichkeit haben, Fehler zu melden.\\Sagen Sie einfach Y. +\begin{small} + \textit{ + \\Disabling this option eliminates support for BUG and WARN, + reducing the size of your kernel image and potentially quietly ignoring numerous fatal conditions. + You should only consider disabling this option for embedded systems + with no facilities for reporting errors.\\Just say Y.} +\end{small} + +%1.41.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. +\begin{small} + \textit{ + \\Enable support for generating core dumps. Disabling saves about 4k.} +\end{small} + +%1.41.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. +\begin{small} + \textit{ + \\This option allows to disable the internal PC speaker support, saving some memory.} +\end{small} + +%1.41.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. +Dies spart Speicher auf kleinen Rechnern, kann aber die Leistung verringern. +\begin{small} + \textit{ + \\Enabling this option reduces the size of miscellaneous core kernel data structures. + This saves memory on small machines, but may reduce performance.} +\end{small} + +%1.41.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{} +gebaut wird. +Der resultierende Kernel führt möglicherweise glibc-basierte Anwendungen nicht korrekt aus. +\begin{small} + \textit{ + \\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.} +\end{small} + +%1.41.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. +\begin{small} + \textit{ + \\Disabling this option will cause the kernel to be built without support for epoll family of system calls.} +\end{small} + +%1.41.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] +Wenn Sie unsicher sind, sagen Sie Y. +\begin{small} + \textit{ + \\Enable the signalfd() system call that allows to receive signals on a file descriptor. + If unsure, say Y.} +\end{small} + +%1.41.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] +Wenn Sie unsicher sind, sagen Sie Y. +\begin{small} + \textit{ + \\Enable the timerfd() system call that allows to receive timer events on a file descriptor. + If unsure, say Y.} +\end{small} + +%1.41.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) +als auch Userspace-Benachrichtigungen zu empfangen. +Wenn Sie unsicher sind, sagen Sie Y. +\begin{small} + \textit{ + \\Enable the eventfd() system call that allows to receive both kernel notification (ie. KAIO) or userspace notifications. + If unsure, say Y.} +\end{small} + +%1.41.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. +Es wird von swap unterstützt und verwaltet Ressourcengrenzen. +Es wird auch in den Userspace als tmpfs exportiert, wenn TMPFS aktiviert ist. +Wenn Sie diese Option deaktivieren, werden shmem und tmpfs durch den viel einfacheren ramfs-Code ersetzt, +der auf kleinen Systemen ohne Swap geeignet sein kann. +\begin{small} + \textit{ + \\The shmem is an internal filesystem used to manage shared memory. + It is backed by swap and manages resource limits. + It is also exported to userspace as tmpfs if TMPFS is enabled. + Disabling this option replaces shmem and tmpfs with the much simpler ramfs code, + which may be appropriate on small systems without swap.} +\end{small} +%1.41.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. +Die Deaktivierung dieser Option spart etwa 7k. +\begin{small} + \textit{ + \\This option enables POSIX asynchronous I/O which may by used by some high performance threaded applications. + Disabling this option saves about 7k.} +\end{small} -\subsubsection{Load all symbols for debugging/ksymoops} +%1.41.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, +IO über Übermittlungs- und Abschlussringe zu übermitteln und abzuschließen, +die von Kernel und Anwendung gemeinsam genutzt werden. +\begin{small} + \textit{ + \\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.} +\end{small} + +%1.42 Enable madvice/fadvise syscalls +\subsection{Enable madvise/fadvise syscalls} +CONFIG\_ADVISE\_SYSCALLS [=y] \textbf{[Y]}\\ +Diese Option aktiviert die Syscalls madvise und fadvise, +die von Anwendungen verwendet werden, um den Kernel über ihre zukünftige Speicher- oder Dateinutzung +zu informieren und so die Leistung zu verbessern. +Wenn Sie ein eingebettetes System bauen, bei dem keine Anwendungen diese Syscalls verwenden, +können Sie diese Option deaktivieren, um Platz zu sparen. +\begin{small} +\textit{ + \\This option enables the madvise and fadvise syscalls, + used by applications to advise the kernel about their future memory or file usage, improving performance. + If building an embedded system where no applications use these syscalls, + you can disable this option to save space. +} +\end{small} + + +%1.43 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. +Damit können die Kosten für Speicherbarrieren im Benutzerbereich asymmetrisch verteilt werden, +indem Paare von Speicherbarrieren in Paare bestehend aus membarrier() und einer Compilerbarriere umgewandelt werden.\\[.5em] +Wenn Sie unsicher sind, sagen Sie Y. +\begin{small} +\textit{ + \\Enable the membarrier() system call that allows issuing memory barriers across all running threads, + which can be used to distribute the cost of user-space memory barriers asymmetrically by transforming + pairs of memory barriers into pairs consisting of membarrier() and a compiler barrier.\\ + If unsure, say Y. +} +\end{small} + +%1.44 Enable kcmp() system call +\subsection{Enable kcmp() system call} +CONFIG\_KCMP [=y] \textbf{[Y]}\\ +Aktivieren Sie den Systemaufruf Kernel-Ressourcenvergleich. +Er bietet dem Benutzerbereich die Möglichkeit, zwei Prozesse zu vergleichen, um festzustellen, +ob sie eine gemeinsame Ressource teilen, +wie z.\,B. einen Dateideskriptor oder sogar virtuellen Speicherplatz.\\ +Wenn Sie unsicher sind, sagen Sie N. +\begin{small} +\textit{ + \\Enable the kernel resource comparison system call. + It provides user-space with the ability to compare two processes to see if they share a common resource, + such as a file descriptor or even virtual memory space.\\ + If unsure, say N. +} +\end{small} + +%1.45 Enable rseq() system call +\subsection{Enable rseq() system call} +CONFIG\_RSEQ [=y] \textbf{[Y]}\\ +Aktivieren Sie den Systemaufruf \glqq Neustartbare Sequenzen\grqq{}. +Er bietet einen User-Space-Cache für den aktuellen CPU-Nummernwert, der das Abrufen der aktuellen CPU-Nummer +aus dem User-Space beschleunigt, sowie eine ABI zur Beschleunigung von User-Space-Operationen auf pro-CPU-Daten.\\ +Wenn Sie unsicher sind, sagen Sie Y. +\begin{small} +\textit{ + \\Enable the restartable sequences system call. + It provides a user-space cache for the current CPU number value, which speeds up getting the current + CPU~number from user-space, as well as an ABI to speed up user-space operations on per-CPU data.\\ + If unsure, say Y. +} +\end{small} + + +%1.45.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] +Wenn Sie unsicher sind, sagen Sie N. +\begin{small} +\textit{ + \\Enable extra debugging checks for the rseq system call.\\ + If unsure, say N. +} +\end{small} + +%1.46 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 +(Anzahl der zwischengespeicherten Seiten, schmutzige Seiten, zum Zurückschreiben markierte Seiten, +(kürzlich) entfernte Seiten).\\[.5em] +Wenn Sie unsicher sind, sagen Sie hier Y. +\begin{small} +\textit{ + \\Enable the cachestat system call, which queries the page cache statistics of a file + (number of cached pages, dirty pages, pages marked for writeback, (recently) evicted pages).\\ + If unsure say Y here. +} +\end{small} + +%1.47 PC/104 support +\subsection{PC/104 support} +CONFIG\_PC104 [=n] \textbf{[N]}\\ +Zeigt PC/104-Formfaktor-Gerätetreiber und Optionen zur Auswahl und Konfiguration an. +Aktivieren Sie diese Option, wenn Ihr Zielrechner über einen PC/104-Bus verfügt. +\begin{small} +\textit{ + \\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. +} +\end{small} + +%1.48 Load all symbols for debugging/ksymoops +\subsection{Load all symbols for debugging/ksymoops} CONFIG\_KALLSYMS [=y] \textbf{[Y]}\\ -(sichtbar wenn EXPERT [=n])\\ +(sichtbar wenn EXPERT [=y])\\ Geben Sie hier Y ein, damit der Kernel symbolische Absturzinformationen und symbolische Stack-Backtraces ausgibt. Dies erhöht die Größe des Kernels etwas, da alle Symbole in das Kernel-Image geladen werden müssen. +\begin{small} + \textit{ + \\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. + } +\end{small} -\paragraph{Test the basic functions and performance of kallsyms}$~$\\ +%1.48.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. \texttt{kallsyms\_lookup\_name}. Außerdem wird die Kompressionsrate des @@ -1388,10 +1775,10 @@ Starten Sie den Selbsttest automatisch nach dem Systemstart.\\ Es wird empfohlen, \texttt{dmesg | grep kallsyms\_selftest} auszuführen, um die Testergebnisse zu sammeln. In der letzten Zeile wird \texttt{finish} angezeigt, was bedeutet, -dass der Test abgeschlossen ist. +dass der Test abgeschlossen ist. -\paragraph{Include all symbols in kallsyms}$~$\\ -CONFIG\_KALLSYMS\_ALL [=y] \textbf{[Y]}\\ +\subsubsection{Include all symbols in kallsyms} +CONFIG\_KALLSYMS\_ALL \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ Normalerweise enthält kallsyms nur die Symbole von Funktionen für schönere OOPS-Meldungen und Backtraces (d.\,h. Symbole aus den Abschnitten text und inittext). Dies ist für die meisten Fälle ausreichend. Nur wenn Sie Kernel-Live-Patching @@ -1404,6 +1791,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 \subsection{Kernel Performance Events And Counters \texorpdfstring{$\rightarrow$}{->}} Kernel"=Leistungsereignisse und -Zähler