<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Not_Another_Completely_Heuristic_Operating_System</id>
	<title>Not Another Completely Heuristic Operating System - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Not_Another_Completely_Heuristic_Operating_System"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Not_Another_Completely_Heuristic_Operating_System&amp;action=history"/>
	<updated>2026-05-04T18:14:23Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Not_Another_Completely_Heuristic_Operating_System&amp;diff=5088685&amp;oldid=prev</id>
		<title>imported&gt;Xose.vazquez at 20:07, 3 November 2025</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Not_Another_Completely_Heuristic_Operating_System&amp;diff=5088685&amp;oldid=prev"/>
		<updated>2025-11-03T20:07:36Z</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;← Previous 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:07, 3 November 2025&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-l22&quot;&gt;Line 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 22:&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;| website = {{URL|https://www.cs.washington.edu/homes/tom/nachos/}}&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;| website = {{URL|https://www.cs.washington.edu/homes/tom/nachos/}}&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;}}&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;}}&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;&#039;&#039;&#039;Not Another Completely Heuristic Operating System&#039;&#039;&#039;, or &#039;&#039;&#039;Nachos&#039;&#039;&#039;, is instructional software for teaching [[undergraduate]], and potentially graduate level operating systems courses.  It was developed at the [[University of California, Berkeley]], designed by Thomas Anderson, and is used by numerous schools around the world.&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;&#039;&#039;&#039;Not Another Completely Heuristic Operating System&#039;&#039;&#039;, or &#039;&#039;&#039;Nachos&#039;&#039;&#039;, is instructional software for teaching [[undergraduate]], and potentially graduate level operating systems courses.  It was developed at the [[University of California, Berkeley]], designed by &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;Thomas &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;E. &lt;/ins&gt;Anderson&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Thomas Anderson]]&lt;/ins&gt;, and is used by numerous schools around the world.&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;Originally written in [[C++]] for [[MIPS architecture|MIPS]], Nachos runs as a user-process on a host operating system.  A MIPS simulator executes the code for any user programs running on top of the Nachos operating system.  Ports of the Nachos code exist for a variety of architectures.&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;Originally written in [[C++]] for [[MIPS architecture|MIPS]], Nachos runs as a user-process on a host operating system.  A MIPS simulator executes the code for any user programs running on top of the Nachos operating system.  Ports of the Nachos code exist for a variety of architectures.&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-l82&quot;&gt;Line 82:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 82:&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;As Nachos has not been in active development for a number of years, and possesses a number of recognized flaws (particularly with regards to [[Software portability|portability]]: Nachos relies on MIPS [[assembly code]], and requires porting to run on [[x86]] architecture), successor projects have been initiated.  In 2004, [[Stanford University]] created [[Pintos]], a Nachos-inspired system written in [[C (programming language)|C]] and designed to run on actual [[x86]] hardware.  In 2000, Dan Hettena at UC Berkeley ported Nachos to [[Java (programming language)|Java]] as Nachos 5.0j, in an effort to make Nachos more portable, more accessible to undergraduates, and less susceptible to subtle bugs in student code that had in earlier versions often dominated student project development time. Another Java-based version was created by Professor Peter Druschel at [[Rice University]]. It was later adapted by Professor Eugene Stark at [[Stony Brook University]] in 2003 and applied in the [[operating system]]s course. At [[Graz University of Technology]] (Austria), a system called SWEB (&amp;quot;Schon wieder ein Betriebssystem&amp;quot;) has been implemented and is used to teach operating system principles.&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;As Nachos has not been in active development for a number of years, and possesses a number of recognized flaws (particularly with regards to [[Software portability|portability]]: Nachos relies on MIPS [[assembly code]], and requires porting to run on [[x86]] architecture), successor projects have been initiated.  In 2004, [[Stanford University]] created [[Pintos]], a Nachos-inspired system written in [[C (programming language)|C]] and designed to run on actual [[x86]] hardware.  In 2000, Dan Hettena at UC Berkeley ported Nachos to [[Java (programming language)|Java]] as Nachos 5.0j, in an effort to make Nachos more portable, more accessible to undergraduates, and less susceptible to subtle bugs in student code that had in earlier versions often dominated student project development time. Another Java-based version was created by Professor Peter Druschel at [[Rice University]]. It was later adapted by Professor Eugene Stark at [[Stony Brook University]] in 2003 and applied in the [[operating system]]s course. At [[Graz University of Technology]] (Austria), a system called SWEB (&amp;quot;Schon wieder ein Betriebssystem&amp;quot;) has been implemented and is used to teach operating system principles.&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;==&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;See also&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;== &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Compared to other teaching operating systems &lt;/ins&gt;==&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;/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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Teaching OS}}&lt;/ins&gt;&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;*[[Xv6]]&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;*[[Pintos]]&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;*[[Minix]]&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;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;==References==&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;==References==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Xose.vazquez</name></author>
	</entry>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Not_Another_Completely_Heuristic_Operating_System&amp;diff=366374&amp;oldid=prev</id>
		<title>imported&gt;KMaster888: ce</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Not_Another_Completely_Heuristic_Operating_System&amp;diff=366374&amp;oldid=prev"/>
		<updated>2024-12-31T13:32:22Z</updated>

		<summary type="html">&lt;p&gt;ce&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Operative System}}&lt;br /&gt;
{{More footnotes|date=November 2009}}&lt;br /&gt;
{{Infobox OS&lt;br /&gt;
| name = Nachos&lt;br /&gt;
| logo = &lt;br /&gt;
| screenshot = &lt;br /&gt;
| caption = An instructional operating system&lt;br /&gt;
| developer = [[University of California, Berkeley]]&amp;lt;br /&amp;gt;(Thomas Anderson, Wayne A. Christopher, Steven J. Procter)&lt;br /&gt;
| family = &lt;br /&gt;
| working_state = Discontinued&lt;br /&gt;
| source_model = &lt;br /&gt;
| released = {{Start date and age|1992}}&lt;br /&gt;
| latest_release_version = 3.4&lt;br /&gt;
| latest_release_date =&lt;br /&gt;
| latest_preview_version = 4.0&lt;br /&gt;
| latest_preview_date = {{Start date and age|1996}}&lt;br /&gt;
| programmed in = [[C++]]&lt;br /&gt;
| supported_platforms = [[MIPS architecture]]&lt;br /&gt;
| kernel_type = [[Monolithic kernel|Monolithic]]&lt;br /&gt;
| ui = &lt;br /&gt;
| license = [[Berkeley Software Distribution]]&lt;br /&gt;
| website = {{URL|https://www.cs.washington.edu/homes/tom/nachos/}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Not Another Completely Heuristic Operating System&amp;#039;&amp;#039;&amp;#039;, or &amp;#039;&amp;#039;&amp;#039;Nachos&amp;#039;&amp;#039;&amp;#039;, is instructional software for teaching [[undergraduate]], and potentially graduate level operating systems courses.  It was developed at the [[University of California, Berkeley]], designed by Thomas Anderson, and is used by numerous schools around the world.&lt;br /&gt;
&lt;br /&gt;
Originally written in [[C++]] for [[MIPS architecture|MIPS]], Nachos runs as a user-process on a host operating system.  A MIPS simulator executes the code for any user programs running on top of the Nachos operating system.  Ports of the Nachos code exist for a variety of architectures.&lt;br /&gt;
&lt;br /&gt;
In addition to the Nachos code, a number of assignments are provided with the Nachos system.  The goal of Nachos is to introduce students to concepts in operating system design and implementation by requiring them to implement significant pieces of functionality within the Nachos system.&lt;br /&gt;
&lt;br /&gt;
In Nachos&amp;#039; case, Operating System simulator simply means that you can run an OS (a guest OS) on top of another one (the host OS), similar to [[Bochs]]/[[VMware]]. It features emulation for:&lt;br /&gt;
* A [[CPU]] (a MIPS CPU)&lt;br /&gt;
* A [[hard drive]] &lt;br /&gt;
* An [[interrupt controller]], timer, and misc. other components&lt;br /&gt;
which are there to run the Nachos&amp;lt;ref name=&amp;quot;nachos&amp;quot;&amp;gt;&lt;br /&gt;
{{cite web&lt;br /&gt;
| title = Guide to Nachos, University of Pittsburgh&lt;br /&gt;
| accessdate = 2014-02-17&lt;br /&gt;
| url= http://people.cs.pitt.edu/~manas/courses/CS1550/nachos.htm&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt; user space applications. That means that you can write programs for Nachos, compile them with a real [[compiler]] (an old [[GNU Compiler Collection|gcc]] compiler&amp;lt;ref name=&amp;quot;compiler&amp;quot;&amp;gt;&lt;br /&gt;
{{cite web&lt;br /&gt;
| title = Compiling C and C++ Programs, University of Wisconsin&lt;br /&gt;
| accessdate = 2014-02-17&lt;br /&gt;
| url = http://pages.cs.wisc.edu/~beechung/ref/gcc-intro.html&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt; that produces code for MIPS) and run them. The Nachos [[kernel (operating system)|kernel]] instead is compiled to the platform of the Host OS and thus runs natively on the Host OS&amp;#039; CPU.&lt;br /&gt;
&lt;br /&gt;
Nachos version 3.4 has been the stable, commonly used version of Nachos for many years.  Nachos version 4.0 has existed as a [[Software development cycle|beta]] since approximately 1996.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
Nachos has various modules implementing the functionality of a basic operating system. The [[wrapper function]]s for various [[system call]]s of the OS kernel are generally implemented in a manner similar to that of the [[System call#Examples and tools|UNIX system calls]]&lt;br /&gt;
.&amp;lt;ref name=&amp;quot;syscall&amp;quot;&amp;gt;&lt;br /&gt;
{{cite web&lt;br /&gt;
| title = Nachos Beginner&amp;#039;s Guide, Level 2: System calls and exceptions, Linköping University&lt;br /&gt;
| accessdate = 2014-09-09&lt;br /&gt;
| url= https://www.ida.liu.se/~TDDI12/material/begguide/exceptions.html&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt; Various parts of the OS are instantiated as objects using the native code. For example, a class &amp;lt;code&amp;gt;Machine&amp;lt;/code&amp;gt;is used as the master class of the simulated machine.&amp;lt;ref name=&amp;quot;machine&amp;quot;&amp;gt;&lt;br /&gt;
{{cite web&lt;br /&gt;
| title = Machine Class at Nachos Documentation, University of California, Berkeley&lt;br /&gt;
| accessdate = 2014-09-09&lt;br /&gt;
| url= http://inst.eecs.berkeley.edu/~cs162/sp10/Nachos/doc/nachos/machine/Machine.html&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt; It contains various objects, such as &amp;lt;code&amp;gt;FileSystem&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Processor&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Timer&amp;lt;/code&amp;gt;, etc. which are defined to simulate various hardware aspects.&lt;br /&gt;
&lt;br /&gt;
===Major components===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NachOS Machine&amp;#039;&amp;#039;&amp;#039; - Nachos simulates a machine that roughly approximates the MIPS architecture. The machine has [[hardware register|registers]], memory and a CPU. The Nachos/MIPS machine is implemented by the Machine object, an instance of which is created when Nachos starts up. It contains methods like Run, ReadRegister, WriteRegister, etc. It also defines an interrupt object to handle [[interrupt]]s. Timer and statistics are also implemented in this.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NachOS Threads&amp;#039;&amp;#039;&amp;#039; - In NachOS a [[Thread (computing)|thread]] class is defined. A thread has an associated state with it which may be ready, running, blocked or just created. The thread object has various methods like PutThreadToSleep, YieldCPU, ThreadFork, ThreadStackAllocate, etc. Each thread runs at a [[virtual address space]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NachOS UserPrograms&amp;#039;&amp;#039;&amp;#039; - Nachos runs user programs in their own private [[address space]]. Nachos can run any MIPS binary, assuming that it restricts itself to only making system calls that Nachos understands. In Unix, &amp;quot;[[a.out]]&amp;quot; files are stored in &amp;quot;coff&amp;quot; format. Nachos requires that [[executable]]s be in the simpler &amp;quot;Noff&amp;quot; format. To convert binaries of one format to the other, use the coff2noff program.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Draft document&amp;quot;&amp;gt;&lt;br /&gt;
{{cite web&lt;br /&gt;
| title = A road map through NachOS, Duke University&lt;br /&gt;
| accessdate = 2015-05-05&lt;br /&gt;
| url = https://users.cs.duke.edu/~narten/110/nachos/main/main.html&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Successors==&lt;br /&gt;
As Nachos has not been in active development for a number of years, and possesses a number of recognized flaws (particularly with regards to [[Software portability|portability]]: Nachos relies on MIPS [[assembly code]], and requires porting to run on [[x86]] architecture), successor projects have been initiated.  In 2004, [[Stanford University]] created [[Pintos]], a Nachos-inspired system written in [[C (programming language)|C]] and designed to run on actual [[x86]] hardware.  In 2000, Dan Hettena at UC Berkeley ported Nachos to [[Java (programming language)|Java]] as Nachos 5.0j, in an effort to make Nachos more portable, more accessible to undergraduates, and less susceptible to subtle bugs in student code that had in earlier versions often dominated student project development time. Another Java-based version was created by Professor Peter Druschel at [[Rice University]]. It was later adapted by Professor Eugene Stark at [[Stony Brook University]] in 2003 and applied in the [[operating system]]s course. At [[Graz University of Technology]] (Austria), a system called SWEB (&amp;quot;Schon wieder ein Betriebssystem&amp;quot;) has been implemented and is used to teach operating system principles.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Xv6]]&lt;br /&gt;
*[[Pintos]]&lt;br /&gt;
*[[Minix]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://www.cs.washington.edu/homes/tom/nachos/ Nachos Home Page]&lt;br /&gt;
*[http://lazowska.cs.washington.edu/nachos.pdf Original Usenix 1993 paper by Christopher, Procter, and Anderson.]&lt;br /&gt;
*[http://everything2.com/index.pl?node_id=1467693 Extensive writeup on Nachos]&lt;br /&gt;
*[http://www.cs.duke.edu/~narten/110/nachos/main/main.html Thomas Narten&amp;#039;s Nachos Roadmap]&lt;br /&gt;
*[http://inst.eecs.berkeley.edu/~cs162/sp07/Nachos/walk/walk.html Nachos for Java Walkthrough]&lt;br /&gt;
*[http://jnachos.org/ JNachos Home Page, another Java-based version; ported by Patrick J. McSweeney and WonKyung Park]&lt;br /&gt;
&lt;br /&gt;
{{Operating system}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Discontinued operating systems]]&lt;br /&gt;
[[Category:Educational operating systems]]&lt;br /&gt;
[[Category:MIPS operating systems]]&lt;/div&gt;</summary>
		<author><name>imported&gt;KMaster888</name></author>
	</entry>
</feed>