[FE training-materials-updates] Misc improvements and updates to kernel slides

Michael Opdenacker michael.opdenacker at free-electrons.com
Tue May 16 06:32:56 CEST 2017


Repository : git://git.free-electrons.com/training-materials.git
On branch  : master
Link       : http://git.free-electrons.com/training-materials/commit/?id=8faa01a9511fdf0b9db22d6614735c799eed6947

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

commit 8faa01a9511fdf0b9db22d6614735c799eed6947
Author: Michael Opdenacker <michael.opdenacker at free-electrons.com>
Date:   Tue May 16 06:32:56 2017 +0200

    Misc improvements and updates to kernel slides
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at free-electrons.com>


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

8faa01a9511fdf0b9db22d6614735c799eed6947
 .../kernel-compiling-and-nfs-booting.tex                 |  6 +++++-
 .../kernel-driver-development-debugging.tex              |  3 ++-
 .../kernel-source-code-drivers.tex                       | 13 +++++++------
 .../kernel-source-code-layout.tex                        |  5 +++--
 .../sysdev-linux-intro-compilation.tex                   | 16 ++++++++--------
 .../sysdev-linux-intro-cross-compilation.tex             |  4 +++-
 6 files changed, 28 insertions(+), 19 deletions(-)

diff --git a/labs/kernel-compiling-and-nfs-booting/kernel-compiling-and-nfs-booting.tex b/labs/kernel-compiling-and-nfs-booting/kernel-compiling-and-nfs-booting.tex
index 1e8a357..3238c4d 100644
--- a/labs/kernel-compiling-and-nfs-booting/kernel-compiling-and-nfs-booting.tex
+++ b/labs/kernel-compiling-and-nfs-booting/kernel-compiling-and-nfs-booting.tex
@@ -129,12 +129,16 @@ just one line, pay attention to the \code{O} character, like "OMAP", in
 \begin{verbatim}
 setenv bootargs root=/dev/nfs rw ip=192.168.0.100 console=ttyO0
   nfsroot=192.168.0.1:/home/<user>/linux-kernel-labs/modules/nfsroot
-saveenv
 \end{verbatim}
 
 Of course, you need to adapt the IP addresses to your exact network
 setup.
 
+Now save this definition:
+\begin{verbatim}
+saveenv
+\end{verbatim}
+
 If you later want to make changes to this setting, you can type the
 below command in U-boot:
 
diff --git a/slides/kernel-driver-development-debugging/kernel-driver-development-debugging.tex b/slides/kernel-driver-development-debugging/kernel-driver-development-debugging.tex
index 90b90fb..4113ea0 100644
--- a/slides/kernel-driver-development-debugging/kernel-driver-development-debugging.tex
+++ b/slides/kernel-driver-development-debugging/kernel-driver-development-debugging.tex
@@ -88,7 +88,8 @@ dev_info(&pdev->dev, "in probe\n");
     \begin{itemize}
     \item The \code{loglevel} kernel parameter, which defines the
       priority above which messages are displayed on the console. See
-      \kerneldochtml{admin-guide/kernel-parameters} for details.
+      \kerneldochtml{admin-guide/kernel-parameters} in kernel
+      documentation for details.
     \item The value of \code{/proc/sys/kernel/printk}, which allows to
       change at runtime the priority above which messages are
       displayed on the console. See
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 4522dd4..cc9d23b 100644
--- a/slides/kernel-source-code-drivers/kernel-source-code-drivers.tex
+++ b/slides/kernel-source-code-drivers/kernel-source-code-drivers.tex
@@ -101,11 +101,11 @@
   \frametitle{Kernel memory constraints}
   \begin{itemize}
   \item No memory protection
-  \item Accessing illegal memory locations result in (often fatal)
-    kernel oopses.
-  \item Fixed size stack (8 or 4 KB). Unlike in user space, there's no
-    way to make it grow.
-  \item Kernel memory can't be swapped out (for the same reasons).
+  \item The kernel doesn't try to recover from attemps to access illegal
+    memory locations. It just dumps {\em oops} messages on the system console.
+  \item Fixed size stack (8 or 4 KB). Unlike in user space, no mechanism
+    was implemented to make it grow.
+  \item Swapping is not implemented for kernel memory either.
   \end{itemize}
 \end{frame}
 
@@ -145,7 +145,7 @@
     the kernel or not?
     \begin{itemize}
     \item The general opinion of the kernel community is that
-      proprietary drivers are bad: \url{http://j.mp/fbyuuH}
+      proprietary modules are bad: \url{http://j.mp/fbyuuH}
     \item From a legal point of view, each driver is probably a
       different case
     \item Is it really useful to keep your drivers secret?
@@ -186,6 +186,7 @@
   \item You can also get changes from people modifying internal
     kernel APIs.
   \item Accessing your code is easier for users.
+  \item You can get contributions from your own customers.
   \end{itemize}
   This will for sure reduce your maintenance and support work
 \end{frame}
diff --git a/slides/kernel-source-code-layout/kernel-source-code-layout.tex b/slides/kernel-source-code-layout/kernel-source-code-layout.tex
index 53b96f9..1f2133e 100644
--- a/slides/kernel-source-code-layout/kernel-source-code-layout.tex
+++ b/slides/kernel-source-code-layout/kernel-source-code-layout.tex
@@ -124,7 +124,7 @@
     \end{itemize}
   \item \kdir{samples}
     \begin{itemize}
-    \item Sample code (markers, kprobes, kobjects...)
+    \item Sample code (markers, kprobes, kobjects, bpf...)
     \end{itemize}
   \end{itemize}
 \end{frame}
@@ -146,7 +146,8 @@
     \end{itemize}
   \item \kdir{tools}
     \begin{itemize}
-    \item Code for various user space tools (mostly C)
+    \item Code for various user space tools (mostly C, example:
+          \code{perf})
     \end{itemize}
   \item \kdir{usr}
     \begin{itemize}
diff --git a/slides/sysdev-linux-intro-compilation/sysdev-linux-intro-compilation.tex b/slides/sysdev-linux-intro-compilation/sysdev-linux-intro-compilation.tex
index 1d2bf56..3491f5e 100644
--- a/slides/sysdev-linux-intro-compilation/sysdev-linux-intro-compilation.tex
+++ b/slides/sysdev-linux-intro-compilation/sysdev-linux-intro-compilation.tex
@@ -45,7 +45,8 @@
       Compressed kernel image. Same as the one in
       \code{arch/<arch>/boot}
     \item \code{/boot/System.map-<version>}\\
-      Stores kernel symbol addresses
+      Stores kernel symbol addresses for debugging purposes
+      (obsolete: such information is usually stored in the kernel itself)
     \item \code{/boot/config-<version>}\\
       Kernel configuration for this version
     \end{itemize}
@@ -67,14 +68,13 @@
     \item \code{kernel/}\\
       Module \code{.ko} (Kernel Object) files, in the same directory
       structure as in the sources.
-    \item \code{modules.alias}\\
-      Module aliases for module loading utilities. Example line:\\
-      \code{alias sound-service-?-0 snd_mixer_oss}
-    \item \code{modules.dep}, \code{modules.dep.bin} (binary
-      hashed)\\
+    \item \code{modules.alias}, \code{modules.aliases.bin}\\
+      Aliases for module loading utilities. Used to find drivers for
+      devices. Example line:\\
+      \code{alias usb:v066Bp20F9d*dc*dsc*dp*ic*isc*ip*in* asix}
+    \item \code{modules.dep}, \code{modules.dep.bin}\\
       Module dependencies
-    \item \code{modules.symbols}, \code{modules.symbols.bin} (binary
-      hashed)\\
+    \item \code{modules.symbols}, \code{modules.symbols.bin}\\
       Tells which module a given symbol belongs to.
     \end{itemize}
   \end{itemize}
diff --git a/slides/sysdev-linux-intro-cross-compilation/sysdev-linux-intro-cross-compilation.tex b/slides/sysdev-linux-intro-cross-compilation/sysdev-linux-intro-cross-compilation.tex
index de3be21..aeb9f8e 100644
--- a/slides/sysdev-linux-intro-cross-compilation/sysdev-linux-intro-cross-compilation.tex
+++ b/slides/sysdev-linux-intro-cross-compilation/sysdev-linux-intro-cross-compilation.tex
@@ -221,13 +221,15 @@
     \item \code{root=} for the root filesystem (covered later)
     \item \code{console=} for the destination of kernel messages
     \item Many more exist. The most important ones are documented
-          in \kerneldochtml{admin-guide/kernel-parameters} in kernel sources.
+          in \kerneldochtml{admin-guide/kernel-parameters} in kernel
+          documentation.
     \end{itemize}
   \item This kernel command line is either
     \begin{itemize}
     \item Passed by the bootloader. In U-Boot, the contents of the
       \code{bootargs} environment variable is automatically passed to the
       kernel
+    \item Specified in the Device Tree (for architectures which use it)
     \item Built into the kernel, using the \code{CONFIG_CMDLINE} option.
     \end{itemize}
   \end{itemize}




More information about the training-materials-updates mailing list