diff options
| author | Manuel Traut <manut@linutronix.de> | 2018-03-17 00:39:32 +0100 |
|---|---|---|
| committer | Manuel Traut <manut@linutronix.de> | 2018-03-17 00:43:08 +0100 |
| commit | c37e74ef1ad8e2835a34a2582956084c6d54ba97 (patch) | |
| tree | 4690928c295b48910d7a4b98b124485ee9abddac | |
| parent | db8a42587e599bd6bb4778aad30810cf05a1ef60 (diff) | |
kernel-basics: extend and update development statistics
Signed-off-by: Manuel Traut <manut@linutronix.de>
| -rw-r--r-- | images/kernelversions.png | bin | 0 -> 24780 bytes | |||
| -rw-r--r-- | images/linux-kernel-development-companies.png | bin | 0 -> 104428 bytes | |||
| -rw-r--r-- | images/linux-kernel-map.png | bin | 0 -> 298088 bytes | |||
| -rw-r--r-- | images/patches_per_hour.png | bin | 0 -> 103108 bytes | |||
| -rw-r--r-- | kernel-devel/kernel-basics/pres_kernel-basics_de.tex | 259 |
5 files changed, 108 insertions, 151 deletions
diff --git a/images/kernelversions.png b/images/kernelversions.png Binary files differnew file mode 100644 index 0000000..b265076 --- /dev/null +++ b/images/kernelversions.png diff --git a/images/linux-kernel-development-companies.png b/images/linux-kernel-development-companies.png Binary files differnew file mode 100644 index 0000000..c2dc242 --- /dev/null +++ b/images/linux-kernel-development-companies.png diff --git a/images/linux-kernel-map.png b/images/linux-kernel-map.png Binary files differnew file mode 100644 index 0000000..12371cc --- /dev/null +++ b/images/linux-kernel-map.png diff --git a/images/patches_per_hour.png b/images/patches_per_hour.png Binary files differnew file mode 100644 index 0000000..ae69ac6 --- /dev/null +++ b/images/patches_per_hour.png 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 |
