• 整机评测
  • 专项体验
  • 对比评测
  • 拆机
  • 手机
  • 5G
  • 软件
  • 发布会
  • 小道消息
  • 专题
  • 导购
  • 行情
  • 手机报价
  • 产品大全
  • 品牌大全
  • 深入浅出同义词 深入浅出操作系统

    时间:2018-07-23 23:29:55 来源:天一资源网 本文已影响 天一资源网手机站

    -

    作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。

    实验材料准备

    1,下载实验材料hit-oslab-linux-20110823.tar.gz(包含linux-0.11源码,bochs模拟器等)

    网址:http://www.ritchiehuang.cn/

    2,下载安装gcc-3.4(编译linux-0.11需要用到低版本gcc)

    网址:old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/

    下载内容:(统一下载存放在新建的gcc-3.4文件夹下,由于我的ubuntu是64位所以下载amd64)

    1 cpp-3.4_3.4.6-6ubuntu3_amd64.deb2 g++-3.4_3.4.6-6ubuntu3_amd64.deb3 gcc-3.4_3.4.6-6ubuntu3_amd64.deb4 gcc-3.4-base_3.4.6-6ubuntu3_amd64.deb5 libstdc++6-dev_3.4.6-6ubuntu3_amd64.deb

    实验相关简述

    1,x86模拟器器Bochs

    Bochs是一个免费且开放源代码的IA-32(x86)架构PC机模拟器。在它模拟出的环境中可以运行Linux、DOS和各种版本的Windows等多种操作系统。而Bochs本身具有很高的移植性,可以运行在多种软硬件平台之上。如果您想拥抱自由的Linux,那么Bochs几乎是您的不二选择。如果您想继续把自己绑定在Windows平台上,那么除了Bochs,您还可以选用VMware或者Microsoft Virtual PC。它们是最著名虚拟机软件,而且都可以免费使用。因为Bochs的是模拟器,其原理决定了它的运行效率会低于虚拟机。但是,Bochs有虚拟机无可比拟的调试操作系统的能力.

    2,实验环境的工作模式

    hit-oslab实验环境简称oslab,是一个压缩文件(hit-oslab-linux-20110823.tar.gz),可以将这个文件拷贝到自己的实验工作目录下,用tar zxvf hit-oslab-linux-20110823.tar.gz命令解压展开即可工作。oslab工作在一个宿主操作系统之上,我们使用的Linux,在宿主操作系统之上完成对Linux 0.11的开发、修改和编译之后,在linux-0.11目录下会生产一个名为Image的文件,它就是编译之后的目标文件。该文件内已经包含引导和所有内核的二进制代码。如果拿来一张软盘,从它的0扇区开始,逐字节写入Image文件的内容,就可以用这张软盘启动一台真正的计算机,并进入Linux 0.11内核。oslab采用bochs模拟器加载这个Image文件,模拟执行Linux 0.11,这样省却了重新启动计算机的麻烦。

    bochs目录下是与bochs相关的执行文件、数据文件和配置文件。run是运行bochs的脚本命令。运行后bochs会自动在它的虚拟软驱A和虚拟硬盘上各挂载一个镜像文件,软驱上挂载是linux-0.11/Image,硬盘上挂载的是hdc-0.11.img。因为bochs配置文件中的设置是从软驱A启动,所以Linux 0.11会被自动加载。而Linux 0.11会驱动硬盘,并mount硬盘上的文件系统,也就是将hdc-0.11.img内镜像的文件系统挂载到0.11系统内的根目录——“/”。在0.11下访问文件系统,访问的就是hdc-0.11.img文件内虚拟的文件系统。

    hdc-0.11.img文件的格式是Minix文件系统的镜像。Linux所有版本都支持这种格式的文件系统,所以可以直接在宿主Linux上通过mount命令访问此文件内的文件,达到宿主系统和bochs内运行的Linux 0.11之间交换文件的效果。Windows下目前没有(或者是还没发现)直接访问Minix文件系统的办法,所以要借助于fdb.img,这是一个1.44M软盘的镜像文件,内部是FAT12文件系统。将它挂载到bochs的软驱B,就可以在0.11中访问它。而通过filedisk或者WinImage,可以在Windows下访问它内部的文件。

    hdc-0.11.img内包含有:

    Bash shell

    一些基本的Linux命令、工具,比如cp、rm、mv、tar。

    vi编辑器

    gcc 1.4编译器,可用来编译标准C程序

    as86和ld86

    Linux 0.11的源代码,可在0.11下编译,然后覆盖现有的二进制内核

    实验环境搭建(ubuntu-14.04.1-desktop-amd64)

    1,在~(用户Home文件夹)下创建oslab文件夹,将hit-oslab-linux-20110823.tar.gz解压到oslab下

    mkdir oslabcd oslabtar -zxvf hit-oslab-linux-20110823.tar.gz

    2,gcc-3.4安装

    cd gcc-3.4sudo apt-get --purge remove gccsudo chmod 777 *sudo dpkg -i *.deb

    3,as86,ld86安装(用于编译和链接linux/boot下的bootsect.s和setup.s,它们采用as86汇编语法;而linux-0.11下的其他汇编语言文件采用gas的语法AT&T)

    搜索包含as86,ld86的包:

    apt-cache search as86 ld86

    执行结果如下:

    bin86 - 16-bit x86 assembler and loader

    安装bin86:

    sudo apt-get install bin86

    4,一般环境设置

    64位系统需要安装32位兼容库

    sudo apt-get install libc6-dev-i386

    C语言编译环境

    sudo apt-get install build-essential

    安装IDE

    sudo apt-get install vim cscope exuberant-ctags

    编译内核

    cd ~/oslab/oslab/linux-0.11

    make

    编译中断,输出错误信息:

    In file included from /usr/include/linux/fs.h:10,from tools/build.c:28:/usr/include/linux/ioctl.h:4:23: asm/ioctl.h: No such file or directoryIn file included from /usr/include/linux/fs.h:11,from tools/build.c:28:/usr/include/linux/types.h:4:23: asm/types.h: No such file or directoryIn file included from /usr/include/linux/types.h:8,from /usr/include/linux/fs.h:11,from tools/build.c:28:/usr/include/linux/posix_types.h:35:29: asm/posix_types.h: No such file or directoryIn file included from /usr/include/linux/fs.h:11,from tools/build.c:28:/usr/include/linux/types.h:27: error: syntax error before "__le16"/usr/include/linux/types.h:28: error: syntax error before "__be16"/usr/include/linux/types.h:29: error: syntax error before "__le32"/usr/include/linux/types.h:30: error: syntax error before "__be32"/usr/include/linux/types.h:31: error: syntax error before "__le64"/usr/include/linux/types.h:32: error: syntax error before "__be64"/usr/include/linux/types.h:34: error: syntax error before "__sum16"/usr/include/linux/types.h:35: error: syntax error before "__wsum"In file included from tools/build.c:28:/usr/include/linux/fs.h:43: error: syntax error before "__u64"/usr/include/linux/fs.h:45: error: syntax error before "minlen"make: *** [tools/build] Error 1

    google搜索得知是因为64位linux的asm目录为:

    /usr/include/x86_64-linux-gnu/asm

    make找不到文件从而导致编译中断

    解决方法(建立链接):

    sudo ln -s /usr/include/x86_64-linux-gnu/asm /usr/include/asm

    运行

    运行编译好的内核,在oslab目录下:

    ./run

    出现错误:

    ./bochs/bochs-gdb: error while loading shared libraries: libXpm.so.4: cannot open shared object file: No such file or directory

    打印动态链接配置:

    ldconfig -p | grep libXpm.so.4

    libXpm.so.4的链接信息:

    libXpm.so.4 (libc6,x86-64) =》 /usr/lib/x86_64-linux-gnu/libXpm.so.4

    我们需要的是32位库.搜索库对应的包名称:

    apt-file search libXpm.so.4

    打印结果:

    libxpm4: /usr/lib/x86_64-linux-gnu/libXpm.so.4libxpm4: /usr/lib/x86_64-linux-gnu/libXpm.so.4.11.0

    得到其对应的包名为libxpm4,安装对应的32位库:

    sudo apt-get install libxpm4:i386

    基本操作及注意事项

    汇编级调试在oslab目录下执行命令

    ./dpg-asm

    C语言级调试在oslab目录下,打开第一个终端窗口执行命令

    ./dbg-c

    打开第二个终端窗口执行命令

    ./rungdb

    Ubuntu和Linux0.11之间的文件交换

    oslab下的hdc-0.11-new.img是0.11内核启动后的根文件系统镜像文件,相当于在bochs虚拟机里装载的硬盘。在Ubuntu上访问其内容的方法是

    sudo ./mount-hdc

    之后,hdc目录下就是和0.11内核一模一样的文件系统了,可以读写任何文件(可能有些文件要用sudo才能访问)。读写完毕,不要忘了卸载这个文件系统:

    sudo umount hdc

    经过sudo ./mount-hdc这样处理以后,我们可以在Ubuntu的hdc目录下创建一个xxx.c文件,然后利用Ubuntu上的编辑工具(如gedit等)实现对xxx.c文件的编辑工作,在编辑保存以后。执行sudo umount hdc后,再进入Linux 0.11(即run启动bochs以后)就会看到这个xxx.c,这样就避免了在Linux 0.11上进行编辑xxx.c的麻烦,因为Linux 0.11作为一个很小的操作系统,其上的编辑工具只有vi,使用起来非常不便。

    另外在Linux 0.11上产生的文件,可以按这种方式”拿到“Ubuntu下用python程序进行处理,当然这个python程序在Linux 0.11上显然是不好使的,因为Linux 0.11上搭建不了python解释环境。

    注意1:不要在0.11内核运行的时候mount镜像文件,否则可能会损坏文件系统。同理,也不要在已经mount的时候运行0.11内核。

    注意2:在关闭Bochs之前,需要先在0.11的命令行运行“sync”,确保所有缓存数据都存盘后,再关闭Bochs。

    原文来自:https://www.cnblogs.com/thirty-eight-thousand/p/8168403.html

    本文地址:http://www.linuxprobe.com/operating-system-application.html 编辑:冯瑞涛,审核员:逄增宝

    相关关键词: 深入浅出操作系统
    相关热词搜索: 深入浅出操作系统 深入理解操作系统 深入浅出

    • 范文大全
    • 教案下载
    • 优秀作文
    • 励志
    • 课件
    • 散文
    • 名人名言