Chinaunix首页 | 论坛 | 博客
  • 博客访问: 180053
  • 博文数量: 69
  • 博客积分: 1430
  • 博客等级: 上尉
  • 技术积分: 686
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-22 11:12
文章存档

2011年(1)

2010年(11)

2009年(35)

2008年(22)

我的朋友

分类: LINUX

2008-12-02 16:17:49

1、求linux 0.11 的bootimage和rootimage
答:你可以在boch模拟软件中得到也可以模拟boch的网站中找到
2、我不太了解bootimage.Z rootimage.Z 和as86.tar.Z的作用
答:bootimage.Z和rootimage.Z是压缩的软盘映像(Image)文件。
    bootimage是启动引导Image文件,其中主要包括内核执行代码。rootimage是根文件系统,其中包括操作系统最起码的一些配置文件和命令程序。这两个盘合起来就相当于一张可启动的DOS盘片。
    as86.tar.Z是16位汇编器。
    linux-0.11.tar.Z是linux 0.11内核源代码。
    INSTALL-0.11是Linux 0.11系统的简单安装说明文档
3、bootimage和rootimage的关系
答:rootimage 实际上就是 root filesystem image disk
    bootimage 实际上就是 bootable kernel image disk,用于启动linux系统。
    Image 通常就是指刚编译内核得到的结果,也就是bootimage。
4、如何能看到bootimage-0.11中的内容?从实验中,我知道这个文件中放入的是/usr/src/linux/Image文件,不知道对不对?不知道bootimage-0.11中还有些什么。我在系统中,用mdir命令,提示我:  
   [/]# mdir a:
   Probable non-MSDOS disk
   mdir: Cannot initialize ';A:';
   我将a盘mount到系统中去看,也不行,
   [/]# mount -t minix /dev/fd0 /mnt
   mount: usage: mount dev dir
答:bootimage是从磁盘第1个扇区开始直接存放的编译内核产生的可执行二进制文件(和相关数据),其中没有使用任何文件系统,因此不能使用mount命令来查看。
5、想问一下linux0.11的启动过程:我是这么理解的,请老师帮我指正理解,
在bootimage-0.11和rootimage-0.11双软盘启动的情况,先读取bootimage-0.11中的bootsec.s setup.s,将内核加载到内存中去,然后再加载文件系统(为什么我在启动起来的系统中看不见内核代码?)
shoelace引导程序引导系统时,/etc/config中的boot行指明Image的路径,读取bootimage-0.11中的bootsec.s setup.s,将内核加载到内存中去,然后再加载文件系统
答:系统起来后内核二进制代码都在内存中。
6、bootimage-0.11和rootimage-0.11是怎么做的!!!
答:bootimage-0.11的制作(事实上也就是image的制作过程):
    编辑好你的内核代码
    make clean
    make
    在/usr/src/linux下会产生一个image文件
    再利用mtools工具将其提取出来,例如:mcopy image b: (一般a:用于启动,即包含了老的image,b:中含有rootimage,即文件系统)
    然后在windows下利用winimage工具拷贝出来就可以使用了
    rootimage-0.11的制作(事实上也就是文件系统的制作过程):
    1). 分区;
    2). 创建文件系统;
    3). 在文件系统中建立一些常规目录,并复制系统和你需要的文件。
7、使用 bochs-2.2.X及以上新版本运行Linux 0.1x时,若在配置文件中只配置了一个硬盘映像文件,出现信息“HD controller not ready”而不能运行的解决方法。
答:可以对linux/kernel/blk_drv/hd.c稍加修改(2条语句)就能克服这个问题。
    对于Linux 0.11修改方法是:
    原来语句:
    163 int retries=10000;
    165 while (--retries && (inb_p(HD_STATUS)&0xc0)!=0x40);
    修改为
    163 int retries=100000;
    165 while (--retries && (inb_p(HD_STATUS)&0x80));
    若还有问题,那么请把第39,40行都修改等于0试试:
    39 static int recalibrate = 0;
    40 static int reset = 0;
   
    当然, 你也可以复制c image文件,成为一个D IMAGE文件. 并在配置文件上添加上D盘的相应参数
阅读(3375) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~