<?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=COMP_3000_2012_Week_7_Notes</id>
	<title>COMP 3000 2012 Week 7 Notes - 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=COMP_3000_2012_Week_7_Notes"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_2012_Week_7_Notes&amp;action=history"/>
	<updated>2026-04-24T12:13:18Z</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=COMP_3000_2012_Week_7_Notes&amp;diff=17517&amp;oldid=prev</id>
		<title>Sdp: fixed unbalanced paren</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_2012_Week_7_Notes&amp;diff=17517&amp;oldid=prev"/>
		<updated>2012-10-25T23:20:22Z</updated>

		<summary type="html">&lt;p&gt;fixed unbalanced paren&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:20, 25 October 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l73&quot;&gt;Line 73:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 73:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Row 6: Minor Number.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Row 6: Minor Number.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Every driver may control different hardware controllers. These controllers are assigned major numbers. Each device they control is assigned a minor number. Any device can be identified with a major minor number pair. (see [http://uw714doc.sco.com/en/HDK_concepts/ddT_majmin.html &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; HKD&lt;/del&gt;]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Every driver may control different hardware controllers. These controllers are assigned major numbers. Each device they control is assigned a minor number. Any device can be identified with a major minor number pair. (see [http://uw714doc.sco.com/en/HDK_concepts/ddT_majmin.html &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;SCO documentation for major and minor numbers&lt;/ins&gt;]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* d = directory&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* d = directory&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sdp</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_2012_Week_7_Notes&amp;diff=17516&amp;oldid=prev</id>
		<title>Cdelahou: added major minor number</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_2012_Week_7_Notes&amp;diff=17516&amp;oldid=prev"/>
		<updated>2012-10-25T22:45:13Z</updated>

		<summary type="html">&lt;p&gt;added major minor number&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:45, 25 October 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l18&quot;&gt;Line 18:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 18:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Filesystems&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Filesystems&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* blocks -&amp;gt; actual data&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* blocks -&amp;gt; actual data&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* inodes -&amp;gt; metadata (index node). 2 Types:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* inodes -&amp;gt; metadata (index node).  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2 Types &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;of inode&lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** directories and files are inodes&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** directories and files are inodes&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** directory inode -&amp;gt; name to inode mapping&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** directory inode -&amp;gt; name to inode mapping&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l67&quot;&gt;Line 67:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 69:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Row 5: Major Number. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Row 6: Minor Number.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Every driver may control different hardware controllers. These controllers are assigned major numbers. Each device they control is assigned a minor number. Any device can be identified with a major minor number pair. (see [http://uw714doc.sco.com/en/HDK_concepts/ddT_majmin.html  HKD]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* d = directory&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* d = directory&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Cdelahou</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_2012_Week_7_Notes&amp;diff=17500&amp;oldid=prev</id>
		<title>Cdelahou: added notes</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_2012_Week_7_Notes&amp;diff=17500&amp;oldid=prev"/>
		<updated>2012-10-25T05:14:42Z</updated>

		<summary type="html">&lt;p&gt;added notes&lt;/p&gt;
&lt;a href=&quot;https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_2012_Week_7_Notes&amp;amp;diff=17500&amp;amp;oldid=17499&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Cdelahou</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_2012_Week_7_Notes&amp;diff=17499&amp;oldid=prev</id>
		<title>Cdelahou: added notes</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_2012_Week_7_Notes&amp;diff=17499&amp;oldid=prev"/>
		<updated>2012-10-25T04:57:09Z</updated>

		<summary type="html">&lt;p&gt;added notes&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;##Linux source code spelunking ( see linux source cross reference)&lt;br /&gt;
* /documention&lt;br /&gt;
* /arch --&amp;gt; platform specific code &lt;br /&gt;
* /drives --&amp;gt; drivers for devices&lt;br /&gt;
* /fs -&amp;gt; file system stuff (ext4 is here... open.c)&lt;br /&gt;
&lt;br /&gt;
do\_ prefix on something is a wrapper function that preprocesses args&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#####Looking at fs/ directory now...&lt;br /&gt;
All these help with the vfs&lt;br /&gt;
Relationship between dentry (directory entry) and inode&lt;br /&gt;
Contents are inodes, dentry is a string representingo&lt;br /&gt;
&lt;br /&gt;
dentry, inode&lt;br /&gt;
&lt;br /&gt;
Looding at struct dentry&lt;br /&gt;
        locks --&amp;gt; spin lock, spinning --&amp;gt; locks file by constantly looping over it&lt;br /&gt;
&lt;br /&gt;
###Filesystems&lt;br /&gt;
* blocks -&amp;gt; actual data&lt;br /&gt;
* inodes -&amp;gt; metadata (index done)&lt;br /&gt;
** directories and files are inodes&lt;br /&gt;
** directory inode -&amp;gt; name to inode mapping&lt;br /&gt;
** file inode -&amp;gt; size, last modified, pointers to data blocks, permissions, etc...&lt;br /&gt;
*** pointers to data wihtin inodes tell you where the data is, so that you can access&lt;br /&gt;
    it&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How to explore the kernel from userspace instead of messing about in the source code.&lt;br /&gt;
&lt;br /&gt;
Look at the output of $&amp;gt;mount&lt;br /&gt;
* some kernerl services are mounted to various folders (proc mounted to /proc)&lt;br /&gt;
&lt;br /&gt;
in /dev/, do $&amp;gt; ls -l&lt;br /&gt;
drwxr-xr-x 2 root root         700 Oct  5 22:23 block&lt;br /&gt;
drwxr-xr-x 2 root root         120 Oct  5 22:23 bsg&lt;br /&gt;
brw-rw---- 1 root disk      7,   7 Oct  5 22:23 loop7&lt;br /&gt;
crw------- 1 root root     10, 237 Oct  5 22:23 loop-control&lt;br /&gt;
drwxr-xr-x 2 root root          80 Oct  5 22:23 mapper&lt;br /&gt;
crw------- 1 root root     10, 227 Oct  5 22:23 mcelog&lt;br /&gt;
crw-r--r-- 1 root root     10,  62 Oct  5 22:23 rfkill&lt;br /&gt;
lrwxrwxrwx 1 root root           4 Oct  5 22:23 rtc -&amp;gt; rtc0&lt;br /&gt;
crw------- 1 root root    254,   0 Oct  5 22:23 rtc0&lt;br /&gt;
brw-rw---- 1 root disk      8,   0 Oct  5 22:23 sda&lt;br /&gt;
brw-rw---- 1 root disk      8,   1 Oct  5 22:23 sda1&lt;br /&gt;
brw-rw---- 1 root disk      8,   2 Oct  5 22:23 sda2&lt;br /&gt;
crw-rw---- 1 root disk     21,   2 Oct  5 22:23 sg2&lt;br /&gt;
crw------- 1 root root     21,   3 Oct  5 22:23 sg3&lt;br /&gt;
lrwxrwxrwx 1 root root           8 Oct  5 22:23 shm -&amp;gt; /run/shm&lt;br /&gt;
crw------- 1 root root     10, 231 Oct  5 22:23 snapshot&lt;br /&gt;
drwxr-xr-x 3 root root         180 Oct  5 22:23 snd&lt;br /&gt;
lrwxrwxrwx 1 root root          15 Oct  5 22:23 stderr -&amp;gt; /proc/self/fd/2&lt;br /&gt;
lrwxrwxrwx 1 root root          15 Oct  5 22:23 stdout -&amp;gt; /proc/self/fd/1&lt;br /&gt;
crw-rw-rw- 1 root tty       5,   0 Oct 17 08:47 tty&lt;br /&gt;
crw--w---- 1 root tty       4,   0 Oct  5 22:23 tty0&lt;br /&gt;
crw------- 1 root root    252,   5 Oct  5 22:23 usbmon5&lt;br /&gt;
drwxr-xr-x 4 root root          80 Oct  5 22:23 v4l&lt;br /&gt;
crw-rw---- 1 root tty       7,   0 Oct  5 22:23 vcs&lt;br /&gt;
crw-rw-rw- 1 root root      1,   5 Oct  5 22:23 zero&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
major minor numbers? row 5, row 6 &amp;lt;--- LOOOK UP!&lt;br /&gt;
&lt;br /&gt;
/dev is dynamically generated by udev&lt;br /&gt;
&lt;br /&gt;
d = directory&lt;br /&gt;
b = block device --&amp;gt; drives, etc.&lt;br /&gt;
c = character file --&amp;gt; write or output sequences of characters (printers, zero, null)&lt;br /&gt;
&lt;br /&gt;
random, urandom, null, zero are all device files, but they&amp;#039;re really just special&lt;br /&gt;
function in the kernel. They use the FILE api, you can read and write to most of&lt;br /&gt;
them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
in /dev. run $&amp;gt;df .&lt;br /&gt;
&lt;br /&gt;
Filesystem     1K-blocks  Used Available Use% Mounted on&lt;br /&gt;
udev              499124     8    499116   1% /dev&lt;br /&gt;
&lt;br /&gt;
The file system for this is udev, dyamically generated&lt;br /&gt;
&lt;br /&gt;
udev rules are set in /etc/udev, sets who can access what devices. Sets policy.&lt;br /&gt;
see man udev&lt;br /&gt;
what is udevd vs udev?&lt;br /&gt;
* udev is filesystem type and a command&lt;br /&gt;
* udevd is a daemon that monitors changes&lt;br /&gt;
&lt;br /&gt;
If you kill udevd, your kernel will not be informed of new changes (plugged in&lt;br /&gt;
devices). They won&amp;#039;t be listed in /dev/.&lt;br /&gt;
The user cannot be informed of what is actually mounted.&lt;br /&gt;
&lt;br /&gt;
LOOK UP udevd&lt;br /&gt;
&lt;br /&gt;
initrd has it&amp;#039;s own /dev/ folder to allow SPECIAL devices to be mounted to before the file&lt;br /&gt;
system and the root /dev/ is loaded&lt;br /&gt;
&lt;br /&gt;
DEV IS defined in posix standard&lt;br /&gt;
&lt;br /&gt;
Kernel state is defined as special files too! We don&amp;#039;t need need special functions,&lt;br /&gt;
just look at the files in /proc/&lt;br /&gt;
* all numbers are process IDs&lt;br /&gt;
* other devices like uptime&lt;br /&gt;
&lt;br /&gt;
Ownership, groups, &amp;#039;n stuff are all displayed in the files&lt;br /&gt;
&lt;br /&gt;
NOTICE that all of the sizes of these files are 0.&lt;br /&gt;
&lt;br /&gt;
When you call $&amp;gt; ps, all it&amp;#039;s doing is calling walking the proc directory.&lt;br /&gt;
&lt;br /&gt;
Proc is NOT defined in the POSIX standard. It&amp;#039;s a linux thing.&lt;br /&gt;
&lt;br /&gt;
/sys/ and /proc/ are basically the same thing, but /sys is alot more regimented, proc&lt;br /&gt;
is loose.   &amp;lt;---- LOOOOOOK UP!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ex:&lt;br /&gt;
  $&amp;gt; strace ifconfig&lt;br /&gt;
  You&amp;#039;ll notice that much of what ifconfig does is reading kernel /proc/ files&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: /dev/  -&amp;gt; devices&lt;br /&gt;
  /proc/ and /sys/  -&amp;gt; KERNEL STATE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
LINKS&lt;br /&gt;
&lt;br /&gt;
  Hardlink --&amp;gt; associate between name and inode. Can have many per inode.&lt;br /&gt;
&lt;br /&gt;
 ex:  &lt;br /&gt;
  ls -l /bin | grep gunzip &lt;br /&gt;
  -rwxr-xr-x 2 root root    2251 Feb  8  2012 gunzip&lt;br /&gt;
  Two links to gunzip&amp;#039;s inode. Meaning, uncompress points to the same inode&lt;br /&gt;
  gunzip and uncompress binaries have the same inode&lt;br /&gt;
&lt;br /&gt;
  Symlink: pointer to a name, not an inode. You can have pointer to a name that&amp;#039;s a&lt;br /&gt;
  has a hardlink to an actual piece of data&lt;/div&gt;</summary>
		<author><name>Cdelahou</name></author>
	</entry>
</feed>