<?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_2026F%3A_Assignment_1</id>
	<title>Operating Systems 2026F: Assignment 1 - 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_2026F%3A_Assignment_1"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2026F:_Assignment_1&amp;action=history"/>
	<updated>2026-10-05T10:43:03Z</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_2026F:_Assignment_1&amp;diff=25180&amp;oldid=prev</id>
		<title>Soma at 23:34, 30 September 2026</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2026F:_Assignment_1&amp;diff=25180&amp;oldid=prev"/>
		<updated>2026-09-30T23:34:26Z</updated>

		<summary type="html">&lt;p&gt;&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:34, 30 September 2026&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-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&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;Please submit the answers to the following questions via Brightspace by October 5, 2026. There are 20 points in eight questions.&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;Please submit the answers to the following questions via Brightspace by October 5, 2026. There are 20 points in eight questions.&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;Submit your answers as a plain text file following [https://homeostasis.scs.carleton.ca/~soma/os-2026f/templates/comp3000-a1-template.txt this template].  Name your answer file &quot;comp3000-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;assign1&lt;/del&gt;-&amp;lt;username&amp;gt;.txt&quot; (where username is your MyCarletonOne username).  Please make sure to use your correct student ID number otherwise your grades may not be properly recorded.&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;Submit your answers as a plain text file following [https://homeostasis.scs.carleton.ca/~soma/os-2026f/templates/comp3000-a1-template.txt this template].  Name your answer file &quot;comp3000-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a1&lt;/ins&gt;-&amp;lt;username&amp;gt;.txt&quot; (where username is your MyCarletonOne username).  Please make sure to use your correct student ID number otherwise your grades may not be properly recorded.&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;Your answers will be parsed by a script in order to help with grading so please preserve the format of the template.  No other formats will be accepted.&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;Your answers will be parsed by a script in order to help with grading so please preserve the format of the template.  No other formats will be accepted.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Soma</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2026F:_Assignment_1&amp;diff=25179&amp;oldid=prev</id>
		<title>Soma at 20:31, 27 September 2026</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2026F:_Assignment_1&amp;diff=25179&amp;oldid=prev"/>
		<updated>2026-09-27T20:31:15Z</updated>

		<summary type="html">&lt;p&gt;&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 20:31, 27 September 2026&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-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;This assignment is not yet finalized.&#039;&#039;&#039;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;Please submit the answers to the following questions via Brightspace by October 5, 2026. There are 20 points in eight questions.&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;Please submit the answers to the following questions via Brightspace by October 5, 2026. There are 20 points in eight questions.&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;/table&gt;</summary>
		<author><name>Soma</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2026F:_Assignment_1&amp;diff=25170&amp;oldid=prev</id>
		<title>Soma at 16:15, 26 September 2026</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2026F:_Assignment_1&amp;diff=25170&amp;oldid=prev"/>
		<updated>2026-09-26T16:15:12Z</updated>

		<summary type="html">&lt;p&gt;&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 16:15, 26 September 2026&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-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&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;&amp;#039;&amp;#039;&amp;#039;This assignment is not yet finalized.&amp;#039;&amp;#039;&amp;#039;&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;&amp;#039;&amp;#039;&amp;#039;This assignment is not yet finalized.&amp;#039;&amp;#039;&amp;#039;&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;Please submit the answers to the following questions via Brightspace by &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;???&lt;/del&gt;, 2026. There are 20 points in &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;?? &lt;/del&gt;questions.&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;Please submit the answers to the following questions via Brightspace by &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;October 5&lt;/ins&gt;, 2026. There are 20 points in &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;eight &lt;/ins&gt;questions.&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;Submit your answers as a plain text file following [https://homeostasis.scs.carleton.ca/~soma/os-2026f/templates/comp3000-a1-template.txt this template].  Name your answer file &amp;quot;comp3000-assign1-&amp;lt;username&amp;gt;.txt&amp;quot; (where username is your MyCarletonOne username).  Please make sure to use your correct student ID number otherwise your grades may not be properly recorded.&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;Submit your answers as a plain text file following [https://homeostasis.scs.carleton.ca/~soma/os-2026f/templates/comp3000-a1-template.txt this template].  Name your answer file &amp;quot;comp3000-assign1-&amp;lt;username&amp;gt;.txt&amp;quot; (where username is your MyCarletonOne username).  Please make sure to use your correct student ID number otherwise your grades may not be properly recorded.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Soma</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2026F:_Assignment_1&amp;diff=25168&amp;oldid=prev</id>
		<title>Soma at 16:12, 26 September 2026</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2026F:_Assignment_1&amp;diff=25168&amp;oldid=prev"/>
		<updated>2026-09-26T16:12:02Z</updated>

		<summary type="html">&lt;p&gt;&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 16:12, 26 September 2026&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-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&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;&#039;&#039;&#039;This assignment is not yet finalized.&#039;&#039;&#039;&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 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;Please submit the answers to the following questions via Brightspace by ???, 2026. There are 20 points in ?? questions.&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;Please submit the answers to the following questions via Brightspace by ???, 2026. There are 20 points in ?? questions.&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;/table&gt;</summary>
		<author><name>Soma</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2026F:_Assignment_1&amp;diff=25167&amp;oldid=prev</id>
		<title>Soma: /* Questions */</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2026F:_Assignment_1&amp;diff=25167&amp;oldid=prev"/>
		<updated>2026-09-26T16:11:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Questions&lt;/span&gt;&lt;/span&gt;&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 16:11, 26 September 2026&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-l37&quot;&gt;Line 37:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 37:&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;  &amp;lt;li&amp;gt;[2] Does the code in 3000menu.s make any system calls directly? How do you know? Explain briefly.&amp;lt;/li&amp;gt;&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;  &amp;lt;li&amp;gt;[2] Does the code in 3000menu.s make any system calls directly? How do you know? Explain briefly.&amp;lt;/li&amp;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;  &amp;lt;li&amp;gt;[6] How could you modify 3000menu.c so that &amp;lt;tt&amp;gt;run_program()&amp;lt;/tt&amp;gt; no longer used &amp;lt;tt&amp;gt;system()&amp;lt;/tt&amp;gt; and instead used &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;execve&amp;lt;/tt&amp;gt;, and any code from the first two tutorials except for &amp;lt;tt&amp;gt;execvp()&amp;lt;/tt&amp;gt;? You may not use any other external code. Your modified version should have equivalent functionality to the original.&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;  &amp;lt;li&amp;gt;[6] How could you modify 3000menu.c so that &amp;lt;tt&amp;gt;run_program()&amp;lt;/tt&amp;gt; no longer used &amp;lt;tt&amp;gt;system()&amp;lt;/tt&amp;gt; and instead used &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;execve&amp;lt;/tt&amp;gt;, and any code from the first two tutorials except for &amp;lt;tt&amp;gt;execvp()&amp;lt;/tt&amp;gt;? You may not use any other external code. Your modified version should have equivalent functionality to the original.&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &amp;lt;li&amp;gt;[5] Replace line 29 in 3000menu.s (the assembly code version) with the following two lines:&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; mov $57,%eax&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; syscall&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Create a new binary by compiling the modified assembly language code, calling it 3000menu-q9.  It should run the same as before.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &amp;lt;ol style=&quot;list-style-type:lower-alpha&quot;&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &amp;lt;li&amp;gt;[1] Is 3000menu-q9 statically or dynamically linked?&amp;lt;/li&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &amp;lt;/ol&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &amp;lt;/li&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&amp;lt;/ol&amp;gt;&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;&amp;lt;/ol&amp;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;/table&gt;</summary>
		<author><name>Soma</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2026F:_Assignment_1&amp;diff=25166&amp;oldid=prev</id>
		<title>Soma: Created page with &quot;Please submit the answers to the following questions via Brightspace by ???, 2026. There are 20 points in ?? questions.  Submit your answers as a plain text file following [https://homeostasis.scs.carleton.ca/~soma/os-2026f/templates/comp3000-a1-template.txt this template].  Name your answer file &quot;comp3000-assign1-&lt;username&gt;.txt&quot; (where username is your MyCarletonOne username).  Please make sure to use your correct student ID number otherwise your grades may not be prope...&quot;</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2026F:_Assignment_1&amp;diff=25166&amp;oldid=prev"/>
		<updated>2026-09-26T16:11:09Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Please submit the answers to the following questions via Brightspace by ???, 2026. There are 20 points in ?? questions.  Submit your answers as a plain text file following [https://homeostasis.scs.carleton.ca/~soma/os-2026f/templates/comp3000-a1-template.txt this template].  Name your answer file &amp;quot;comp3000-assign1-&amp;lt;username&amp;gt;.txt&amp;quot; (where username is your MyCarletonOne username).  Please make sure to use your correct student ID number otherwise your grades may not be prope...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Please submit the answers to the following questions via Brightspace by ???, 2026. There are 20 points in ?? questions.&lt;br /&gt;
&lt;br /&gt;
Submit your answers as a plain text file following [https://homeostasis.scs.carleton.ca/~soma/os-2026f/templates/comp3000-a1-template.txt this template].  Name your answer file &amp;quot;comp3000-assign1-&amp;lt;username&amp;gt;.txt&amp;quot; (where username is your MyCarletonOne username).  Please make sure to use your correct student ID number otherwise your grades may not be properly recorded.&lt;br /&gt;
&lt;br /&gt;
Your answers will be parsed by a script in order to help with grading so please preserve the format of the template.  No other formats will be accepted.&lt;br /&gt;
&lt;br /&gt;
Note that the file should be a UNIX text file, not a Windows text file (so LF line endings).  See the [https://en.wikipedia.org/wiki/Text_file Wikipedia page on text files] to learn more.  Most modern text editors can convert between different types of text files.  Alternately, install the program &amp;lt;tt&amp;gt;dos2unix&amp;lt;/tt&amp;gt; on the VM to convert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;You may use [https://homeostasis.scs.carleton.ca/~soma/os-2026f/validators/a1-validator.html this validator page] to make sure your answer file is properly named and formatted.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&amp;#039;t forget to include what outside resources you used to complete each of your answers, including other students, man pages, and web resources. You do not need to list help from the instructor, TA, or information found in the textbook.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
In this assignment you will be looking at [https://homeostasis.scs.carleton.ca/~soma/os-2026f/code/3000menu.c 3000menu.c] and its corresponding assembly language version, [https://homeostasis.scs.carleton.ca/~soma/os-2026f/code/3000menu.s 3000menu.s].  You can download the C source, generate the assembly language code, and compile it with the following commands:&lt;br /&gt;
&lt;br /&gt;
  wget https://homeostasis.scs.carleton.ca/~soma/os-2026f/code/3000menu.c&lt;br /&gt;
  gcc -O -S 3000menu.c&lt;br /&gt;
  gcc -O 3000menu.c -o 3000menu&lt;br /&gt;
&lt;br /&gt;
Note that you can also just compile the assembly code directly:&lt;br /&gt;
&lt;br /&gt;
  gcc -O 3000menu.s -o 3000menu  &lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;ltrace&amp;lt;/tt&amp;gt; doesn&amp;#039;t work for you, add the &amp;quot;-z lazy&amp;quot; option when you compile. (This option is not needed on Ubuntu 26.04.)&lt;br /&gt;
&lt;br /&gt;
==Questions==&lt;br /&gt;
Please answer the following questions. When a question asks about how do you know, you need to give empirical evidence. References to documentation are not sufficient as documentation can be incorrect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;[2] How do you define a custom command for 3000menu without changing its code? What parts 3000menu implement custom command support?&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;[2] Can menu commands include command line options? Why, or why not?&lt;br /&gt;
 &amp;lt;li&amp;gt;[2] What compiler directive (an instruction starting with a period) is present at the start of every function?  What is at the end of the function? Ignore directives that include the name of the function.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;[2] Which line(s) in 3000menu.s implement the if/else statements in &amp;lt;tt&amp;gt;run_program()&amp;lt;/tt&amp;gt;? How do you know those are the correct lines?&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;[2] What line(s) in 3000menu.s implement the call to &amp;lt;tt&amp;gt;getline()&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;choose_program()&amp;lt;/tt&amp;gt;? How do you know those are the correct lines?&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;[2] &amp;lt;tt&amp;gt;printf&amp;lt;/tt&amp;gt; calls get translated into two different calls in assembly. What are those two calls? And why is each used (rather than the other)?&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;[2] Does the code in 3000menu.s make any system calls directly? How do you know? Explain briefly.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;[6] How could you modify 3000menu.c so that &amp;lt;tt&amp;gt;run_program()&amp;lt;/tt&amp;gt; no longer used &amp;lt;tt&amp;gt;system()&amp;lt;/tt&amp;gt; and instead used &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;execve&amp;lt;/tt&amp;gt;, and any code from the first two tutorials except for &amp;lt;tt&amp;gt;execvp()&amp;lt;/tt&amp;gt;? You may not use any other external code. Your modified version should have equivalent functionality to the original.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li&amp;gt;[5] Replace line 29 in 3000menu.s (the assembly code version) with the following two lines:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; mov $57,%eax&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; syscall&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Create a new binary by compiling the modified assembly language code, calling it 3000menu-q9.  It should run the same as before.&lt;br /&gt;
 &amp;lt;ol style=&amp;quot;list-style-type:lower-alpha&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[1] Is 3000menu-q9 statically or dynamically linked?&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&lt;br /&gt;
===[https://homeostasis.scs.carleton.ca/~soma/os-2026f/code/3000menu.c 3000menu.c]===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line&amp;gt;&lt;br /&gt;
/* 3000menu.c */&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/wait.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
char *menu[] = {&lt;br /&gt;
        &amp;quot;/usr/bin/ls&amp;quot;,&lt;br /&gt;
        &amp;quot;/usr/bin/ps&amp;quot;,&lt;br /&gt;
        &amp;quot;/usr/bin/nano&amp;quot;,&lt;br /&gt;
        &amp;quot;/usr/bin/top&amp;quot;,&lt;br /&gt;
        &amp;quot;CUSTOM&amp;quot;,&lt;br /&gt;
        &amp;quot;QUIT&amp;quot;,&lt;br /&gt;
        NULL&lt;br /&gt;
};&lt;br /&gt;
        &lt;br /&gt;
int quit = 5;&lt;br /&gt;
const int CUSTOM = 4;&lt;br /&gt;
&lt;br /&gt;
void run_program(int choice)&lt;br /&gt;
{&lt;br /&gt;
        int result;&lt;br /&gt;
        &lt;br /&gt;
        printf(&amp;quot;Running %s\n&amp;quot;, menu[choice]);&lt;br /&gt;
        &lt;br /&gt;
        result = system(menu[choice]);&lt;br /&gt;
&lt;br /&gt;
        if (result != 0) {&lt;br /&gt;
                printf(&amp;quot;Command failed.\n&amp;quot;);&lt;br /&gt;
        } else {&lt;br /&gt;
                printf(&amp;quot;Command succeeded.\n&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
                &lt;br /&gt;
        return;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int choose_program(void)&lt;br /&gt;
{&lt;br /&gt;
        int i = 0;&lt;br /&gt;
        int choice;&lt;br /&gt;
        char *input = NULL;&lt;br /&gt;
        size_t result, n = 0;&lt;br /&gt;
&lt;br /&gt;
        printf(&amp;quot;\nChoose a program to run:\n\n&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        while (i &amp;lt;= quit) {&lt;br /&gt;
                printf(&amp;quot;%d. %s\n&amp;quot;, i + 1, menu[i]);&lt;br /&gt;
                i++;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        printf(&amp;quot;\nYour choice? &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        result = getline(&amp;amp;input, &amp;amp;n, stdin);&lt;br /&gt;
        choice = atoi(input);&lt;br /&gt;
        free(input);&lt;br /&gt;
&lt;br /&gt;
        if ((result &amp;gt; 0) &amp;amp;&amp;amp; (choice &amp;gt; 0) &amp;amp;&amp;amp; (choice &amp;lt;= i)) {&lt;br /&gt;
                return choice - 1;&lt;br /&gt;
        } else {&lt;br /&gt;
                return -1;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
        int program;&lt;br /&gt;
        char *c;&lt;br /&gt;
&lt;br /&gt;
        c = getenv(&amp;quot;MENUCMD&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        if (c) {&lt;br /&gt;
                menu[CUSTOM] = c;&lt;br /&gt;
        } else {&lt;br /&gt;
                menu[CUSTOM] = menu[quit];&lt;br /&gt;
                quit = CUSTOM;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        while (1) {&lt;br /&gt;
                program = choose_program();&lt;br /&gt;
&lt;br /&gt;
                if (program == quit) {&lt;br /&gt;
                        return 0;&lt;br /&gt;
                }&lt;br /&gt;
                &lt;br /&gt;
                if (program != -1) {&lt;br /&gt;
                        run_program(program);&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[https://homeostasis.scs.carleton.ca/~soma/os-2026f/code/3000menu.s 3000menu.s]===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot; line&amp;gt;&lt;br /&gt;
	.file	&amp;quot;3000menu.c&amp;quot;&lt;br /&gt;
	.text&lt;br /&gt;
	.section	.rodata.str1.1,&amp;quot;aMS&amp;quot;,@progbits,1&lt;br /&gt;
.LC0:&lt;br /&gt;
	.string	&amp;quot;Running %s\n&amp;quot;&lt;br /&gt;
.LC1:&lt;br /&gt;
	.string	&amp;quot;Command failed.&amp;quot;&lt;br /&gt;
.LC2:&lt;br /&gt;
	.string	&amp;quot;Command succeeded.&amp;quot;&lt;br /&gt;
	.text&lt;br /&gt;
	.globl	run_program&lt;br /&gt;
	.type	run_program, @function&lt;br /&gt;
run_program:&lt;br /&gt;
.LFB51:&lt;br /&gt;
	.cfi_startproc&lt;br /&gt;
	endbr64&lt;br /&gt;
	pushq	%rbp&lt;br /&gt;
	.cfi_def_cfa_offset 16&lt;br /&gt;
	.cfi_offset 6, -16&lt;br /&gt;
	pushq	%rbx&lt;br /&gt;
	.cfi_def_cfa_offset 24&lt;br /&gt;
	.cfi_offset 3, -24&lt;br /&gt;
	subq	$8, %rsp&lt;br /&gt;
	.cfi_def_cfa_offset 32&lt;br /&gt;
	leaq	menu(%rip), %rbp&lt;br /&gt;
	movslq	%edi, %rbx&lt;br /&gt;
	movq	0(%rbp,%rbx,8), %rdx&lt;br /&gt;
	leaq	.LC0(%rip), %rsi&lt;br /&gt;
	movl	$2, %edi&lt;br /&gt;
	movl	$0, %eax&lt;br /&gt;
	call	__printf_chk@PLT&lt;br /&gt;
	movq	0(%rbp,%rbx,8), %rdi&lt;br /&gt;
	call	system@PLT&lt;br /&gt;
	testl	%eax, %eax&lt;br /&gt;
	je	.L2&lt;br /&gt;
	leaq	.LC1(%rip), %rdi&lt;br /&gt;
	call	puts@PLT&lt;br /&gt;
.L1:&lt;br /&gt;
	addq	$8, %rsp&lt;br /&gt;
	.cfi_remember_state&lt;br /&gt;
	.cfi_def_cfa_offset 24&lt;br /&gt;
	popq	%rbx&lt;br /&gt;
	.cfi_def_cfa_offset 16&lt;br /&gt;
	popq	%rbp&lt;br /&gt;
	.cfi_def_cfa_offset 8&lt;br /&gt;
	ret&lt;br /&gt;
.L2:&lt;br /&gt;
	.cfi_restore_state&lt;br /&gt;
	leaq	.LC2(%rip), %rdi&lt;br /&gt;
	call	puts@PLT&lt;br /&gt;
	jmp	.L1&lt;br /&gt;
	.cfi_endproc&lt;br /&gt;
.LFE51:&lt;br /&gt;
	.size	run_program, .-run_program&lt;br /&gt;
	.section	.rodata.str1.1&lt;br /&gt;
.LC3:&lt;br /&gt;
	.string	&amp;quot;\nChoose a program to run:\n&amp;quot;&lt;br /&gt;
.LC4:&lt;br /&gt;
	.string	&amp;quot;%d. %s\n&amp;quot;&lt;br /&gt;
.LC5:&lt;br /&gt;
	.string	&amp;quot;\nYour choice? &amp;quot;&lt;br /&gt;
	.text&lt;br /&gt;
	.globl	choose_program&lt;br /&gt;
	.type	choose_program, @function&lt;br /&gt;
choose_program:&lt;br /&gt;
.LFB52:&lt;br /&gt;
	.cfi_startproc&lt;br /&gt;
	endbr64&lt;br /&gt;
	pushq	%r12&lt;br /&gt;
	.cfi_def_cfa_offset 16&lt;br /&gt;
	.cfi_offset 12, -16&lt;br /&gt;
	pushq	%rbp&lt;br /&gt;
	.cfi_def_cfa_offset 24&lt;br /&gt;
	.cfi_offset 6, -24&lt;br /&gt;
	pushq	%rbx&lt;br /&gt;
	.cfi_def_cfa_offset 32&lt;br /&gt;
	.cfi_offset 3, -32&lt;br /&gt;
	subq	$32, %rsp&lt;br /&gt;
	.cfi_def_cfa_offset 64&lt;br /&gt;
	movq	%fs:40, %rax&lt;br /&gt;
	movq	%rax, 24(%rsp)&lt;br /&gt;
	xorl	%eax, %eax&lt;br /&gt;
	movq	$0, 8(%rsp)&lt;br /&gt;
	movq	$0, 16(%rsp)&lt;br /&gt;
	leaq	.LC3(%rip), %rdi&lt;br /&gt;
	call	puts@PLT&lt;br /&gt;
	cmpl	$0, quit(%rip)&lt;br /&gt;
	js	.L9&lt;br /&gt;
	leaq	menu(%rip), %rbp&lt;br /&gt;
	movl	$0, %ebx&lt;br /&gt;
	leaq	.LC4(%rip), %r12&lt;br /&gt;
.L7:&lt;br /&gt;
	addl	$1, %ebx&lt;br /&gt;
	movq	0(%rbp), %rcx&lt;br /&gt;
	movl	%ebx, %edx&lt;br /&gt;
	movq	%r12, %rsi&lt;br /&gt;
	movl	$2, %edi&lt;br /&gt;
	movl	$0, %eax&lt;br /&gt;
	call	__printf_chk@PLT&lt;br /&gt;
	addq	$8, %rbp&lt;br /&gt;
	cmpl	quit(%rip), %ebx&lt;br /&gt;
	jle	.L7&lt;br /&gt;
.L6:&lt;br /&gt;
	leaq	.LC5(%rip), %rsi&lt;br /&gt;
	movl	$2, %edi&lt;br /&gt;
	movl	$0, %eax&lt;br /&gt;
	call	__printf_chk@PLT&lt;br /&gt;
	leaq	16(%rsp), %rsi&lt;br /&gt;
	leaq	8(%rsp), %rdi&lt;br /&gt;
	movq	stdin(%rip), %rdx&lt;br /&gt;
	call	getline@PLT&lt;br /&gt;
	movq	%rax, %r12&lt;br /&gt;
	movl	$10, %edx&lt;br /&gt;
	movl	$0, %esi&lt;br /&gt;
	movq	8(%rsp), %rdi&lt;br /&gt;
	call	__isoc23_strtol@PLT&lt;br /&gt;
	movq	%rax, %rbp&lt;br /&gt;
	movq	8(%rsp), %rdi&lt;br /&gt;
	call	free@PLT&lt;br /&gt;
	testl	%ebp, %ebp&lt;br /&gt;
	setg	%dl&lt;br /&gt;
	cmpl	%ebx, %ebp&lt;br /&gt;
	setle	%al&lt;br /&gt;
	andl	%eax, %edx&lt;br /&gt;
	testq	%r12, %r12&lt;br /&gt;
	setne	%al&lt;br /&gt;
	movzbl	%al, %eax&lt;br /&gt;
	andl	%edx, %eax&lt;br /&gt;
	negl	%eax&lt;br /&gt;
	andl	%ebp, %eax&lt;br /&gt;
	subl	$1, %eax&lt;br /&gt;
	movq	24(%rsp), %rdx&lt;br /&gt;
	subq	%fs:40, %rdx&lt;br /&gt;
	jne	.L12&lt;br /&gt;
	addq	$32, %rsp&lt;br /&gt;
	.cfi_remember_state&lt;br /&gt;
	.cfi_def_cfa_offset 32&lt;br /&gt;
	popq	%rbx&lt;br /&gt;
	.cfi_def_cfa_offset 24&lt;br /&gt;
	popq	%rbp&lt;br /&gt;
	.cfi_def_cfa_offset 16&lt;br /&gt;
	popq	%r12&lt;br /&gt;
	.cfi_def_cfa_offset 8&lt;br /&gt;
	ret&lt;br /&gt;
.L9:&lt;br /&gt;
	.cfi_restore_state&lt;br /&gt;
	movl	$0, %ebx&lt;br /&gt;
	jmp	.L6&lt;br /&gt;
.L12:&lt;br /&gt;
	call	__stack_chk_fail@PLT&lt;br /&gt;
	.cfi_endproc&lt;br /&gt;
.LFE52:&lt;br /&gt;
	.size	choose_program, .-choose_program&lt;br /&gt;
	.section	.rodata.str1.1&lt;br /&gt;
.LC6:&lt;br /&gt;
	.string	&amp;quot;MENUCMD&amp;quot;&lt;br /&gt;
	.text&lt;br /&gt;
	.globl	main&lt;br /&gt;
	.type	main, @function&lt;br /&gt;
main:&lt;br /&gt;
.LFB53:&lt;br /&gt;
	.cfi_startproc&lt;br /&gt;
	endbr64&lt;br /&gt;
	subq	$8, %rsp&lt;br /&gt;
	.cfi_def_cfa_offset 16&lt;br /&gt;
	leaq	.LC6(%rip), %rdi&lt;br /&gt;
	call	getenv@PLT&lt;br /&gt;
	testq	%rax, %rax&lt;br /&gt;
	je	.L14&lt;br /&gt;
	movq	%rax, 32+menu(%rip)&lt;br /&gt;
.L18:&lt;br /&gt;
	call	choose_program&lt;br /&gt;
	cmpl	%eax, quit(%rip)&lt;br /&gt;
	je	.L20&lt;br /&gt;
	cmpl	$-1, %eax&lt;br /&gt;
	je	.L18&lt;br /&gt;
	movl	%eax, %edi&lt;br /&gt;
	call	run_program&lt;br /&gt;
	jmp	.L18&lt;br /&gt;
.L14:&lt;br /&gt;
	movslq	quit(%rip), %rdx&lt;br /&gt;
	leaq	menu(%rip), %rax&lt;br /&gt;
	movq	(%rax,%rdx,8), %rax&lt;br /&gt;
	movq	%rax, 32+menu(%rip)&lt;br /&gt;
	movl	$4, quit(%rip)&lt;br /&gt;
	jmp	.L18&lt;br /&gt;
.L20:&lt;br /&gt;
	movl	$0, %eax&lt;br /&gt;
	addq	$8, %rsp&lt;br /&gt;
	.cfi_def_cfa_offset 8&lt;br /&gt;
	ret&lt;br /&gt;
	.cfi_endproc&lt;br /&gt;
.LFE53:&lt;br /&gt;
	.size	main, .-main&lt;br /&gt;
	.globl	CUSTOM&lt;br /&gt;
	.section	.rodata&lt;br /&gt;
	.align 4&lt;br /&gt;
	.type	CUSTOM, @object&lt;br /&gt;
	.size	CUSTOM, 4&lt;br /&gt;
CUSTOM:&lt;br /&gt;
	.long	4&lt;br /&gt;
	.globl	quit&lt;br /&gt;
	.data&lt;br /&gt;
	.align 4&lt;br /&gt;
	.type	quit, @object&lt;br /&gt;
	.size	quit, 4&lt;br /&gt;
quit:&lt;br /&gt;
	.long	5&lt;br /&gt;
	.globl	menu&lt;br /&gt;
	.section	.rodata.str1.1&lt;br /&gt;
.LC7:&lt;br /&gt;
	.string	&amp;quot;/usr/bin/ls&amp;quot;&lt;br /&gt;
.LC8:&lt;br /&gt;
	.string	&amp;quot;/usr/bin/ps&amp;quot;&lt;br /&gt;
.LC9:&lt;br /&gt;
	.string	&amp;quot;/usr/bin/nano&amp;quot;&lt;br /&gt;
.LC10:&lt;br /&gt;
	.string	&amp;quot;/usr/bin/top&amp;quot;&lt;br /&gt;
.LC11:&lt;br /&gt;
	.string	&amp;quot;CUSTOM&amp;quot;&lt;br /&gt;
.LC12:&lt;br /&gt;
	.string	&amp;quot;QUIT&amp;quot;&lt;br /&gt;
	.section	.data.rel.local,&amp;quot;aw&amp;quot;&lt;br /&gt;
	.align 32&lt;br /&gt;
	.type	menu, @object&lt;br /&gt;
	.size	menu, 56&lt;br /&gt;
menu:&lt;br /&gt;
	.quad	.LC7&lt;br /&gt;
	.quad	.LC8&lt;br /&gt;
	.quad	.LC9&lt;br /&gt;
	.quad	.LC10&lt;br /&gt;
	.quad	.LC11&lt;br /&gt;
	.quad	.LC12&lt;br /&gt;
	.quad	0&lt;br /&gt;
	.ident	&amp;quot;GCC: (Ubuntu 15.2.0-16ubuntu1) 15.2.0&amp;quot;&lt;br /&gt;
	.section	.note.GNU-stack,&amp;quot;&amp;quot;,@progbits&lt;br /&gt;
	.section	.note.gnu.property,&amp;quot;a&amp;quot;&lt;br /&gt;
	.align 8&lt;br /&gt;
	.long	1f - 0f&lt;br /&gt;
	.long	4f - 1f&lt;br /&gt;
	.long	5&lt;br /&gt;
0:&lt;br /&gt;
	.string	&amp;quot;GNU&amp;quot;&lt;br /&gt;
1:&lt;br /&gt;
	.align 8&lt;br /&gt;
	.long	0xc0000002&lt;br /&gt;
	.long	3f - 2f&lt;br /&gt;
2:&lt;br /&gt;
	.long	0x3&lt;br /&gt;
3:&lt;br /&gt;
	.align 8&lt;br /&gt;
4:&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Soma</name></author>
	</entry>
</feed>