[bootlin/training-materials updates] master: Add diagram for the absence of kernel binary compatibility (99fef130)

Michael Opdenacker michael.opdenacker at bootlin.com
Wed Mar 20 06:24:59 CET 2019


Repository : https://github.com/bootlin/training-materials
On branch  : master
Link       : https://github.com/bootlin/training-materials/commit/99fef13067d51ba828a67419fed9321a8325533d

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

commit 99fef13067d51ba828a67419fed9321a8325533d
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date:   Tue Mar 19 15:41:49 2019 +0100

    Add diagram for the absence of kernel binary compatibility
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>


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

99fef13067d51ba828a67419fed9321a8325533d
 .../kernel-source-code-drivers.tex                 |  35 +-
 .../no-stable-kernel-abi.svg                       | 799 +++++++++++++++++++++
 2 files changed, 821 insertions(+), 13 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 ddb885f0..46a64d42 100644
--- a/slides/kernel-source-code-drivers/kernel-source-code-drivers.tex
+++ b/slides/kernel-source-code-drivers/kernel-source-code-drivers.tex
@@ -82,19 +82,28 @@
 
 \begin{frame}
   \frametitle{No stable Linux internal API}
-  \begin{itemize}
-  \item The internal kernel API to implement kernel code can undergo
-    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 \kerneldochtml{process/stable-api-nonsense} in kernel sources for
-    reasons why.
-  \item Of course, the kernel to user space API does not change (system
-    calls, \code{/proc}, \code{/sys}), as it would break existing
-    programs.
-  \end{itemize}
+  \begin{columns}
+    \column{0.7\textwidth}
+    \begin{itemize}
+    \item The internal kernel API to implement kernel code can undergo
+      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 \kerneldochtml{process/stable-api-nonsense} in kernel sources for
+      reasons why.
+    \item Of course, the kernel to user space API does not change (system
+      calls, \code{/proc}, \code{/sys}), as it would break existing
+      programs.
+    \end{itemize}
+    \column{0.3\textwidth}
+    \includegraphics[width=\textwidth]{slides/kernel-source-code-drivers/no-stable-kernel-abi.pdf}
+    \scriptsize
+    \vfill
+    Image credits (Wikipedia):\\
+    \url{https://bit.ly/2U2rdGB}
+  \end{columns}
 \end{frame}
 
 \begin{frame}
diff --git a/slides/kernel-source-code-drivers/no-stable-kernel-abi.svg b/slides/kernel-source-code-drivers/no-stable-kernel-abi.svg
new file mode 100644
index 00000000..57fedb68
--- /dev/null
+++ b/slides/kernel-source-code-drivers/no-stable-kernel-abi.svg
@@ -0,0 +1,799 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="no-stable-kernel-abi.svg"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)"
+   version="1.1"
+   id="svg2"
+   height="615.73071"
+   width="631.92841">
+  <title
+     id="title4177">Linux kernel interfaces</title>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.4"
+     inkscape:cx="263.53901"
+     inkscape:cy="298.68267"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer6"
+     showgrid="false"
+     inkscape:window-width="1853"
+     inkscape:window-height="1052"
+     inkscape:window-x="1987"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:snap-bbox="true"
+     inkscape:bbox-paths="true"
+     inkscape:bbox-nodes="true"
+     inkscape:snap-bbox-edge-midpoints="true"
+     inkscape:snap-bbox-midpoints="true"
+     inkscape:object-paths="true"
+     inkscape:snap-intersection-paths="true"
+     inkscape:object-nodes="true"
+     inkscape:snap-smooth-nodes="true"
+     inkscape:snap-midpoints="true"
+     inkscape:snap-object-midpoints="true"
+     inkscape:snap-center="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:snap-global="false"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:snap-grids="false"
+     inkscape:snap-to-guides="true"
+     inkscape:snap-page="true"
+     inkscape:snap-nodes="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid5112"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true"
+       originx="-226.67683"
+       originy="729.65564"
+       spacingx="1.0666667"
+       spacingy="1.0666667" />
+  </sodipodi:namedview>
+  <defs
+     id="defs4">
+    <inkscape:path-effect
+       effect="skeletal"
+       id="path-effect4557"
+       is_visible="true"
+       pattern="m 56.3846,1.5 h 2851.2865 c 30.406,0 54.8844,10.74041 54.8844,24.08163 v 128.83674 c 0,13.34123 -24.4784,24.08163 -54.8844,24.08163 H 56.3846 C 25.9783,178.5 1.5,167.7596 1.5,154.41837 V 25.58163 C 1.5,12.24041 25.9783,1.5 56.3846,1.5 Z"
+       copytype="single"
+       prop_scale="1"
+       scale_y_rel="false"
+       spacing="0"
+       normal_offset="0"
+       tang_offset="0"
+       prop_units="false"
+       vertical_pattern="false"
+       fuse_tolerance="0" />
+    <inkscape:path-effect
+       effect="skeletal"
+       id="path-effect4320"
+       is_visible="true"
+       pattern="M 30,1.4999999 1.4999999,25.28125 H 16.5 V 41.5 h 27 V 25.28125 h 15 z"
+       copytype="repeated_stretched"
+       prop_scale="1"
+       scale_y_rel="false"
+       spacing="200"
+       normal_offset="0"
+       tang_offset="0"
+       prop_units="false"
+       vertical_pattern="false"
+       fuse_tolerance="0" />
+    <inkscape:path-effect
+       effect="skeletal"
+       id="path-effect3314"
+       is_visible="true"
+       pattern="m -3422.5999,-756.63473 h 335 c 11.08,0 20,8.92 20,20 v 60 c 0,11.08 -8.92,20 -20,20 h -335 c -11.08,0 -20,-8.92 -20,-20 v -60 c 0,-11.08 8.92,-20 20,-20 z"
+       copytype="single"
+       prop_scale="1"
+       scale_y_rel="false"
+       spacing="0"
+       normal_offset="0"
+       tang_offset="0"
+       prop_units="false"
+       vertical_pattern="false"
+       fuse_tolerance="0" />
+    <inkscape:path-effect
+       effect="skeletal"
+       id="path-effect7133"
+       is_visible="true"
+       pattern="M 30,1.4999999 1.4999999,25.28125 H 16.5 V 41.5 h 27 V 25.28125 h 15 z M 16.5,78.75893 V 94.97768 H 1.4999999 L 30,118.75893 58.5,94.97768 h -15 V 78.75893 Z"
+       copytype="repeated_stretched"
+       prop_scale="1"
+       scale_y_rel="false"
+       spacing="190"
+       normal_offset="0"
+       tang_offset="0"
+       prop_units="false"
+       vertical_pattern="false"
+       fuse_tolerance="0" />
+    <inkscape:path-effect
+       effect="skeletal"
+       id="path-effect7085"
+       is_visible="true"
+       pattern="M 30,1.4999999 1.4999999,25.28125 H 16.5 V 41.5 h 27 V 25.28125 h 15 z M 16.5,80.90179 V 97.12054 H 1.4999999 L 30,120.90179 58.5,97.12054 h -15 V 80.90179 Z"
+       copytype="repeated_stretched"
+       prop_scale="1"
+       scale_y_rel="false"
+       spacing="190"
+       normal_offset="0"
+       tang_offset="0"
+       prop_units="false"
+       vertical_pattern="false"
+       fuse_tolerance="0" />
+    <inkscape:path-effect
+       effect="skeletal"
+       id="path-effect7058"
+       is_visible="true"
+       pattern="M 30,1.4999999 1.4999999,25.28125 H 16.5 V 41.5 h 27 V 25.28125 h 15 z M 16.5,83.9375 v 16.21875 H 1.4999999 L 30,123.9375 58.5,100.15625 h -15 V 83.9375 Z"
+       copytype="repeated_stretched"
+       prop_scale="1"
+       scale_y_rel="false"
+       spacing="200"
+       normal_offset="0"
+       tang_offset="0"
+       prop_units="false"
+       vertical_pattern="false"
+       fuse_tolerance="0" />
+    <inkscape:path-effect
+       effect="skeletal"
+       id="path-effect6985"
+       is_visible="true"
+       pattern="m -530,661.49999 -28.5,23.78125 h 15 v 16.21875 h 27 v -16.21875 h 15 z m 0,43 -28.5,23.78125 h 15 v 16.21875 h 27 v -16.21875 h 15 z"
+       copytype="repeated_stretched"
+       prop_scale="1"
+       scale_y_rel="false"
+       spacing="0"
+       normal_offset="0"
+       tang_offset="0"
+       prop_units="false"
+       vertical_pattern="true"
+       fuse_tolerance="0" />
+    <inkscape:path-effect
+       effect="skeletal"
+       id="path-effect6961"
+       is_visible="true"
+       pattern="m 47.142857,58.642857 -28.5,23.78125 h 15 v 16.21875 h 27 v -16.21875 h 15 z"
+       copytype="repeated"
+       prop_scale="1"
+       scale_y_rel="false"
+       spacing="100"
+       normal_offset="0"
+       tang_offset="0"
+       prop_units="false"
+       vertical_pattern="false"
+       fuse_tolerance="0" />
+    <inkscape:path-effect
+       vertical="false"
+       scale_y_rel="false"
+       prop_scale="1"
+       bendpath="m 2332.125,319.32812 h 57"
+       is_visible="true"
+       id="path-effect3108"
+       effect="bend_path" />
+    <inkscape:path-effect
+       bendpath-nodetypes="cc"
+       vertical="false"
+       scale_y_rel="false"
+       prop_scale="1"
+       bendpath="m -1083.699,599.74741 c 150.86877,-199.1116 439.63445,-169.16702 592.95436,0"
+       is_visible="true"
+       id="path-effect3377"
+       effect="bend_path" />
+    <inkscape:path-effect
+       fuse_tolerance="0"
+       vertical_pattern="false"
+       prop_units="false"
+       tang_offset="0"
+       normal_offset="0"
+       spacing="0"
+       scale_y_rel="false"
+       prop_scale="1"
+       copytype="single_stretched"
+       pattern="m -27.142857,-107.14286 h 1"
+       is_visible="true"
+       id="path-effect3375"
+       effect="skeletal" />
+    <inkscape:path-effect
+       is_visible="true"
+       id="path-effect3371"
+       effect="spiro" />
+    <inkscape:path-effect
+       bendpath-nodetypes="cc"
+       vertical="false"
+       scale_y_rel="false"
+       prop_scale="1"
+       bendpath="m -1092.2704,495.46172 c 491.25465,39.05553 514.72045,61.878 638.66842,177.14286"
+       is_visible="true"
+       id="path-effect3369"
+       effect="bend_path" />
+    <inkscape:path-effect
+       effect="bend_path"
+       id="path-effect2986"
+       is_visible="true"
+       bendpath="m 1.5,20.78125 c 18.232425,-7.080985 37.031926,-8.067287 57,0"
+       prop_scale="1"
+       scale_y_rel="false"
+       vertical="false"
+       bendpath-nodetypes="cc" />
+    <clipPath
+       id="clipPath41564"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="fill:#ff0000"
+         d="m 174.5,296.28014 c -5.51259,-2.03807 -10.34186,-8.19825 -10.62251,-11.77821 -0.29919,-3.81655 -1.15094,-8.48442 -0.38112,-13.07572 0.76983,-4.5913 1.03992,-6.54512 2.06159,-15.5 1.02167,-8.95488 1.23198,-17.97057 1.31704,-27 0.11419,-12.37878 -1.20155,-17.40197 2.16585,-19.41154 3.59176,-2.14345 6.58085,0.0938 19.87048,1.23512 13.26514,1.13919 11.17045,1.14375 33.34778,-1.88946 3.28339,2.15136 4.74089,9.69394 4.74089,15.52314 0,4.13412 0.57858,5.59511 3.85961,9.74592 4.43289,5.60802 9.01923,9.67239 13.51027,11.97266 3.93389,2.01491 4.59575,3.02949 4.61481,7.07416 0.0214,4.55222 -5.52713,9.78373 -15.50307,14.61717 -11.13475,5.39489 -19.80304,11.22823 -27.98162,18.83027 -3.85,3.57859 -7.44517,6.73666 -10.5,8.3158 -3.05483,1.57914 -14.98741,3.37876 -20.5,1.34069 z"
+         id="path41566"
+         sodipodi:nodetypes="czsscszcsssssszz"
+         inkscape:export-filename="/home/gringer/interface/tux_new_flat.png"
+         inkscape:export-xdpi="89.886803"
+         inkscape:export-ydpi="89.886803"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath37379"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="fill:#ff0000"
+         d="m 66,295.50854 c -3.025001,-0.99557 -7.827467,-2.75099 -10.672148,-3.90095 -2.844682,-1.14995 -11.169682,-3.6476 -18.5,-5.55033 C 0.061499,276.51381 0,276.48883 0,271.0964 c 0,-1.66091 1.178942,-6.42866 2.619871,-10.59501 2.401288,-6.94316 2.55507,-8.32607 1.843187,-16.57518 -1.269513,-14.71075 -1.213131,-16.38184 0.656441,-19.4561 2.088387,-3.43408 6.811042,-5.03015 14.907995,-5.03832 6.726274,-0.007 8.976043,-1.43354 12.679933,-8.04134 2.191391,-3.90948 3.703577,-5.33075 7.024312,-6.602 5.596088,-2.14231 8.490903,-0.92905 15.470959,6.48409 5.324127,5.65446 7.285247,8.49547 19.434198,28.15367 3.569004,5.775 5.115714,7.17869 7.729554,11.5 2.61384,4.32131 12.39545,18.02175 12.63355,25.62784 0.2381,7.84418 -4.19375,12.76609 -7.26076,15.6474 -2.68631,2.52367 -9.85923,5.24795 -13.614967,5.17098 C 72.680923,297.34286 69.024999,296.5041 66,295.50854 Z"
+         id="path37381"
+         sodipodi:nodetypes="cssssssssssszzsss"
+         inkscape:export-filename="/home/gringer/interface/tux_new_flat.png"
+         inkscape:export-xdpi="89.886803"
+         inkscape:export-ydpi="89.886803"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <radialGradient
+       r="7.5"
+       fy="45.686523"
+       fx="143.875"
+       cy="45.686523"
+       cx="143.875"
+       gradientTransform="matrix(1,0,0,0.775,0,10.279468)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient26371"
+       xlink:href="#linearGradient26333"
+       inkscape:collect="always" />
+    <radialGradient
+       r="7.5"
+       fy="45.686523"
+       fx="143.875"
+       cy="45.686523"
+       cx="143.875"
+       gradientTransform="matrix(1,0,0,0.775,0,10.279468)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient26368"
+       xlink:href="#linearGradient26333"
+       inkscape:collect="always" />
+    <radialGradient
+       r="7.5"
+       fy="45.686523"
+       fx="143.875"
+       cy="45.686523"
+       cx="143.875"
+       gradientTransform="matrix(1,0,0,0.775,0,10.279468)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient26365"
+       xlink:href="#linearGradient26333"
+       inkscape:collect="always" />
+    <radialGradient
+       r="7.5"
+       fy="45.686523"
+       fx="143.875"
+       cy="45.686523"
+       cx="143.875"
+       gradientTransform="matrix(1,0,0,0.775,0,10.279468)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient26362"
+       xlink:href="#linearGradient26333"
+       inkscape:collect="always" />
+    <radialGradient
+       r="7.5"
+       fy="45.686523"
+       fx="143.875"
+       cy="45.686523"
+       cx="143.875"
+       gradientTransform="matrix(1,0,0,0.775,0,10.279468)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient26359"
+       xlink:href="#linearGradient26333"
+       inkscape:collect="always" />
+    <radialGradient
+       r="7.5"
+       fy="45.686523"
+       fx="143.875"
+       cy="45.686523"
+       cx="143.875"
+       gradientTransform="matrix(1,0,0,0.775,0,10.279468)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient26356"
+       xlink:href="#linearGradient26333"
+       inkscape:collect="always" />
+    <radialGradient
+       r="7.5"
+       fy="45.686523"
+       fx="143.875"
+       cy="45.686523"
+       cx="143.875"
+       gradientTransform="matrix(1,0,0,0.775,0,10.279468)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient26353"
+       xlink:href="#linearGradient26333"
+       inkscape:collect="always" />
+    <radialGradient
+       r="7.5"
+       fy="45.686523"
+       fx="143.875"
+       cy="45.686523"
+       cx="143.875"
+       gradientTransform="matrix(1,0,0,0.775,0,10.279468)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient26350"
+       xlink:href="#linearGradient26333"
+       inkscape:collect="always" />
+    <radialGradient
+       r="7.5"
+       fy="45.686523"
+       fx="143.875"
+       cy="45.686523"
+       cx="143.875"
+       gradientTransform="matrix(1,0,0,0.775,0,10.279468)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient26347"
+       xlink:href="#linearGradient26333"
+       inkscape:collect="always" />
+    <radialGradient
+       r="7.5"
+       fy="45.686523"
+       fx="143.875"
+       cy="45.686523"
+       cx="143.875"
+       gradientTransform="matrix(1,0,0,0.775,0,10.279468)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient26344"
+       xlink:href="#linearGradient26333"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.775,0,10.279468)"
+       r="7.5"
+       fy="45.686523"
+       fx="143.875"
+       cy="45.686523"
+       cx="143.875"
+       id="radialGradient26341"
+       xlink:href="#linearGradient26333"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient21873">
+      <stop
+         id="stop21875"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1" />
+      <stop
+         id="stop21877"
+         offset="1"
+         style="stop-color:#ffd035;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient25182">
+      <stop
+         id="stop25184"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop25186"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient26333"
+       inkscape:collect="always">
+      <stop
+         id="stop26335"
+         offset="0"
+         style="stop-color:#ebebeb;stop-opacity:1;" />
+      <stop
+         id="stop26337"
+         offset="1"
+         style="stop-color:#ebebeb;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6284">
+      <stop
+         id="stop6286"
+         offset="0"
+         style="stop-color:#b3b3b3;stop-opacity:0;" />
+      <stop
+         id="stop6288"
+         offset="1"
+         style="stop-color:#b3b3b3;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient25592">
+      <stop
+         id="stop25594"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:0;" />
+      <stop
+         id="stop25596"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient28850">
+      <stop
+         id="stop28852"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1" />
+      <stop
+         id="stop28854"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient61418">
+      <stop
+         id="stop61420"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:0.43137255;" />
+      <stop
+         id="stop61422"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <filter
+       inkscape:collect="always"
+       id="filter4509-3"
+       style="color-interpolation-filters:sRGB">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="2.425"
+         id="feGaussianBlur4511-3" />
+    </filter>
+  </defs>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Linux kernel interfaces</dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+        <dc:date>2014-02-27</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Shmuel Csaba Otto Traian Xerxes</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:rights>
+          <cc:Agent>
+            <dc:title>Shmuel Csaba Otto Traian Xerxes</dc:title>
+          </cc:Agent>
+        </dc:rights>
+        <dc:language>en-US</dc:language>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>Linux kernel</rdf:li>
+            <rdf:li>GNU C Library</rdf:li>
+            <rdf:li>System Call Interface</rdf:li>
+            <rdf:li>POSIX</rdf:li>
+            <rdf:li>source code portability</rdf:li>
+            <rdf:li>Linux system calls</rdf:li>
+            <rdf:li>System Call Interface (SCI)</rdf:li>
+            <rdf:li>GNU C Library (glibc)</rdf:li>
+            <rdf:li>Linux Standard Base (LSB)</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:description>Illustrates the interfaces of the Linux kernel, GNU C Library and POSIX-compatible as well as Linux-only applications</dc:description>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title />
+          </cc:Agent>
+        </dc:contributor>
+        <dc:identifier />
+        <dc:source>https://commons.wikimedia.org/wiki/File:Linux_kernel_interfaces.svg</dc:source>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:requires
+           rdf:resource="http://creativecommons.org/ns#Notice" />
+        <cc:requires
+           rdf:resource="http://creativecommons.org/ns#Attribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="domains"
+     style="display:inline"
+     transform="translate(-226.67683,-1265.925)">
+    <rect
+       ry="20"
+       rx="19.999996"
+       y="615.84961"
+       x="1074.7985"
+       height="97"
+       width="97"
+       id="use5544"
+       style="display:inline;fill:#2e3436;stroke:#2e3436;stroke-width:3.00000024;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4509-3)"
+       transform="matrix(1.0666667,0,0,1.0666667,-523.5649,874.90273)" />
+    <rect
+       ry="20"
+       rx="19.999996"
+       y="476.5639"
+       x="1124.7985"
+       height="97"
+       width="97"
+       id="use5542"
+       style="display:inline;fill:#2e3436;stroke:#2e3436;stroke-width:3.00000024;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4509-3)"
+       transform="matrix(1.0666667,0,0,1.0666667,-523.5649,810.90273)" />
+    <rect
+       ry="20"
+       rx="19.999996"
+       y="755.13531"
+       x="1024.7985"
+       height="97"
+       width="97"
+       id="use5546"
+       style="display:inline;fill:#2e3436;stroke:#2e3436;stroke-width:3.00000024;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4509-3)"
+       transform="matrix(1.0666667,0,0,1.0666667,-523.5649,946.90273)" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672"
+       x="562.52191"
+       y="1658.8275"
+       id="text4481"><tspan
+         sodipodi:role="line"
+         x="562.52191"
+         y="1658.8275"
+         id="tspan4483"
+         style="font-size:25.60000038px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672">in Linux kernel 4.7</tspan></text>
+    <use
+       style="display:inline"
+       x="0"
+       y="0"
+       xlink:href="#rect4366"
+       id="use3379"
+       transform="translate(424.9207,-212.57139)"
+       width="1440"
+       height="1080" />
+    <use
+       style="display:inline"
+       x="0"
+       y="0"
+       xlink:href="#rect4366"
+       id="use3381"
+       transform="translate(371.58737,1.2314385e-5)"
+       width="1440"
+       height="1080" />
+    <use
+       style="display:inline"
+       x="0"
+       y="0"
+       xlink:href="#rect4366"
+       id="use3383"
+       transform="translate(318.25404,220.57141)"
+       width="1440"
+       height="1080" />
+    <rect
+       ry="20"
+       rx="19.999996"
+       y="615.84961"
+       x="726.43524"
+       height="97"
+       width="97"
+       id="use5548"
+       style="display:inline;fill:#2e3436;stroke:#2e3436;stroke-width:3.00000024;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4509-3)"
+       transform="matrix(1.0666667,0,0,1.0666667,-523.5649,874.90273)" />
+    <path
+       style="display:inline;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:3.20000005;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 537.1638,1369.6515 -6.1333,-6.4143 3.5333,-5.2795 -6.4334,-5.4768 2.1333,-3.0097 h -55.06663 c -8.51477,0 -13.63328,8.0314 -13.63328,20.1803 v 199.731 h -74.63333 v -11.2004 l -22.73333,21.3152 22.73333,21.3151 v -11.2496 h 74.63333 v 199.7308 c 0,12.6041 5.42582,20.1804 13.63328,20.1804 h 80.30003 v 11.2497 l 17.0667,-21.3152 -17.0667,-21.3151 v 11.2002 h -80.30003 v -199.7308 h 46.06673 l -6.1333,-6.4142 3.5332,-5.2796 -6.4332,-5.4768 2.1666,-3.0097 h -39.20003 v -199.731 z"
+       id="path5150"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccsscccccccssccccccccccccccc" />
+    <path
+       style="display:inline;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:#babdb6;stroke-width:3.19999981;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 526.6948,1570.501 -2.1666,2.0333 6.4332,3.7 -3.5332,3.5667 6.1333,4.3333 h 69.6 v 7.6 l 22.7333,-14.4 -22.7333,-14.4 v 7.5667 z"
+       id="path5147"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccccccc" />
+    <path
+       style="display:inline;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:#babdb6;stroke-width:3.19999981;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 662.1614,1346.3676 v 7.5667 H 540.9286 l -2.1334,2.0333 6.4334,3.7 -3.5333,3.5667 6.1333,4.3333 h 114.3328 v 7.6 l 17.0667,-14.4 z"
+       id="path4447"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccccccc" />
+    <text
+       id="use5377"
+       y="1590.7056"
+       x="545.80353"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672"
+       xml:space="preserve"><tspan
+         style="font-size:42.66666794px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672"
+         y="1590.7056"
+         x="545.80353"
+         id="tspan1865"
+         sodipodi:role="line">✘</tspan></text>
+    <text
+       id="text5407"
+       y="1285.375"
+       x="259.28839"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672"
+       xml:space="preserve"><tspan
+         y="1285.375"
+         x="259.28839"
+         id="tspan5409"
+         sodipodi:role="line"
+         style="font-size:25.60000038px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672"><tspan
+   style="font-weight:bold;font-family:sans-serif;-inkscape-font-specification:'Sans Bold';stroke-width:1.06666672"
+   id="tspan5720">no</tspan> stable ABI over Linux kernel releases,</tspan><tspan
+         y="1317.375"
+         x="259.28839"
+         sodipodi:role="line"
+         id="tspan5588"
+         style="font-size:25.60000038px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672">binaries are not portable</tspan></text>
+    <text
+       id="use5435"
+       y="1375.9271"
+       x="572.07043"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672"
+       xml:space="preserve"><tspan
+         style="font-size:42.66666794px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672"
+         y="1375.9271"
+         x="572.07043"
+         id="tspan1676"
+         sodipodi:role="line">✘</tspan></text>
+    <text
+       id="use5451"
+       y="1811.5029"
+       x="498.91672"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672"
+       xml:space="preserve"><tspan
+         style="font-size:42.66666794px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672"
+         y="1811.5029"
+         x="498.91672"
+         id="tspan1454"
+         sodipodi:role="line">✔</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672"
+       x="225.26433"
+       y="1663.7456"
+       id="text4406"><tspan
+         sodipodi:role="line"
+         x="225.26433"
+         y="1663.7456"
+         id="tspan4410"
+         style="font-size:25.60000038px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672">compiled for</tspan><tspan
+         sodipodi:role="line"
+         x="225.26433"
+         y="1695.7456"
+         id="tspan4491"
+         style="font-size:25.60000038px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672">Linux kernel 4.0</tspan></text>
+    <text
+       id="text4422"
+       y="1881.2932"
+       x="508.91983"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672"
+       xml:space="preserve"><tspan
+         id="tspan4426"
+         y="1881.2932"
+         x="508.91983"
+         sodipodi:role="line"
+         style="font-size:25.60000038px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672">in Linux kernel 4.0</tspan></text>
+    <text
+       id="text4485"
+       y="1448.1331"
+       x="607.30524"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672"
+       xml:space="preserve"><tspan
+         id="tspan4487"
+         y="1448.1331"
+         x="607.30524"
+         sodipodi:role="line"
+         style="font-size:25.60000038px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672">in Linux kernel 4.14</tspan></text>
+    <text
+       id="text4432"
+       y="1370.5389"
+       x="733.95868"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672"
+       xml:space="preserve"><tspan
+         id="tspan4434"
+         y="1370.5389"
+         x="733.95868"
+         sodipodi:role="line"
+         style="font-size:21.33333397px;line-height:1.25;stroke-width:1.06666672">DRM</tspan></text>
+    <rect
+       style="display:inline;fill:#0169c9;stroke:#013397;stroke-width:3.20000029;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4366"
+       width="103.46667"
+       height="103.46667"
+       x="257.50745"
+       y="1525.601"
+       rx="21.33333"
+       ry="21.333334" />
+    <text
+       id="text4382"
+       y="1558.1984"
+       x="309.26898"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672"
+       xml:space="preserve"><tspan
+         id="tspan4388"
+         y="1558.1984"
+         x="309.26898"
+         sodipodi:role="line"
+         style="font-size:21.33333397px;line-height:1.25;stroke-width:1.06666672">binary</tspan><tspan
+         y="1584.865"
+         x="309.26898"
+         sodipodi:role="line"
+         id="tspan4404"
+         style="font-size:21.33333397px;line-height:1.25;stroke-width:1.06666672">device</tspan><tspan
+         y="1611.5317"
+         x="309.26898"
+         sodipodi:role="line"
+         id="tspan4402"
+         style="font-size:21.33333397px;line-height:1.25;stroke-width:1.06666672">driver</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672"
+       x="680.62531"
+       y="1585.1104"
+       id="text4372"><tspan
+         sodipodi:role="line"
+         x="680.62531"
+         y="1585.1104"
+         id="tspan4378"
+         style="font-size:21.33333397px;line-height:1.25;stroke-width:1.06666672">DRM</tspan></text>
+    <text
+       id="text4438"
+       y="1805.6818"
+       x="627.29193"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672"
+       xml:space="preserve"><tspan
+         id="tspan4440"
+         y="1805.6818"
+         x="627.29193"
+         sodipodi:role="line"
+         style="font-size:21.33333397px;line-height:1.25;stroke-width:1.06666672">DRM</tspan></text>
+  </g>
+  <g
+     transform="translate(-89.138856,-1081.4232)"
+     id="layer1"
+     inkscape:groupmode="layer"
+     inkscape:label="APIs"
+     style="display:inline" />
+</svg>




More information about the training-materials-updates mailing list