免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 919 | 回复: 0
打印 上一主题 下一主题

建立OSDesign开发环境(OLD) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-03 11:01 |只看该作者 |倒序浏览




       
       
       
       
        建立OSDesign开发环境

      
      这是暴久以前的东西了, 纪念贴. 曾经画了巨多时间.
      
      
       
       
       
       
       
  

这里采用了linux作为编译环境。但是家里必须装个windowsXP来看DVD和打游戏,所以用VMware跑个虚拟机就是个不错的选择了,况且很喜
欢sourceInsight。调试用bochs,如过阁下愿意采用相同的OSDev环境,可以按照这里所列举的配置搭建环境,所有的路径都设计好了,只
需双击对应的bat文件即可以开始调试或者运行编译好的OS。
       
   需要准备的软件:
           
        VMware for windows(如果只在linux下编译和调试OS,就不必了)
           
        FC4 或者其他linux 发行版
           
       
Bochs2.11 (链接失效,很好找)
           
       
本网站提供的一个内核版本(
链接失效,很好找
)
       
Step 1:建立Windows下的开发目录
       
   
        将下载的内核版本解压缩到一个目录,然后将bochs2.1.1安装好的目录也拷贝到同一目录,目录结构如下图所示。完全按照图示目录进行配置可以免去修改BAT文件,bochs配置脚本的麻烦,建议采用。如果阁下很熟悉这些东西,那就随意了。

       
       
       
Step 2:安装VMware
       
    安装VMware,然后在VMware中装一个linux发行版。我用的是FC4,如果你版本不好用就用FC4。
        建议选择FC4是因为这个版本可以默认装上当前kernel的头文件和源文件。可以省却不少麻烦。记着选择下列软件:
         
        [color="#0000ff"]Kernel Source
         
        [color="#0000ff"]gcc/make等开发工具
        (FC4中只需选择内核开发即可)
         
        [color="#0000ff"]nasm (这里早期的内核采用nasm,后来就只要gcc即可了,还是安装吧)
       
     linux安装完成之后,最重要的就是安装Vmware-tools,就是vmware机器的驱动了,完成之后就可以使能文件夹共享了。如下图所示,注意其共享名称,照图示配置可以省掉配置的麻烦,因为有一个脚本叫
        up (update source code from host PC to VMware)是按照这个路径写的。

 
       
Step 3:拷贝文件到linux,编译
     
现在,登录VMware的linux,开启一个shell。
      首先在root下建立一个目录叫os(root?其他也可以阿,懒得弄用户了)。
      
      然后键入如下命令序列:
           
         cp /mnt/hgfs/osdev/up  .
             ./up
             make
        dep
             make
      这就完成了,生成的image文件会自动拷贝到 /mnt/hgfs/osdev,也就是windows的开发目录。如果你改变了文件的dependce关系,需要   
       
         
         make vclean
            make dep
       
      否则,只需要
        make 就够了。  
       
Step 4:用VMware 运行OS image
       
      
        编译通之后,在windows的开发目录00--now-dev之下会有一个文件,flopy.img. 把它当作VMware的flopy
        image加载就可以在VMware下试运行了。这个image还可以用于VirturePC,Bochs的软驱image。
      
        Step 5:配置Bochs
       
     
所谓配置Bochs,就是在bochs2.1.1目录下创建一个c.img,用作bochs的硬盘image,创建此文件的命令是
bximage.exe,就在bochs2.1.1目录下。需要注意的是,在内核版本0.0.9.4之前,都不支持硬盘启动,所以只能从软盘启动,所以需
要配置 00--now-dev/debug目录下的bochs-src文件。
完成之后就可以双击00--now-dev/debug目录下的两个bat文件来调试或者运行我们的OS了。
      关于调试,等bochs运行后help一下看看了。这里列上几个命令:
      c            
        continue,如果没有设置断点,就停不下了
      n或者s        
        next, step in
      lb           
        设置断点, 入果希望在bios装载启动扇区后停止,只需lb 7c00, 在进入os之后断住,就 lb 0x100000
      dump_cpu     察看cpu的各种状态
      print-stack  打印堆栈
        下图是这里提到的c.img。

       
 
       
Step 6:用编译好的OS启动你的真实PC
       
      
        有几个方式启动物理PC。需要的工具是
        dd
        for windows/UltraISO。
       
      1)软盘启动
         使用dd for windows将flopy.img
        写到软盘即可。不过不推荐。
       
      2)光盘启动
         使用UltraISO建立一个光盘image,使用它的加载启动映像功能加载flopy.img.
        然后刻录到光盘就可以启动PC了。(没有刻录机?)
        
      3)从移动硬盘或者USB启动
         使用 dd for windows将flopy.img
        写到移动硬盘或者USB即可。注意要写到主分区阿。
 
       
警告:
      采用dd for windows时千万要备份你的USB或者移动硬盘。写img到USB/移动硬盘会破坏所其数据。由于操作失误引起所有损失,责任自负阿。

       
 
       
dd for windows 使用的简介
       
       
dd真实一个好东西啊,这是个forwindows的版本。不过也是一个危险的工具,切记不要操作你的硬盘阿。用dd来制作floppy的raw image是很方便的。使用方法很简单。
       
       
       
首先
dd --list
这样dd给一个系统中所有磁盘,移动硬盘的列表以及其dos名称。就像这个样子:
rawwrite dd for windows version 0.3.
Written by John Newbigin
This program is covered by the GPL. See copying.txt for details
Win32 Available Volume Information
已安装分区的列表
\\.\Volume{77902e9a-3ee7-11da-be95-806d6172696f}\
link to \\?\Device\HarddiskVolume2
fixed media
Mounted on c:\
\\.\Volume{77902e9b-3ee7-11da-be95-806d6172696f}\
link to \\?\Device\HarddiskVolume3
fixed media
Mounted on d:\
\\.\Volume{93bf6b06-2917-11db-80a4-806d6172696f}\
link to \\?\Device\CdRom0
CD-ROM
Mounted on e:\
\\.\Volume{c256d03c-85cd-11db-80d9-444553544200}\
link to \\?\Device\Harddisk1\DP(1)0-0+5
removeable media
Mounted on f:\
物理设备的列表:
NT Block Device Objects
\\?\Device\CdRom0
\\?\Device\Harddisk0\Partition0 整个第一块硬盘
link to \\?\Device\Harddisk0\DR0 (如果用dd写MBR,就要用这个路径)
Fixed hard disk media. Block size = 512
\\?\Device\Harddisk0\Partition1 第一块硬盘的第一个分区
link to \\?\Device\HarddiskVolume1
Fixed hard disk media. Block size = 512
\\?\Device\Harddisk0\Partition2 第一块硬盘的第二个分区
link to \\?\Device\HarddiskVolume2
\\?\Device\Harddisk0\Partition3
link to \\?\Device\HarddiskVolume3 第一块硬盘的第三个分区
\\?\Device\Harddisk1\Partition0 第一块硬盘的第0个分区(应该是整个硬盘)
link to \\?\Device\Harddisk1\DR4 (如果用dd写MBR,就要用这个路径)
\\?\Device\Harddisk1\Partition1
link to \\?\Device\Harddisk1\DP(1)0-0+5
1. 制作USB启动盘:
如果harddisk1是一个usb 设备,只需要下面的命令即可制作一个可以从usb设备启动的raw img.
dd if=floopy.img of=\\?\Device\Harddisk1\DR4

[color="#ff0000"]注意:这将会破坏整个usb设备的分区表,如果你不了解后果,千万不要尝试操作你的硬盘,usb,
2. 为bochs制作硬盘的img,假定bochs的硬盘img路径为..\bochs-2.1.1\c.img
dd if=floopy.img of=..\bochs-2.1.1\c.img
3. 制作CDROM bootimg:
没有试过cdrom直接启动,将CDrom模拟成一个软驱的方法倒是尝试过.
使用ultra ISo这个工具,将floppy.img 作为启动映像烧制到cdrom即可实现从CDROM启动ExpOS.
       
       
       
       
       
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/79526/showart_1889287.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP