added LaTeX code
This commit is contained in:
		
							parent
							
								
									196ed7c71c
								
							
						
					
					
						commit
						0b07be0d42
					
				
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -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
									
								
							
							
						
						
									
										179
									
								
								LaTeX/Homework_Lesson_4.tex
									
									
									
									
									
										Normal 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} | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user