From c37e74ef1ad8e2835a34a2582956084c6d54ba97 Mon Sep 17 00:00:00 2001
From: Manuel Traut <manut@linutronix.de>
Date: Sat, 17 Mar 2018 00:39:32 +0100
Subject: kernel-basics: extend and update development statistics

Signed-off-by: Manuel Traut <manut@linutronix.de>
---
 .../kernel-basics/pres_kernel-basics_de.tex        | 259 +++++++++------------
 1 file changed, 108 insertions(+), 151 deletions(-)

(limited to 'kernel-devel/kernel-basics/pres_kernel-basics_de.tex')

diff --git a/kernel-devel/kernel-basics/pres_kernel-basics_de.tex b/kernel-devel/kernel-basics/pres_kernel-basics_de.tex
index b3a2b0f..1e64d25 100644
--- a/kernel-devel/kernel-basics/pres_kernel-basics_de.tex
+++ b/kernel-devel/kernel-basics/pres_kernel-basics_de.tex
@@ -1,45 +1,85 @@
 \input{configpres}
 
-\title{Kernel-Grundlagen}
+\title{Linux Kernel}
 \maketitle
 
 \subsection{Grundlagen}
 
-\subsubsection{Kernel Eigenschaften}
+\subsubsection{Facts}
 \begin{frame}
-\frametitle{Kernel Eigenschaften}
+\frametitle{Facts}
 \begin{itemize}
 \item Freie Software (GPL Version 2)
-\pause
 \item Auf vielen Plattformen lauffähig
-\pause
 \item Hohe Skalierbarkeit vom Handy bis zum Supercomputer
-\pause
 \item Große Anzahl integrierter Treiber
-\pause
 \item Einfache Entwicklung eigener Treiber
-\pause
 \item Codequalität auf hohem Niveau
-\pause
 \item Qualitätssicherung durch Code-Review unabhängiger Personen
-\pause
-\item ca. 10 Millionen Codezeilen (ca. 80\% davon Treiber)
-\pause
 \item hohes Entwicklungstempo
-\pause
 \item hervorragende Netzwerk-Fähigkeiten
-\pause
 \item Echtzeit-Fähigkeit leicht und sauber erreichbar
 \end{itemize}
 \end{frame}
 
-\subsubsection{Aufbau}
+\subsubsection{Umfang - Linux 4.16-rc5 (16.03.2018)}
+
+\begin{frame}[fragile]
+\frametitle{Lines of code by language}
+\begin{verbatim}
+ansic:    16.686.769 (97.83%)
+asm:         295.663  (1.73%)
+perl:         26.424  (0.15%)
+sh:           19.168  (0.11%)
+python:       15.685  (0.09%)
+cpp:           4.919  (0.03%)
+yacc:          4.600  (0.03%)
+lex:           2.478  (0.01%)
+awk:           1.387  (0.01%)
+pascal:          231  (0.00%)
+sed:               5  (0.00%)
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Lines of code per folder}
+\begin{verbatim}
+11.134.588  drivers  66%  c=11.124.729 asm=  2.744
+ 2.073.368  arch     11%  c= 1.778.733 asm=290.614
+   869.993  fs        5%  c=   869.993
+   775.712  sound     5%  c=   775.712
+   712.404  net       5%  c=   712.404
+   540.702  include   3%  c=   538.568
+   286.340  tools     2%  c=   253.768
+                     python=    12.196
+                         sh=    11.354
+                       perl=     4.012
+   191.741  kernel    2%  c=   191.741
+   101.006  lib       1%  c=   100.874
+    83.858  mm        1%  c=    83.858
+    81.386  crypto    1%  c=    81.386
+    59.271  security  1%  c=    59.271
+\end{verbatim}
+\end{frame}
+
+
+\subsubsection{Architektur}
+
+\begin{frame}
+\frametitle{Subsysteme}
+\centering
+\includegraphics[width=\textwidth]{images/linux-kernel-map.png}
+\end{frame}
+
+
 \begin{frame}
-\frametitle{Aufbau des Kernels}
+\frametitle{Treiber}
 \centering
 \includegraphics[width=0.8\textwidth]{images/Subsystems.png}
 \end{frame}
 
+
+
 \subsubsection{Maintainer}
 \begin{frame}
 \frametitle{Kernel Maintainer}
@@ -57,6 +97,7 @@
 \end{frame}
 
 \begin{frame}
+\frametitle{Linus Torvalds}
 \includegraphics[height=5cm]{images/linus7.jpg}
 
 Maintains: THE REST
@@ -65,6 +106,7 @@ Company: linuxfoundation
 \end{frame}
 
 \begin{frame}
+\frametitle{Alan Cox}
 \includegraphics[height=5cm]{images/alan.png}
 
 Credits: NET2Debugged/NET3 author, Network layer debugging, Initial AX.25 and
@@ -75,6 +117,7 @@ Company: intel
 \end{frame}
 
 \begin{frame}
+\frametitle{Andrew Morton}
 \includegraphics[height=5cm]{images/morton.jpg}
 
 Maintains: EXT3, JOURNALLING LAYER FOR BLOCK DEVICES (JBD)
@@ -85,6 +128,7 @@ Company: Linux Foundation
 \end{frame}
 
 \begin{frame}
+\frametitle{Greg Kroah-Hartmann}
 \includegraphics[height=5cm]{images/greg.jpg}
 
 Maintains: SERIAL DRIVER, DRIVER CORE, KOBJECTS, DEBUGFS AND SYSFS, STABLE
@@ -95,6 +139,7 @@ Company: Linux Foundation
 \end{frame}
 
 \begin{frame}
+\frametitle{Christoph Hellwig}
 \includegraphics[height=5cm]{images/hch.jpg}
 
 Maintains: FREEVXFS FILESYSTEM, PERSONALITY HANDLING, SYSV FILESYSTEM, XFS
@@ -104,6 +149,7 @@ Company: Freelancer
 \end{frame}
 
 \begin{frame}
+\frametitle{Thomas Gleixner}
 \includegraphics[height=5cm]{images/tglx.jpg}
 
 Maintains: HIGH-RESOLUTION TIMERS, CLOCKEVENTS, DYNTICKS, POSIX CLOCKS and
@@ -133,13 +179,13 @@ Company: linutronix
 \end{itemize}
 \end{frame}
 
-\subsubsection{Versionierung (3.x)}
+\subsubsection{Versionierung}
 \begin{frame}
-\frametitle{Versionierung (3.x)}
+\frametitle{Versionierung (4.x)}
 \begin{itemize}
-\item 3.8.2 oder 3.9-rc1
+\item 4.8.2 oder 4.9-rc1
 \pause
-\item 3. - historisch gegeben (Nachfolger von 2.6.39)
+\item 4. - historisch gegeben
 \pause
 \item .8 - aktuelle Version
 \pause
@@ -149,156 +195,67 @@ Company: linutronix
 \end{itemize}
 \end{frame}
 
-\subsubsection{Entwicklungstempo}
+
 \begin{frame}
-\frametitle{Entwicklungstempo}
+\frametitle{Versionierung (0.x \dots 1.3.x)}
 \begin{itemize}
-\item 2 \dots 3 months release cycle
-\item \dots about 10,000 patches each cycle
-\item \dots from over 1000 developers
-\item \dots about 200 companies
+\item 09.91-02.94: 0.01\dots0.99 kein definiertes Versionierungsschema
+\item 03.94-03.94: 1.0 erster stabiler Kernel
+\item 04.94-03.95: 1.1.x Entwicklerversion
+\item 03.95-08.95: 1.2.x Stabiler Kernel Alpha, MIPS, SPARC
+\item 06.95-05.96: 1.3.x Entwicklerversion MP Support
 \end{itemize}
-Quelle: http://www.linuxfoundation.org/docs/lf\_linux\_kernel\_development\_2010.pdf
 \end{frame}
 
 \begin{frame}
-\includegraphics[height=6.5cm]{images/linux-devel-cycle.png}
+\frametitle{Versionierung (2.0.x \dots 4.x)}
+\begin{itemize}
+\item 06.96-02.04: 2.0.x SMP Support
+\item 09.96-01.99: 2.1.x Entwicklerversion
+\item 01.99-02.04: 2.2.x Stabiler Kernel, IPv6
+\item 05.99-05.00: 2.3.x Entwicklerversion
+\item 01.01-12.08: 2.4.x Stabiler Kernel, USB, ACPI, iptables
+\item 11.01-07.03: 2.5.x Entwicklerversion
+\item 12.03-TODAY: 2.6.x, 3.x, 4.x neues Entwicklungsschema
+\end{itemize}
+Versionssprünge
+\begin{itemize}
+\item 05.11: 2.6.39\dots3.0
+\item 02.15: 3.19\dots4.0
+\end{itemize}
 \end{frame}
 
 \begin{frame}
-\includegraphics[height=6.5cm]{images/linux-found-changes-version.png}
-\begin{tabular}{ l | l| }
-2.6.25 &  12,243 \\
-2.6.26 &  9,941 \\
-2.6.27 &  10,628 \\
-2.6.28 &  9,048 \\
-2.6.29 &  11,678 \\
-2.6.30 &  11,989 \\
-2.6.31 &  10,883 \\
-2.6.32 &  10,989 \\
-2.6.33 &  10,871 \\
-2.6.34 &  9,443 \\
-2.6.35 &  9,801 \\
-\end{tabular}
-
-Source: Linux Foundation
-\end{frame}
+	\includegraphics[height=6cm]{images/kernelversions.png}
 
-\begin{frame}
-\includegraphics[height=6.5cm]{images/linux-found-changes-hour.png}
-\begin{tabular}{ l | l| }
-2.6.25 & 6.15 \\
-2.6.26 & 4.71 \\
-2.6.27 & 5.03 \\
-2.6.28 & 4.96 \\
-2.6.29 & 5.47 \\
-2.6.30 & 6.40 \\
-2.6.31 & 4.93 \\
-2.6.32 & 5.46 \\
-2.6.33 & 5.39 \\
-2.6.34 & 4.86 \\
-2.6.35 & 5.30 \\
-\end{tabular}
-
-Source: Linux Foundation
+	Quelle: http://article.sapub.org
 \end{frame}
 
-\begin{frame}
-\frametitle{Kernel size}
-\begin{tabular}{ l | l | r }
-Version & Files   & Lines \\
-\hline
-2.6.11  & 17,090  & 6,624,076 \\
-2.6.13  & 18,090  & 6,988,800 \\
-2.6.15  & 18,811  & 7,290,070 \\
-2.6.17  & 19,553  & 7,588,014 \\
-2.6.19  & 20,936  & 7,976,221 \\
-2.6.21  & 21,614  & 8,246,517 \\
-2.6.23  & 22,530  & 8,566,606 \\
-2.6.25  & 23,813  & 9,232,592 \\
-2.6.27  & 24,356  & 9,630,074 \\
-2.6.29  & 26,702  & 10,934,554 \\
-2.6.31  & 29,143  & 11,970,124 \\
-2.6.33  & 31,584  & 12,912,684 \\
-2.6.35  & 33,335  & 13,468,253 \\
-\end{tabular}
-
-Source: Linux Foundation
-\end{frame}
 
+\subsubsection{Entwicklungstempo}
 \begin{frame}
-\frametitle{Kernel lines per day}
-\begin{tabular}{ l | r | l | r }
-Version & Added & Deleted & Modified \\
-\hline
-2.6.11 & 3,224    & 1,360    &   1,290 \\
-2.6.13 & 4,443    & 1,553    &   1,711 \\
-2.6.15 & 5,614    & 3,454    &   2,219 \\
-2.6.17 & 3,635    & 2,469    &   1,329 \\
-2.6.19 & 6,013    & 2,900    &   1,862 \\
-2.6.21 & 3,256    & 1,479    &   982 \\
-2.6.23 & 3,747    & 3,034    &   1,343 \\
-2.6.25 & 7,980    & 3,488    &   2,430 \\
-2.6.27 & 12,270   & 9,791    &   2,102 \\
-2.6.29 & 14,678   & 5,516    &   2,454 \\
-2.6.31 & 9,408    & 4,962    &   1,635 \\
-2.6.33 & 8,925    & 4,379    &   2,841 \\
-2.6.35 & 7,896    & 5,037    &   1,802 \\
-\end{tabular}
-
-Source: Linux Foundation
+\frametitle{Linux 4.x}
+\begin{itemize}
+\item 8 \dots 10 weeks release cycle
+\item \dots about 14,000 patches each cycle
+\item \dots from about 1500 developers
+\item \dots about 200 companies
+\end{itemize}
 \end{frame}
 
 \begin{frame}
-\frametitle{Linux Companies}
-contribution between 2.6.11 and 2.6.35
-\begin{tabular}{ l | r | r }
-Company & Changes & Percent of Total \\
-\hline
-None                   &  35,663  &  18.9 \\
-Red Hat                &  23,356  &  12.4 \\
-Novell                 &  13,120  &  7.0 \\
-IBM                    &  13,026  &  6.9 \\
-Unknown                &  12,060  &  6.4 \\
-Intel                  &  11,028  &  5.8 \\
-consultants            &  4,817   &  2.6 \\
-Oracle                 &  4,367   &  2.3 \\
-Renesas Technology     &  2,621   &  1.4 \\
-The Linux Foundation   &  2,488   &  1.3 \\
-academics              &  2,464   &  1.3 \\
-SGI                    &  2,450   &  1.3 \\
-Fujitsu                &  2,293   &  1.2 \\
-Parallels              &  2,226   &  1.2 \\
-Analog Devices         &  1,955   &  1.0 \\
-Nokia                  &  1,896   &  1.0 \\
-\end{tabular}
+\includegraphics[height=7cm]{images/patches_per_hour.png}
+
+Quelle: https://github.com/gregkh/kernel-development
 \end{frame}
 
 \begin{frame}
-\frametitle{Linux Companies (cont.)}
-contribution between 2.6.11 and 2.6.35
-\begin{tabular}{ l | r | r }
-Company & Changes & Percent of Total \\
-\hline
-HP                     &  1,854   &  1.0 \\
-MontaVista             &  1,821   &  1.0 \\
-Google                 &  1,565   &  0.8 \\
-AMD                    &  1,518   &  0.8 \\
-Freescale              &  1,501   &  0.8 \\
-linutronix             &  1,470   &  0.8 \\
-MIPS Technologies      &  1,410   &  0.7 \\
-NetApp                 &  1,322   &  0.7 \\
-Marvell                &  1,241   &  0.7 \\
-Atheros Communications &  1,234   &  0.7 \\
-Astaro                 &  1,222   &  0.6 \\
-Broadcom               &  1,130   &  0.6 \\
-QLogic                 &  1,076   &  0.6 \\
-NTT                    &  1,068   &  0.6 \\
-\end{tabular}
-
-Source: Linux Foundation
+\includegraphics[height=9cm]{images/linux-kernel-development-companies.png}
+
+Quelle: https://fossbytes.com
 \end{frame}
 
+
 \subsubsection{staging und next}
 \begin{frame}
 \frametitle{staging}
@@ -340,11 +297,11 @@ restricted to probably one architecture/config.
 \begin{itemize}
 \item Grosse Zahl von Konfigurations-Optionen
 \pause
-\item Speicherung in ".config"
+\item Speicherung in .config
 \pause
-\item Ändern der Konfiguration: "make menuconfig"
+\item Ändern der Konfiguration: make menuconfig
 \pause
-\item Informationen über Optionen in "Kconfig"-Dateien
+\item Informationen über Optionen in Kconfig-Dateien
 \pause
 \item Kernel-Buildsystem: Eigenes Subsystem mit eigenem Maintainer
 \pause
-- 
cgit v1.2.3

