From 1ef131987ce5ce27c5bfb7fbcbeead0eefd1fd82 Mon Sep 17 00:00:00 2001
From: Manuel Traut <manut@linutronix.de>
Date: Wed, 9 Jan 2019 18:39:35 +0100
Subject: pres_kernel-basics_en: add translated version

Signed-off-by: Manuel Traut <manut@linutronix.de>
---
 .../kernel-basics/pres_kernel-basics_en.tex        | 318 +++++++++++++++++++++
 1 file changed, 318 insertions(+)
 create mode 100644 kernel-devel/kernel-basics/pres_kernel-basics_en.tex

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

diff --git a/kernel-devel/kernel-basics/pres_kernel-basics_en.tex b/kernel-devel/kernel-basics/pres_kernel-basics_en.tex
new file mode 100644
index 0000000..c4a84ce
--- /dev/null
+++ b/kernel-devel/kernel-basics/pres_kernel-basics_en.tex
@@ -0,0 +1,318 @@
+\input{configpres}
+
+\title{Linux Kernel}
+\maketitle
+
+\subsection{Basics}
+
+\subsubsection{Facts}
+\begin{frame}
+\frametitle{Facts}
+\begin{itemize}
+\item Free Software (GPL Version 2)
+\item Many different HW architectures and platforms are supported
+\item Scales from supercomputers to embedded devices
+\item Huge number of drivers
+\item It's easy to add own drivers
+\item Codequality is high
+\item Quality is ensured by Code-Review of independent persons/organizations
+\item Rapid development speed
+\item Excellent network capabilities / performance
+\item Simple Real-time concept
+\end{itemize}
+\end{frame}
+
+\subsubsection{Linux 4.16-rc5 (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{Architecture}
+
+\begin{frame}
+\frametitle{Subsystems}
+\centering
+\includegraphics[width=\textwidth]{images/linux-kernel-map.png}
+\end{frame}
+
+
+\begin{frame}
+\frametitle{Drivers}
+\centering
+\includegraphics[width=0.8\textwidth]{images/Subsystems.png}
+\end{frame}
+
+
+
+\subsubsection{Maintainer}
+\begin{frame}
+\frametitle{Kernel Maintainer}
+\begin{itemize}
+\item Responsible for a driver, filesystem or subsystem
+\pause
+\item This includes new developments and bugfixes
+\pause
+\item Review of change requests
+\pause
+\item Accept/decline of change requests
+\pause
+\item Transfer of accepted changes / patches
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Made by real people}
+\begin{itemize}
+\item Meet developers / maintainers on conferences
+\pause
+\item Technical communication via email / mailinglists
+\pause
+\item Everyone can see who has developed the code
+\pause
+\item Code of Conduct
+\end{itemize}
+\end{frame}
+
+
+\begin{frame}
+\frametitle{Linus Torvalds}
+\includegraphics[height=5cm]{images/linus7.jpg}
+
+Maintains: THE REST
+
+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
+IPX releases, Original Linux netatalk patches, Current 3c501 hacker, Watchdog
+timer drivers, Linux/SMP
+
+Company: intel
+\end{frame}
+
+\begin{frame}
+\frametitle{Andrew Morton}
+\includegraphics[height=5cm]{images/morton.jpg}
+
+Maintains: EXT3, JOURNALLING LAYER FOR BLOCK DEVICES (JBD)
+
+Credits: Linux Quality Management
+
+Company: Google
+\end{frame}
+
+\begin{frame}
+\frametitle{Greg Kroah-Hartmann}
+\includegraphics[height=5cm]{images/greg.jpg}
+
+Maintains: SERIAL DRIVER, DRIVER CORE, KOBJECTS, DEBUGFS AND SYSFS, STABLE
+BRANCH, STAGING SUBSYSTEM, TTY LAYER, USB SERIAL DRIVER, USB SUBSYSTEM,
+USERSPACE I/O
+
+Company: SuSE
+\end{frame}
+
+\begin{frame}
+\frametitle{Christoph Hellwig}
+\includegraphics[height=5cm]{images/hch.jpg}
+
+Maintains: FREEVXFS FILESYSTEM, PERSONALITY HANDLING, SYSV FILESYSTEM, XFS
+FILESYSTEM
+Company: ??
+\end{frame}
+
+\begin{frame}
+\frametitle{Thomas Gleixner}
+\includegraphics[height=5cm]{images/tglx.jpg}
+
+Maintains: HIGH-RESOLUTION TIMERS, CLOCKEVENTS, DYNTICKS, POSIX CLOCKS and
+TIMERS, X86 ARCHITECTURE (32-BIT AND 64-BIT), PREEMPT RT
+
+Company: linutronix
+\end{frame}
+
+\subsubsection{Development Process}
+\begin{frame}
+\frametitle{Development Process}
+\begin{itemize}
+\item Change requests are formulated as source-code patches
+\pause
+\item Review / technical discussion on Mailinglists
+\item There are ML for the hole kernel and for several subsystems.
+\pause
+\item Documented and checkable Coding Style
+\pause
+\item Guidelines and tooling for checking and transfering patches
+\item e.g. scripts/checkpatch.pl
+\pause
+\item Only technical arguments count.
+\pause
+\item MAINTAINER file in the source tree describes responsibilites
+\end{itemize}
+\end{frame}
+
+\subsubsection{Versioning}
+\begin{frame}
+\frametitle{Versionierung (5.x)}
+\begin{itemize}
+\item 5.8.2 or 5.9-rc1
+\pause
+\item 5. - Historical defined (successor of 4.20, 3.19, 2.6.39)
+\pause
+\item .8 - Current version
+\pause
+\item .1 OR -rc1 - Security Fix OR Release Candidate
+\end{itemize}
+\end{frame}
+
+
+\begin{frame}
+\frametitle{Versioning (0.x \dots 1.3.x)}
+\begin{itemize}
+\item 09.91-02.94: 0.01\dots0.99 Follows no schema
+\item 03.94-03.94: 1.0 1st stable kernel
+\item 04.94-03.95: 1.1.x Developer Version
+\item 03.95-08.95: 1.2.x Stable Kernel (added Alpha, MIPS, SPARC)
+\item 06.95-05.96: 1.3.x Developer Version (added MP Support)
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\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 Developer Version
+\item 01.99-02.04: 2.2.x Stable Kernel, IPv6
+\item 05.99-05.00: 2.3.x Developer Version
+\item 01.01-12.08: 2.4.x Stable Kernel, USB, ACPI, iptables
+\item 11.01-07.03: 2.5.x Developer Version
+\item 12.03-TODAY: 2.6.x, 3.x, 4.x, 5.x New schema
+\end{itemize}
+Version Boundaries
+\begin{itemize}
+\item 05.11: 2.6.39\dots3.0
+\item 02.15: 3.19\dots4.0
+\item 01.19: 4.20\dots5.0
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\includegraphics[height=6cm]{images/kernelversions.png}
+
+Source: http://article.sapub.org
+\end{frame}
+
+
+\subsubsection{Development Speed}
+\begin{frame}
+\frametitle{Linux 5.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}
+\includegraphics[height=6cm]{images/patches_per_hour.png}
+
+Source: https://github.com/gregkh/kernel-development
+\end{frame}
+
+\begin{frame}
+\includegraphics[height=6cm]{images/linux-kernel-development-companies.png}
+
+Source: https://fossbytes.com
+\end{frame}
+
+
+\subsubsection{staging and next}
+\begin{frame}
+\frametitle{staging}
+\begin{itemize}
+\item Directory inside the Kernel source tree
+\pause
+\item Allows development in 'Mainline'
+\pause
+\item Mainly used for driver development
+\pause
+\item Requirement: active development
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{next}
+\begin{itemize}
+\item Changes considered to be merged into the next Kernel version
+\item Tracks several git trees and quilt queues
+\end{itemize}
+\begin{lstlisting}
+Feb-2008, Stephen Rothwell:
+I hope to recreate this tree every day automatically.
+In order to do this, any tree that has a conflict will
+be dropped from that days tree.
+The maintainer will be notified. I hope to provide some
+clue as to what the conflict is with, but probably not
+initially. I will attempt to build the tree between each
+merge (and a failed build will again cause the offending
+tree to be dropped). These builds will be necessarily
+restricted to probably one architecture/config.
+\end{lstlisting}
+\end{frame}
+
+\subsubsection{Configuration}
+\begin{frame}[fragile]
+\frametitle{Kernel configuration}
+\begin{itemize}
+\item Huge number of configuration options
+\pause
+\item Stored in a .config file
+\pause
+\item Changing configuration: make menuconfig
+\pause
+\item Information about options are stored in Kconfig files
+\end{itemize}
+\end{frame}
+
+\input{tailpres}
-- 
cgit v1.2.3

