<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homeostasis.scs.carleton.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=Operating_Systems_2019F_Lecture_18</id>
	<title>Operating Systems 2019F Lecture 18 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://homeostasis.scs.carleton.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=Operating_Systems_2019F_Lecture_18"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2019F_Lecture_18&amp;action=history"/>
	<updated>2026-05-18T20:02:23Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2019F_Lecture_18&amp;diff=22540&amp;oldid=prev</id>
		<title>Soma: Created page with &quot;==Video==  Video from the lecture given on November 13, 2019 [https://homeostasis.scs.carleton.ca/~soma/os-2019f/lectures/comp3000-2019f-lec18-20191113.m4v is now available]....&quot;</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2019F_Lecture_18&amp;diff=22540&amp;oldid=prev"/>
		<updated>2020-03-20T02:09:06Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==Video==  Video from the lecture given on November 13, 2019 [https://homeostasis.scs.carleton.ca/~soma/os-2019f/lectures/comp3000-2019f-lec18-20191113.m4v is now available]....&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Video==&lt;br /&gt;
&lt;br /&gt;
Video from the lecture given on November 13, 2019 [https://homeostasis.scs.carleton.ca/~soma/os-2019f/lectures/comp3000-2019f-lec18-20191113.m4v is now available].&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Lecture 18&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
When you&amp;#039;re in a kernel module, you&amp;#039;re in the Linux kernel&lt;br /&gt;
* context is *all* of the code in the linux kernel&lt;br /&gt;
* you have access to all code and data structures, if you can figure&lt;br /&gt;
  out how to access them&lt;br /&gt;
* You include linux kernel headers to be able to access this functionality&lt;br /&gt;
* You *cannot* access standard libraries, they don&amp;#039;t exist&lt;br /&gt;
  - and even if you did ad the code, key abstractions such as file descriptors,&lt;br /&gt;
    ttys, and such don&amp;#039;t exist!  So you&amp;#039;re probably in trouble&lt;br /&gt;
&lt;br /&gt;
One big problem is that the Linux kernel changes fast&lt;br /&gt;
* so online documentation gets out of date&lt;br /&gt;
* authority is really the code itself&lt;br /&gt;
* but articles on lwn.net are helpful&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Processes vs. threads&lt;br /&gt;
* process: one or more CPU contexts + address space&lt;br /&gt;
* thread: a CPU context in an address space&lt;br /&gt;
&lt;br /&gt;
So a process can have one or more threads&lt;br /&gt;
&lt;br /&gt;
In the kernel, &amp;quot;current&amp;quot; refers to the process/thread (task) that made the current system call.&lt;br /&gt;
&lt;br /&gt;
initrd = initial ram disk&lt;br /&gt;
 - how do you load modules needed to access the root filesystem when&lt;br /&gt;
   you don&amp;#039;t have access to the root filesystem?&lt;br /&gt;
   - drivers, fs, network&lt;br /&gt;
 - initrds will have&lt;br /&gt;
   - kernel modules&lt;br /&gt;
   - scripts &amp;amp; executables necessary for loading modules, other setup&lt;br /&gt;
&lt;br /&gt;
Boot loader loads kernel image &amp;amp; initrd into memory, then starts kernel&lt;br /&gt;
  - telling it where in memory the initrd is&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Soma</name></author>
	</entry>
</feed>