﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-创的技术博客-随笔分类-操作系统</title><link>http://www.cppblog.com/converse/category/4782.html</link><description>C++对我而言就是有STL带class能处理多态,继承的C.</description><language>zh-cn</language><lastBuildDate>Mon, 19 May 2008 15:44:40 GMT</lastBuildDate><pubDate>Mon, 19 May 2008 15:44:40 GMT</pubDate><ttl>60</ttl><item><title>配置虚拟机作为保护模式编程的开发环境</title><link>http://www.cppblog.com/converse/archive/2007/07/25/28784.html</link><dc:creator>创</dc:creator><author>创</author><pubDate>Wed, 25 Jul 2007 14:51:00 GMT</pubDate><guid>http://www.cppblog.com/converse/archive/2007/07/25/28784.html</guid><wfw:comment>http://www.cppblog.com/converse/comments/28784.html</wfw:comment><comments>http://www.cppblog.com/converse/archive/2007/07/25/28784.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/converse/comments/commentRss/28784.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/converse/services/trackbacks/28784.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 新开一个分类，名字为"操作系统"，因为我最近开始看赵炯博士的&lt;&lt;linux0.11代码完全注释&gt;&gt;以及于渊的&lt;&lt;自己动手开发操作系统&gt;&gt;。赵博士的书是很早就听说的了，那时候我还没有大学毕业，最开始是自己免费开放了电子版,当然现在还有得下载，而且是更新之后的版本，他自己办了一个论坛专门讨论linux0.11的问题，我有时会去看看，治学态度没的说，所以在这本书变成纸版印刷发行的时候我都毫不犹豫的买了下来（前后一共两本我都买了）。赵博士的书解说的很详尽，只可惜我感觉对保护模式部分可能比较欠缺，至少我没有办法从这本书里面找到一步一步通过实验来让我逐步掌握保护模式的内容，看到这部分就卡住了，于是又买了&lt;&lt;自己动手开发操作系统&gt;&gt;，两者互相作一个补充。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我的兴趣爱好或者说自己给自己的定位不是以后作一个kernel开发人员，很多人会问为什么要研究这些东西？没别的，我想如果一个开发人员能够对计算机的任何内幕都有足够的了解是一件很美妙的事情，想想看你知道系统是怎么开始启动起来的，操作系统是怎么管理内存的，怎么创建进程，线程的...OS一切的一切都在你的心中，这是一件非常美妙的感觉，我希望以后能达到这个高度。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以上解释了我为什么会花费精力在这部分知识上，事实上就我开始研究这个玩意儿几天的感觉来看是很有意思的....等我把linux0.11的代码研究完了就要开始看&lt;&lt;TCP/IP协议详解&gt;&gt;第二卷，那也是一本能让象我这样的人很爽的书。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 闲话少说，&lt;&lt;自己动手作操作系统&gt;&gt;一书中谈到了建立一个DOS虚拟机以便进行保护模式编程的实验，书上对这部分的描述并不是很多，而这个虚拟机环境的建立花费了几个晚上的时间才搞定，下面作一个记录。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1）选择的虚拟机是virtual pc，版本是VirtualPCv5.2Build420，这个版本应该是virtual pc被MS收购之前的版本，我曾经使用过2004，2007，都没有找到办法在该dos虚拟机下面使用主机的文件。下载到VirtualPCv5.2Build420之后，启动已经安装好的dos，加载DOS附加模块\Dos Additions.vfd，然后进入A盘运行dosadd.bat文件就可以完成DOS附加模块的安装，这样在重启系统之后就可以访问主机的文件了。<br>详细的说明在这里:<br><a href="http://www.dream2fly.net/blog/?action=show&amp;id=57">http://www.dream2fly.net/blog/?action=show&amp;id=57</a><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2）选择的汇编编译器是nasm for 16位dos版，nasm for windows或者32位dos版本都不能用在这个环境下面。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3）选择的操作系统是msdos7.1，但是我发现书中的保护模式代码不能运行在这个系统里面，报错是&#8220;"emm386:unrecoverable privileged operation error #n9.press enter to reboot.."&#8221;，然后系统死机。搜索了一下，在作者于渊自己的blog里面有人做了回答，就是将config.sys文件中emm的部分去掉。</p>
<img src ="http://www.cppblog.com/converse/aggbug/28784.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/converse/" target="_blank">创</a> 2007-07-25 22:51 <a href="http://www.cppblog.com/converse/archive/2007/07/25/28784.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>