<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Dryice Liu's Blog &#187; minix</title>
	<link>http://dryice.name/blog</link>
	<description></description>
	<pubDate>Tue, 31 Aug 2010 12:01:11 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.3</generator>
	<language>en</language>
			<item>
		<title>install Minix CD-ROM-2.0 on qemu</title>
		<link>http://dryice.name/blog/minix/install-minix-cd-rom-20-on-qemu/</link>
		<comments>http://dryice.name/blog/minix/install-minix-cd-rom-20-on-qemu/#comments</comments>
		<pubDate>Wed, 09 Jan 2008 09:53:34 +0000</pubDate>
		<dc:creator>dryice</dc:creator>
		
		<category><![CDATA[minix]]></category>
<category>download</category><category>minix</category><category>os</category><category>qemu</category>
		<guid isPermaLink="false">http://dryice.name/blog/minix/install-minix-cd-rom-20-on-qemu/</guid>
		<description><![CDATA[While when I doing the &#8220;2008 plan&#8221; I found there&#8217;s something I didn&#8217;t finished last year. Among them is learning the Minix code. I&#8217;ve read all the principle chapters, and left reading the source code behind and never finished that. So to make a good start for this year, I decide to make a test [...]]]></description>
			<content:encoded><![CDATA[<p>While when I doing the &#8220;2008 plan&#8221; I found there&#8217;s something I didn&#8217;t finished last year. Among them is learning the Minix code. I&#8217;ve read all the principle chapters, and left <a href="http://dryice.name/blog/minix/reading-the-source/" aiotitle="reading the source code">reading the source code</a> behind and never finished that. So to make a good start for this year, I decide to make a test qemu machine yesterday.</p>
<p>There are two good articles about install Minix : <a href="http://minix1.woodhull.com/current/2.0.4/" aiotitle="How to Get and Install Minix 2.0.4">How to Get and Install Minix 2.0.4</a> and <a href="http://neojia.livejournal.com/2681.html">Install Minix on Qemu</a>. There are also a <a href="http://fabrice.bellard.free.fr/qemu/download.html">Qemu image to download</a> on the net. However they  are all about Minix 2.0.4, the latest of the 2.x series. However as I&#8217;m reading the book, I prefer to use the same version the book is using, so I won&#8217;t get line number mismatch or something like that. And after I read the changelog of 2.0.4 and found out the change is pretty big, I decide to install it my own, using the version come with my book.</p>
<p>It turns out to be not that hard, just a few points:</p>
<p>First, we could make the install image by</p>
<div style="font-family: monospace;font-size: 110%; color: #000066; border: 1px solid orange; margin: 5px; padding: 5px; background-color: #ffffff;">cat ROOT USR &amp;gt; install.img</div>
<p>and then start with</p>
<div style="font-family: monospace;font-size: 110%; color: #000066; border: 1px solid orange; margin: 5px; padding: 5px; background-color: #ffffff;">qemu -fda install.img -hda hd.img -boot a</div>
<p>or we could start qemu with</p>
<div style="font-family: monospace;font-size: 110%; color: #000066; border: 1px solid orange; margin: 5px; padding: 5px; background-color: #ffffff;">qemu -fda ROOT -fdb USR -hda hd.img -boot a</div>
<p>and then supply &#8220;/dev/fd1&#8243; when the setup script asks for the USR<br />
disk.</p>
<p>Second, as I&#8217;m installing it on a virtual machine I want Minix to take all the disk. But don&#8217;t know why it won&#8217;t take /dev/hd1 and complains /dev/hd1c. And the &#8220;parts&#8221; program give me two partitions although I made one. I guess this might be a bug in the &#8220;parts&#8221; program, but<br />
anyway, if I install Minix on the 2nd partition it made, it works for me.</p>
<p>Third, and this is really a touth one. I made the floppy images as in the two articles above, using the dd(1) command. However on the last floppy of SYS.TAZ and USR.TAZ, there is a complain from tar &#8220;header checksum error&#8221;. I tried both the files on my CDROM and the CD-ROM-2.0 version downloaded from the <a href="http://www.minix3.org/previous-versions/">official Minix website</a>, both got the same problem. (Well the two sources have the same file size and md5 checksum so this is expected). Those two files can be un-tar-ed on my FreeBSD box without error, though. Finially I found &#8220;talkd.h&#8221; is missing on the installed Minix OS and I typed that file in manually. It looks it&#8217;s the only file missed because &#8220;make world&#8221; works fine after that. And even there are something missed in &#8220;USR.TAZ&#8221;, my &#8220;make world&#8221; should have fixed that.</p>
<p>So I decide to put my fresh virtual box online, in case it could save some time for other people reading the book. I didn&#8217;t touche anything in it, except set the hostname to &#8220;minix.dryice.name&#8221;. It&#8217;s in Qemu &#8220;raw&#8221; format, which should be easily used by other virtual machine software. The disk is 300M which should be enough for testing and learning, while <a href="http://dryice.name/computer/minix/minix.fresh.gz">the download</a> is about 10M, zipped. <hints id="hah_hints"></hints></p>
<p class="akst_link"><a href="http://dryice.name/blog/?p=862&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_862" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://dryice.name/blog/minix/install-minix-cd-rom-20-on-qemu/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Why MULTICS is so slow</title>
		<link>http://dryice.name/blog/minix/why-multics-is-so-slow/</link>
		<comments>http://dryice.name/blog/minix/why-multics-is-so-slow/#comments</comments>
		<pubDate>Sat, 24 Mar 2007 03:24:00 +0000</pubDate>
		<dc:creator>dryice</dc:creator>
		
		<category><![CDATA[minix]]></category>

		<guid isPermaLink="false">http://dryice.name/wordpress/index.php/uncategorized/why-multics-is-so-slow/</guid>
		<description><![CDATA[Well, everyone in the *nix world heard about the MULTICS system, and because it&#8217;s so slow, Unix was developed.
And today, when I reading the memory management chapter of Minix, I understand part of the reason why MULTICS is so slow: To locate a single address in the memory, it will need to look up 3 [...]]]></description>
			<content:encoded><![CDATA[<p>Well, everyone in the *nix world heard about the MULTICS system, and because it&#8217;s so slow, Unix was developed.</p>
<p>And today, when I reading the memory management chapter of Minix, I understand part of the reason why MULTICS is so slow: To locate a single address in the memory, it will need to look up 3 tables. And all these 3 tables are paged. That is, in the worst case, there will be 3 page in operation needed to location the address <img src='http://dryice.name/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>This is the approache I do things sometime: the design looks perfect, however, overkilled. We are engineers, we need to find the most reasonable solution instead of the most &#8220;correct&#8221; solution.</p>
<p><hints id="hah_hints"></hints></p>
<p class="akst_link"><a href="http://dryice.name/blog/?p=635&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_635" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://dryice.name/blog/minix/why-multics-is-so-slow/feed/</wfw:commentRss>
		</item>
		<item>
		<title>different i-node for different file type?</title>
		<link>http://dryice.name/blog/minix/different-i-node-for-different-file-type/</link>
		<comments>http://dryice.name/blog/minix/different-i-node-for-different-file-type/#comments</comments>
		<pubDate>Wed, 13 Sep 2006 04:05:00 +0000</pubDate>
		<dc:creator>dryice</dc:creator>
		
		<category><![CDATA[minix]]></category>

		<guid isPermaLink="false">http://dryice.name/wordpress/index.php/uncategorized/different-i-node-for-different-file-type/</guid>
		<description><![CDATA[This is mostly a note for myself.
In 3.2.4, it is said that &#8220;for a special file, this i-node contains the major device number, and the minor device number&#8221;. This is different from what we know for normal files, where the i-node contains file access time, etc.
It is not effecient to hold one i-node structure for [...]]]></description>
			<content:encoded><![CDATA[<p>This is mostly a note for myself.</p>
<p>In 3.2.4, it is said that &#8220;for a special file, this i-node contains the major device number, and the minor device number&#8221;. This is different from what we know for normal files, where the i-node contains file access time, etc.</p>
<p>It is not effecient to hold one i-node structure for both the normal file and the special file, and maybe some other file types. So I&#8217;m guessing that there will be different structure for different file type.</p>
<p>I&#8217;ll need to keep an eye on this when looking at the code.</p>
<p><hints id="hah_hints"></hints></p>
<p class="akst_link"><a href="http://dryice.name/blog/?p=660&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_660" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://dryice.name/blog/minix/different-i-node-for-different-file-type/feed/</wfw:commentRss>
		</item>
		<item>
		<title>reading the source</title>
		<link>http://dryice.name/blog/minix/reading-the-source/</link>
		<comments>http://dryice.name/blog/minix/reading-the-source/#comments</comments>
		<pubDate>Thu, 07 Sep 2006 03:35:00 +0000</pubDate>
		<dc:creator>dryice</dc:creator>
		
		<category><![CDATA[minix]]></category>

		<guid isPermaLink="false">http://dryice.name/wordpress/index.php/uncategorized/reading-the-source/</guid>
		<description><![CDATA[Well I am reading the paper book when I&#8217;m not in front of a computer. There&#8217;s no problem on this when I&#8217;m reading the principle chapters. However, it is really not easy to read the code on a paper if you are too customized to the facilities of a computer, like tags search and syntax [...]]]></description>
			<content:encoded><![CDATA[<p>Well I am reading the paper book when I&#8217;m not in front of a computer. There&#8217;s no problem on this when I&#8217;m reading the principle chapters. However, it is really not easy to read the code on a paper if you are too customized to the facilities of a computer, like tags search and syntax highlight. So I&#8217;ve decide to go on with the principle chapters and leave the code reading later. This may also benefit cause I&#8217;ll have a more wide view of the OS when I read the code.</p>
<p>And here&#8217;s some of my thought about how I will read and document the code:</p>
<p>The best way I can think of is to use <a href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</a> and <a href="http://doxymacs.sourceforge.net/">Doxymacs</a>. And I&#8217;m learning mind map and <a href="http://freemind.sourceforge.net/wiki/index.php/Main_Page">FreeMind</a>, I&#8217;m thinking using freemind to get the scheleton of the code. One question now is that I don&#8217;t know how to point to a freemind node from the doxygen document.</p>
<p>And I think I can use version control systems to manage my update on the using of doxygen. Say the trunk for keeping up with the official code, a document branch for doxygen changes, and a sandbox branch for change it here and there to build and test.</p>
<p>I&#8217;m not sure if the license allow me to publish my doxygen and freemind output. Need to check this later, if I can make it, ofcause <img src='http://dryice.name/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><hints id="hah_hints"></hints></p>
<p class="akst_link"><a href="http://dryice.name/blog/?p=662&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_662" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://dryice.name/blog/minix/reading-the-source/feed/</wfw:commentRss>
		</item>
		<item>
		<title>disk IO: interleave</title>
		<link>http://dryice.name/blog/minix/disk-io-interleave/</link>
		<comments>http://dryice.name/blog/minix/disk-io-interleave/#comments</comments>
		<pubDate>Thu, 07 Sep 2006 03:22:00 +0000</pubDate>
		<dc:creator>dryice</dc:creator>
		
		<category><![CDATA[minix]]></category>

		<guid isPermaLink="false">http://dryice.name/wordpress/index.php/uncategorized/disk-io-interleave/</guid>
		<description><![CDATA[I was reading about disk IO this morning. In chapter 3.1.3, it is said that the disk need to be formatted with the number interlaving, so that we&#8217;ll need less disk circlings to get the data we need.
My question is, all these is based on one assumption: that the buffer on the disk controller can [...]]]></description>
			<content:encoded><![CDATA[<p>I was reading about disk IO this morning. In chapter 3.1.3, it is said that the disk need to be formatted with the number interlaving, so that we&#8217;ll need less disk circlings to get the data we need.</p>
<p>My question is, all these is based on one assumption: that the buffer on the disk controller can only hold the data of one disk block. However, if most of the time we&#8217;ll need the block one by one, why won&#8217;t we increase the buffer size of the controller? This way we may need only one circle of the disk to read all the data in one track.</p>
<p>I guess this must be a simplification of the book. The hardware designeers must think more about this than me <img src='http://dryice.name/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> And thinking the disks with 8M or 16M cache on the disk (even not on the controller!). The real world must be more complicated than the book <img src='http://dryice.name/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><hints id="hah_hints"></hints></p>
<p class="akst_link"><a href="http://dryice.name/blog/?p=663&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_663" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://dryice.name/blog/minix/disk-io-interleave/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The process table is not one structure</title>
		<link>http://dryice.name/blog/minix/the-process-table-is-not-one-structure/</link>
		<comments>http://dryice.name/blog/minix/the-process-table-is-not-one-structure/#comments</comments>
		<pubDate>Wed, 09 Aug 2006 03:15:00 +0000</pubDate>
		<dc:creator>dryice</dc:creator>
		
		<category><![CDATA[minix]]></category>

		<guid isPermaLink="false">http://dryice.name/wordpress/index.php/uncategorized/the-process-table-is-not-one-structure/</guid>
		<description><![CDATA[In theory when we talk about process table, we refer it as a whole data structure. However this is not necessarily true.
On page 52 of the book it is mentioned that the process table that handles process management, memory management, and file management are seperated in different modules with different data structure.
This is the first [...]]]></description>
			<content:encoded><![CDATA[<p>In theory when we talk about process table, we refer it as a whole data structure. However this is not necessarily true.</p>
<p>On page 52 of the book it is mentioned that the process table that handles process management, memory management, and file management are seperated in different modules with different data structure.</p>
<p>This is the first time I heard about this kind design. And thinking it through, as a microkernel system, or client-server model, this is a nature choice.</p>
<p>This is just a note. I&#8217;ll look deeper when I look at the source code.</p>
<p><hints id="hah_hints"></hints></p>
<p class="akst_link"><a href="http://dryice.name/blog/?p=670&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_670" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://dryice.name/blog/minix/the-process-table-is-not-one-structure/feed/</wfw:commentRss>
		</item>
		<item>
		<title>chapter 1</title>
		<link>http://dryice.name/blog/minix/chapter-1/</link>
		<comments>http://dryice.name/blog/minix/chapter-1/#comments</comments>
		<pubDate>Mon, 07 Aug 2006 03:19:00 +0000</pubDate>
		<dc:creator>dryice</dc:creator>
		
		<category><![CDATA[minix]]></category>

		<guid isPermaLink="false">http://dryice.name/wordpress/index.php/uncategorized/chapter-1/</guid>
		<description><![CDATA[I&#8217;ve finished reading Chapter 1 today. This chapter talks on the bird view. Most concept are pretty familiar with me. There are two things stroke me:

The Minix core only have 59 system calls to be POSIX compitable. I never thought it could be so less&#8230;
Why the best is the best. On page 25 of my [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finished reading Chapter 1 today. This chapter talks on the bird view. Most concept are pretty familiar with me. There are two things stroke me:</p>
<ul>
<li>The Minix core only have 59 system calls to be POSIX compitable. I never thought it could be so less&#8230;</li>
<li>Why the best is the best. On page 25 of my paper book, The author took some time to talk where the &#8220;.&#8221; should appear. This being careful of the detail makes this a book trustworthy.</li>
</ul>
<p>I&#8217;ll start the detail tomorrow, from Chapter 2, process, and on.</p>
<p><hints id="hah_hints"></hints></p>
<p class="akst_link"><a href="http://dryice.name/blog/?p=671&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_671" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://dryice.name/blog/minix/chapter-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>the start</title>
		<link>http://dryice.name/blog/minix/the-start/</link>
		<comments>http://dryice.name/blog/minix/the-start/#comments</comments>
		<pubDate>Thu, 03 Aug 2006 01:27:00 +0000</pubDate>
		<dc:creator>dryice</dc:creator>
		
		<category><![CDATA[minix]]></category>

		<guid isPermaLink="false">http://dryice.name/wordpress/index.php/uncategorized/the-start/</guid>
		<description><![CDATA[I&#8217;ve started a new plan to learn about operating system internals.
I&#8217;ve got a pretty high score for the operating system class when I was in school, however, that&#8217;s only the theory. I read the first edition of the Minix book when I was in school, but didn&#8217;t finish that before I return it to the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve started a new plan to learn about operating system internals.</p>
<p>I&#8217;ve got a pretty high score for the operating system class when I was in school, however, that&#8217;s only the theory. I read the first edition of the Minix book when I was in school, but didn&#8217;t finish that before I return it to the library. And I did some RTOS work during my last employee time. That&#8217;s quite different from a generic OS.</p>
<p>The road map will be Minix 2 -&gt; Minix 3 -&gt; NetBSD. I begin with Minix 2 because I only have the paper book of Minix2. There&#8217;s no Minix3 book selling in China. And finish in NetBSD because it&#8217;s quite famous for it&#8217;s clean design and code.</p>
<p>As usual, when I start to do something, I join their <a href="http://www.minix3.org/newsgroup.html">mail lists</a>. This time it&#8217;s the famous <a href="news://comp.os.minix">news://comp.os.minix</a>.</p>
<p>Don&#8217;t know how long will this last, or even if I could finish it, but, well, let&#8217;s start.</p>
<p><hints id="hah_hints"></hints></p>
<p class="akst_link"><a href="http://dryice.name/blog/?p=673&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_673" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://dryice.name/blog/minix/the-start/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

