[bootlin/training-materials updates] master: slides/sysdev-linux-intro-sources: Merge the size and structure slides (c8a277a1)
Miquel Raynal
miquel.raynal at bootlin.com
Fri Mar 17 15:34:05 CET 2023
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/c8a277a1b442572906055d586001516682146eaa
>---------------------------------------------------------------
commit c8a277a1b442572906055d586001516682146eaa
Author: Miquel Raynal <miquel.raynal at bootlin.com>
Date: Thu Mar 16 09:20:36 2023 +0100
slides/sysdev-linux-intro-sources: Merge the size and structure slides
Background idea: reducing the introduction.
Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com>
>---------------------------------------------------------------
c8a277a1b442572906055d586001516682146eaa
.../sysdev-linux-intro-sources.tex | 69 +++++++---------------
1 file changed, 22 insertions(+), 47 deletions(-)
diff --git a/slides/sysdev-linux-intro-sources/sysdev-linux-intro-sources.tex b/slides/sysdev-linux-intro-sources/sysdev-linux-intro-sources.tex
index c179cc7d..f1d72ef6 100644
--- a/slides/sysdev-linux-intro-sources/sysdev-linux-intro-sources.tex
+++ b/slides/sysdev-linux-intro-sources/sysdev-linux-intro-sources.tex
@@ -102,31 +102,23 @@
}
\begin{frame}
- \frametitle{Linux kernel size}
+ \frametitle{Linux kernel size and structure}
\begin{itemize}
- \item Linux v5.18 sources:\\
- \begin{itemize}
- \item 75,878 files (\code{git ls-files | wc -l})
- \item 33,242,942 lines (\code{git ls-files | xargs cat | wc -l})
- \item 1,154,591,060 bytes (\code{git ls-files | xargs cat | wc -c})
- \end{itemize}
+ \item Linux v5.18 sources: close to 80k files, 35M lines, 1.3GiB
+ % files: git ls-files | wc -l
+ % lines: git ls-files | xargs cat | wc -l
+ % bytes: git ls-files | xargs cat | wc -c
\item But a compressed Linux kernel just sizes a few megabytes.
\item So, why are these sources so big?\\
- Because they include thousands of device drivers, many network
- protocols, support many architectures and filesystems...
- \item The Linux core (scheduler, memory management...) is pretty
- small!
- \end{itemize}
-\end{frame}
-
-\begin{frame}
- \frametitle{Linux kernel sources structure}
- As of kernel version v5.18 (in percentage of total number of lines).
+ Because they include numerous device drivers, network protocols,
+ architectures, filesystems... The core is pretty small!
+ \item As of kernel version v5.18 (in percentage of total number of lines):
% Update the data by running utils/source-code-line-statistics
% in the Linux kernel source directory
+ \end{itemize}
+ {\small
\begin{columns}
- \column[t]{0.33\textwidth}
- Source code:
+ \column[t]{0.24\textwidth}
\begin{itemize}
\item \kdir{drivers}: 61.1\%
\item \kdir{arch}: 11.6\%
@@ -134,41 +126,24 @@
\item \kdir{sound}: 4.1\%
\item \kdir{tools}: 3.9\%
\item \kdir{net}: 3.7\%
+ \end{itemize}
+ \column[t]{0.32\textwidth}
+ \begin{itemize}
\item \kdir{include}: 3.5\%
+ \item \kdir{Documentation}: 3.4\%
\item \kdir{kernel}: 1.3\%
\item \kdir{lib}: 0.7\%
\item \kdir{usr}: 0.6\%
- \end{itemize}
- \column[t]{0.33\textwidth}
- \begin{itemize}
\item \kdir{mm}: 0.5\%
- \item \kdir{scripts}: 0.4\%
- \item \kdir{security}: 0.3\%
- \item \kdir{crypto}: 0.3\%
- \item \kdir{block}: 0.2\%
- \item \kdir{samples}: 0.1\%
- \item \kdir{ipc}: 0.0\%
- \item \kdir{virt}: 0.0\%
- \item \kdir{init}: 0.0\%
- \item \kdir{certs}: 0.0\%
- \end{itemize}
- \column[t]{0.33\textwidth}
- Doc and bindings:
- \begin{itemize}
- \item \kdir{Documentation}: 3.4\%
- \end{itemize}
- Build system files:
- \begin{itemize}
- \item \kfile{Kbuild}
- \item \kfile{Kconfig}
- \item \kfile{Makefile}
\end{itemize}
- Other files:
+ \column[t]{0.34\textwidth}
\begin{itemize}
- \item \kfile{COPYING}
- \item \kfile{CREDITS}
- \item \kfile{MAINTAINERS}
- \item \kfile{README}
+ \item \kdir{scripts}, \kdir{security}, \kdir{crypto}, \kdir{block},
+ \kdir{samples}, \kdir{ipc}, \kdir{virt}, \kdir{init}, \kdir{certs}: <0.5\%
+ \item Build system files: \kfile{Kbuild}, \kfile{Kconfig}, \kfile{Makefile}
+ \item Other files: \kfile{COPYING}, \kfile{CREDITS},
+ \kfile{MAINTAINERS}, \kfile{README}
\end{itemize}
\end{columns}
+ }
\end{frame}
More information about the training-materials-updates
mailing list