added LaTeX code

This commit is contained in:
paul-loedige 2022-10-31 14:11:20 +09:00
parent 196ed7c71c
commit 0b07be0d42
2 changed files with 180 additions and 1 deletions

2
.gitignore vendored
View File

@ -74,7 +74,7 @@ dkms.conf
# these rules might exclude image files for figures etc.
# *.ps
# *.eps
# *.pdf
*.pdf
## Generated if empty string is given at "Please type another file name for output:"
.pdf

179
LaTeX/Homework_Lesson_4.tex Normal file
View File

@ -0,0 +1,179 @@
\documentclass[a4paper, 12pt, english]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{multicol}
\usepackage{setspace}
\title{Advanced Operating Systems\\Assignment Week 4}
\author{Paul Lödige \\ Student ID: 37-229753}
\makeatletter
\newcommand*{\toccontents}{\@starttoc{toc}}
\makeatother
\begin{document}
\maketitle
\toccontents
\section{Assignment}%
\label{sec:Assignment}
Modify the kernel module you created in the \#3 Homework to introduce the ioctl mechanism that sets and gets messages.
Compile and run the program.
You should also write a user-space program that calls ioctl().
Submit the source code and the screen shot of the result of execution displayed by the dmesg command.
\clearpage
\section{Code}%
\label{sec:Code}
\definecolor{mGreen}{rgb}{0,0.6,0}
\definecolor{mGray}{rgb}{0.5,0.5,0.5}
\definecolor{mPurple}{rgb}{0.58,0,0.82}
\definecolor{backgroundColour}{rgb}{0.95,0.95,0.92}
\lstset{
language=C,
backgroundcolor=\color{backgroundColour},
commentstyle=\color{mGreen},
keywordstyle=\color{magenta},
numberstyle=\tiny\color{mGray},
stringstyle=\color{mPurple},
basicstyle=\ttfamily\scriptsize,
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbers=left,
firstnumber=0,
stepnumber=1,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=2,
literate={~}{{$\mathtt{\sim}$}}1
}
\lstset{literate=%
{Ö}{{\"O}}1
{Ä}{{\"A}}1
{Ü}{{\"U}}1
{ß}{{\ss}}2
{ü}{{\"u}}1
{ä}{{\"a}}1
{ö}{{\"o}}1
}
\subsection{Kernel Module Code}%
\label{sub:Kernel Module Code}
\subsubsection{\texttt{chardev2.c}}%
\label{ssub:chardev2}
\lstinputlisting{../Code/Kernel_Module/chardev2.c}
\clearpage
\subsubsection{\texttt{chardev.h}}%
\label{ssub:chardev}
\lstinputlisting{../Code/Kernel_Module/chardev.h}
\clearpage
\subsection{IOCTL Client Code}%
\label{sub:IOCTL Client Code}
\subsubsection{\texttt{userspace\_ioctl.c}}%
\label{ssub:userspaceioctl}
\lstinputlisting{../Code/IOCTL_Client/userspace_ioctl.c}
\clearpage
\subsubsection{\texttt{chardev.h}}%
\label{ssub:chardev h}
\lstinputlisting{../Code/IOCTL_Client/chardev.h}
\clearpage
\section{Output of \texttt{sudo cat /proc/devices}}%
\label{sec:Output of proc devices}
\begin{multicols}{2}
\begin{spacing}{.9}
\texttt{
Character devices:\\
1 mem\\
4 /dev/vc/0\\
4 tty\\
4 ttyS\\
5 /dev/tty\\
5 /dev/console\\
5 /dev/ptmx\\
7 vcs\\
10 misc\\
13 input\\
29 fb\\
100 char\_dev\\
116 alsa\\
128 ptm\\
136 pts\\
180 usb\\
188 ttyUSB\\
189 usb\_device\\
202 cpu/msr\\
203 cpu/cpuid\\
226 drm\\
236 binder\\
237 hidraw\\
238 wwan\_port\\
239 nvme-generic\\
240 nvme\\
241 aux\\
242 bsg\\
243 watchdog\\
244 remoteproc\\
245 ptp\\
246 pps\\
247 cec\\
248 lirc\\
249 rtc\\
250 dma\_heap\\
251 dax\\
252 dimmctl\\
253 ndctl\\
254 gpiochip\\
\columnbreak\\\\
Block devices:\\
8 sd\\
65 sd\\
66 sd\\
67 sd\\
68 sd\\
69 sd\\
70 sd\\
71 sd\\
128 sd\\
129 sd\\
130 sd\\
131 sd\\
132 sd\\
133 sd\\
134 sd\\
135 sd\\
259 blkext\\
}
\end{spacing}
\end{multicols}
\section{Output of running the \texttt{userspace\_ioctl.c} code}%
\label{sec:Output of running the userspaceioctl code}
\texttt{get\_nth\_byte message:Message passed by ioctl}\\
\texttt{get\_msg message:Message passed by ioctl}
\section{Output of \texttt{sudo dmesg -T -l info | tail -5}}%
\label{sec:Output of dmesg}
\texttt{[Mon Oct 31 11:57:15 2022] Device created on /dev/char\_dev}\\
\texttt{[Mon Oct 31 11:57:16 2022] device\_open(00000000d7150407)}\\
\texttt{[Mon Oct 31 11:57:16 2022] device\_write(00000000d7150407,000000001ed918c3,25)}\\
\texttt{[Mon Oct 31 11:57:16 2022] Read 24 bytes, 75 left}\\
\texttt{[Mon Oct 31 11:57:16 2022] device\_release(0000000005e64dfb,00000000d7150407)}
\end{document}