From bf7bd4abcdd1e9ae1030c7a9dfae70c35791d771 Mon Sep 17 00:00:00 2001 From: Holger Dengler Date: Fri, 11 Jan 2019 08:35:40 +0100 Subject: linux-basic: Add Userspace-to-Kernel API slides Signed-off-by: Holger Dengler --- linux-basics/api/pres_kernel-api.tex | 52 ++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 linux-basics/api/pres_kernel-api.tex (limited to 'linux-basics/api/pres_kernel-api.tex') diff --git a/linux-basics/api/pres_kernel-api.tex b/linux-basics/api/pres_kernel-api.tex new file mode 100644 index 0000000..bda7055 --- /dev/null +++ b/linux-basics/api/pres_kernel-api.tex @@ -0,0 +1,52 @@ +\input{configpres} + +\subsection{Linux Kernel-API} +\title{Linux Kernel-API} + +% ---------------------------- +\maketitle + +% ---------------------------- +\begin{frame} +\frametitle{Overview} +\tableofcontents +\end{frame} + +% ---------------------------- +\begin{frame} +\frametitle{Basics} +\begin{itemize} +\item Application: Userspace, unprivileged +\item Driver: Kernel, privileged +\item Userspace-to-Kernel API + \begin{itemize} + \item Syscalls + \item Device Nodes + \item Pseudo Filesystems + \item Netlink Sockets + \end{itemize} +\end{itemize} +\end{frame} +% Most CPUs has two operation modes, an privileged and an unprivileged. +% Linux supports this HW feature by separating the Userspace (Applications, +% Libraries) from the Kernel (scheduling, memory-management, drivers). The +% Linux Userspace API is the interfacebetween the Userspace and the Kernel. +% The main interface are the syscalls. The file systemcalls and the devide +% nodes allows specific HW access, without creating new syscalls. The pseudo +% filesystems also extends the Userspace API, by externalize structured +% information about the system to applications. The netlink sockets are +% mainly for managing and controling Kernel subsystems, like network. + +\subsection{Devices} +% ---------------------------- +\input{linux-basics/api/frm_devicenodes.tex} + +\subsection{Pseudo FS} +% ---------------------------- +\input{linux-basics/api/frm_proc.tex} + +% ---------------------------- +\input{linux-basics/api/frm_sysfs.tex} + +\subsection*{} +\input{tailpres} -- cgit v1.2.3