[FE training-materials-updates] kernel-source-code-drivers: simply part about no stable kernel API

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Wed Jul 16 17:02:15 CEST 2014


Repository : git://git.free-electrons.com/training-materials.git

On branch  : master
Link       : http://git.free-electrons.com/training-materials/commit/?id=6a4cb0f5c41987b8e665d24d51fe9201d7426481

>---------------------------------------------------------------

commit 6a4cb0f5c41987b8e665d24d51fe9201d7426481
Author: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Date:   Wed Jul 16 16:16:51 2014 +0200

    kernel-source-code-drivers: simply part about no stable kernel API
    
    Three slides to explain this is a bit too much, and the USB example
    dating from 2006 is kind of dated. Reword things a bit, and summarize.
    
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>


>---------------------------------------------------------------

6a4cb0f5c41987b8e665d24d51fe9201d7426481
 .../kernel-source-code-drivers.tex                 |   51 ++++----------------
 1 file changed, 10 insertions(+), 41 deletions(-)

diff --git a/slides/kernel-source-code-drivers/kernel-source-code-drivers.tex b/slides/kernel-source-code-drivers/kernel-source-code-drivers.tex
index 4fae6cf..549843f 100644
--- a/slides/kernel-source-code-drivers/kernel-source-code-drivers.tex
+++ b/slides/kernel-source-code-drivers/kernel-source-code-drivers.tex
@@ -79,50 +79,19 @@
 \end{frame}
 
 \begin{frame}
-  \frametitle{No stable Linux internal API 1/3}
+  \frametitle{No stable Linux internal API}
   \begin{itemize}
   \item The internal kernel API to implement kernel code can undergo
-    changes between two stable 2.6.x or 3.x releases. A stand-alone
-    driver compiled for a given version may no longer compile or work
-    on a more recent one. See
-    \kerneldoc{stable_api_nonsense.txt} in kernel sources for
+    changes between two releases.
+  \item In-tree drivers are updated by the developer proposing the API
+    change: works great for mainline code.
+  \item An out-of-tree driver compiled for a given version may no
+    longer compile or work on a more recent one.
+  \item See \kerneldoc{stable_api_nonsense.txt} in kernel sources for
     reasons why.
-  \item Of course, the external API must not change (system calls,
-    \code{/proc}, \code{/sys}), as it could break existing
-    programs. New features can be added, but kernel developers try to
-    keep backward compatibility with earlier versions, at least for 1
-    or several years.
-  \end{itemize}
-\end{frame}
-
-\begin{frame}
-  \frametitle{No stable Linux internal API 2/3}  
-  \begin{itemize}
-  \item Whenever a developer changes an internal API, (s)he also has
-    to update all kernel code which uses it. Nothing broken!
-  \item Works great for code in the mainline kernel tree.
-  \item Difficult to keep in line for out of tree or closed-source
-    drivers!
-  \end{itemize}
-\end{frame}
-
-\begin{frame}
-  \frametitle{No stable Linux internal API 3/3}
-  \begin{itemize}
-  \item USB example
-    \begin{itemize}
-    \item Linux has updated its USB internal API at least 3 times
-      (fixes, security issues, support for high-speed devices) and has
-      now the fastest USB bus speeds (compared to other systems)
-    \item Windows XP also had to rewrite its USB stack 3 times. But,
-      because of closed-source, binary drivers that can't be updated,
-      they had to keep backward compatibility with all earlier
-      implementation. This is very costly (development, security,
-      stability, performance).
-    \end{itemize}
-  \item See “Myths, Lies, and Truths about the Linux Kernel”, by Greg
-    K.H., for details about the kernel development process:
-    \url{http://kroah.com/log/linux/ols_2006_keynote.html}
+  \item Of course, the kernel to userspace API does not change (system
+    calls, \code{/proc}, \code{/sys}), as it would break existing
+    programs.
   \end{itemize}
 \end{frame}
 



More information about the training-materials-updates mailing list