一个操作系统的实现——笔记1

1.先去http://nchc.dl.sourceforge.net/project/bochs/bochs/2.4.5/bochs-2.4.5.tar.gz 下载bochs-2.4.5.tar.gz

2.解压下载的源代码:

 
  
  1. sudo tar zxvf bochs-2.4.5.tar.gz 

3.进入bochs-2.4.5目录,运行configure脚本,它会测试你的机器,C/C++编译器以及一些库,用来判断何种配置适合于你的机器。运行:

 
  
  1. sudo ./configure --enable-debugger --enable-disasm  

(上面--enable-debugger --enable-disasm 是可选项,这两个是开启调试和反汇编功能)

4.第3步正确运行后,会产生一个Makefile文件,然后:

 
  
  1. sudo make 

5.安装:

 
  
  1. sudo make install 

至此,bochs安装已经结束。下面是编译安装过程中可能出现的一些问题及解决方法:

错误A.configure: error: C++ preprocessor "/lib/cpp" fails sanity check

因为Bochs是用C++写的,所以这里要安装GNU gcc/g++编译器。

解决办法:

 
  
  1. sudo apt-get install build-essential   
  2. sudo apt-get install g++  

错误B.checking for default gui on this platform... x11

ERROR: X windows gui was selected, but X windows libraries were not found.

解决办法:

 
  
  1. sudo apt-get install xorg-dev   

错误C.ERROR: pkg-config was not found, or unable to access the gtk+-2.0 package.

解决办法:

 
  
  1. sudo apt-get install libgtk2.0-dev   

错误D.

 
  
  1. make的时候提示 /usr/bin/ld: gui/libgui.a(gtk_enh_dbg_osdep.o): undefined   
  2. reference to symbol   pthread_create@@GLIBC_2.1   //   
  3. lib/i386-linux-gnu/libpthread.so.0: error adding symbols: DSO missing   
  4. from command line collect2: error: ld r 

解决方法:

在makefile的libs中添加如下内容 :

 
  
  1. lz -lrt -lm -lpthread 

很晚了,明天再来写配置方面的东西。。。。

上一篇主要说安装的事情,安装成工的标志就是在命令行中有bochs这个程序,来张图片

一个操作系统的实现——笔记1_第1张图片

有这个界面的话就说明安装成功了。。。

接下来要干的事就是制作软盘和配置了,如果配置不成功的话,选6进去以后就会各种报错。

先说软盘制作吧!!

编译以后的bochs2.4.5文件夹下会有一个bximage可执行文件,在终端运行:

一个操作系统的实现——笔记1_第2张图片

按照上面的步骤,我们就制作好了一张空的软盘,这个软盘就像我们的硬盘一样,用来存放系统文件的....

然后写入一个系统镜像,镜像文件可以去下载

http://www.oldlinux.org/Linux.old/images/bootroot-0.11

这个是linux0.11的镜像文件

然后在终端执行命令把镜像写入我们制作的软盘:

 
  
  1. dd if=/home/freedemos/Downloads/bootroot-0.11 of=a.img 

注意:这里执行的dd命令,if=你的镜像的路径,of=你的软盘的路径,照抄肯定会错....

接下来我们说下配置文件(配置文件因该是最烦人的了,我到现在都不是非常懂,但是能让虚拟机正常运行就好了,嘿嘿):

###############################################################
# Configuration file for Bochs
###############################################################

# how much memory the emulated machine will have
megs: 32

# filename of ROM images
romimage: file=/usr/local/share/bochs/BIOS-bochs-latest
vgaromimage: file=/usr/local/share/bochs/VGABIOS-elpin-2.40

# what disk images will be used
floppya: 1_44=a.img, status=inserted

# choose the boot disk.
boot: floppy

# where do we send log messages?
# log: bochsout.txt

# disable the mouse
mouse: enabled=0

# enable key mapping, using US layout as default.
keyboard: keymap=/usr/local/share/bochs/keymaps/x11-pc-us.map

 

 

有了上面那些基本配置以后,我们就能从bochs启动linux0.11了,下面执行命令:

 
  
  1. ./bochs -f bochwang 

然后就出现这界面:

一个操作系统的实现——笔记1_第3张图片

选择6,继续:

一个操作系统的实现——笔记1_第4张图片

黑乎乎的一片?有没有感觉失败了.........其实不是这样的啦,这是调试模式,然后我们在终端中输入c,在确定,就会正常了.

一个操作系统的实现——笔记1_第5张图片

有木有很开森?哈哈,这里就是一个小型的系统了......正确的说,这就是linux0.11版本内核.....

不过有点失望,传说中的linux内核就是这么个玩意,...............好了就这样吧

学习愉快!!!!!

你可能感兴趣的:(os,linux内核)