Chinaunix首页 | 论坛 | 博客
  • 博客访问: 539652
  • 博文数量: 120
  • 博客积分: 3030
  • 博客等级: 中校
  • 技术积分: 1445
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-05 01:00
文章存档

2011年(1)

2009年(2)

2008年(32)

2007年(33)

2006年(52)

我的朋友

分类: LINUX

2006-03-12 03:41:58

 
   最近在学习linux内核 ,但是现在的内核代码太大过于复杂,于是想从最初的linux版本开始 ,结果买了linux0。11内核分析 ,发现书本上的都还没有讲清楚 ,甚至连最起码的环境书本上都没有讲清楚怎么搭建成功 ,只是拷贝一个可以跑linux的bochs,怎么调试怎么使用都没讲明白 ,我很郁闷 ,于是熬夜到网络上查资料 ,终于找出一个实用环境的搭建方法 。在网络的资料中 ,有一篇七十年代(作者名)写的文章已经解决了这个问题 ,但我这里仍然将自己学习后的心得贴出来 ,下文很多是引用他的内容 。建立的步骤为
 
1、下载:http://oldlinux.org/Linux.old/bochs/linux-0.11-devel-040809.zip 

2、安装 Bochs(在上面的zip压缩包中,Bochs-2.1.1.exe)
   这是x86的模拟软件,注意目录的层次
   c;/programe/boch-2.1.1/linux-0.11-devel-040809
   也就是说 ,首先安装boch,然后将linux-0.11-dev-040809在boch的安装目录
  下展开为任意文件夹,假设为解压缩为文件夹linux011
3、进入linux011目录 点击bochsrc-hd.bxrc进入linux0.11系统  
   此时进入模拟机便启动了。linux也在bochs上跑起来了。
  ( 注意此时运行的是基于hd的linux,在同一目录下还有一个机遇fd的可以启动的 bochsrc-fd.bxrc,此文件是基于bootimage_fd 的 ,也就是说 ,我们可以通过机遇fd的linux0.11编译生成一个内核image文件 ,然后挂软驱diskb.img 通过mcopy拷贝image 到diskb.img中 .然后启动基于fd的虚拟机,这样就实现了通过我们刚刚编译生成的diskb.img这个内核img文件启动linux0.11的过程 。通过这种方式我们可以很轻松的对linux0。11内核进行调试和修改 ,再次感谢七十年代给出了这个实现方式 ,让我少走了很多弯路)
4、进入内核所在目录([/usr/src/linux]#)
5、#make clean   回车
   把它自带的内核删掉
6、(略)使用vi对各个目录下的Makefile进行编辑,去除其中的(-mstring-insns)
 
7。编译内核([/usr/src/linux]#make   回车)
9、内核编译完成
 
下面开始调试内核
 10 。mformat b:
 11 mcopy image b
 12 修改bochsrc-fd.bxrc
  floppya: 1_44="bootimage-0.11", status=inserted修改为
  floppya: 1_44="IMAGE", status=inserted
13 双击bochsrc-fd.bxrc文件运行新编译的内核了。
 
这个方法很方便呵呵 ,另外附上mcopy的说明
名称:mcopy
使用权限:所有使用者
使用方式:
mcopy [-b/ptnvmoQOsSrRA] sourcefile targetfile
mcopy [-b/ptnvmoQOsSrRA] sourcefile [ sourcefiles... ] targetdirectory
mcopy [-tnvm] MSDOSsourcefile


说明:
本程序可用来复制 MSDOS 格式档案到 Linux 中,或是由 Linux 中复制 MSDOS 档案到磁片上。mcopy 可复制单一的档案到所指定的档案名称,或是复制数个档案到所指定的目录之中。来源与目的档案可为 MSDOS 或是 Linux 档案。
参数: 
b 批次模式.这是为大量的档案复制进行最佳化的选项,但是当在复制档案过程中产生 crash 时,会有安全性的问题产生。/ 递回的复制。包含目录所含档案与其下所有子目录中的档案。
p 维持档案原来的属性。 
Q 当复制多个档案产生错误时,尽快结束程序。
t 复制纯文字档案。将 carriage return/line feeds 转换成 line feeds 字元。
n 在覆盖 Linux 档案时不会出现警示讯息。
o 在覆盖 MSDOS 档案时不会出现警示讯息。
m 维持档案原来的修改时间。当目的档案已存在,且使用 -n 选项时,mcopy 会询问是否要覆盖或是另存新档。
范例:
mcopy a:autoexec.bat . 将 A 槽磁片根目录中的 autoexec.bat 复制到目前工作目录之下。
 
 
 
阅读(2785) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

__shenlong2009-02-03 19:20:32

谢谢你了!!! 哥们到处找就是找不到一个实用的可以修改编译的linux0.11 现在找到了!!! 呵呵!!! 十分感谢

chinaunix网友2008-04-01 15:25:43

11 mcopy image b 我做到这里就错了 mcopy:duplicate destination files 大侠帮我看看是怎么回事(*^_^*)