summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel Traut <manut@linutronix.de>2018-03-17 00:39:32 +0100
committerManuel Traut <manut@linutronix.de>2018-03-17 00:43:08 +0100
commitc37e74ef1ad8e2835a34a2582956084c6d54ba97 (patch)
tree4690928c295b48910d7a4b98b124485ee9abddac
parentdb8a42587e599bd6bb4778aad30810cf05a1ef60 (diff)
kernel-basics: extend and update development statistics
Signed-off-by: Manuel Traut <manut@linutronix.de>
-rw-r--r--images/kernelversions.pngbin0 -> 24780 bytes
-rw-r--r--images/linux-kernel-development-companies.pngbin0 -> 104428 bytes
-rw-r--r--images/linux-kernel-map.pngbin0 -> 298088 bytes
-rw-r--r--images/patches_per_hour.pngbin0 -> 103108 bytes
-rw-r--r--kernel-devel/kernel-basics/pres_kernel-basics_de.tex259
5 files changed, 108 insertions, 151 deletions
diff --git a/images/kernelversions.png b/images/kernelversions.png
new file mode 100644
index 0000000..b265076
--- /dev/null
+++ b/images/kernelversions.png
Binary files differ
diff --git a/images/linux-kernel-development-companies.png b/images/linux-kernel-development-companies.png
new file mode 100644
index 0000000..c2dc242
--- /dev/null
+++ b/images/linux-kernel-development-companies.png
Binary files differ
diff --git a/images/linux-kernel-map.png b/images/linux-kernel-map.png
new file mode 100644
index 0000000..12371cc
--- /dev/null
+++ b/images/linux-kernel-map.png
Binary files differ
diff --git a/images/patches_per_hour.png b/images/patches_per_hour.png
new file mode 100644
index 0000000..ae69ac6
--- /dev/null
+++ b/images/patches_per_hour.png
Binary files differ
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