zoukankan      html  css  js  c++  java
  • 在linux搭建操作系统实战的学习环境

    Linux中操作系统模拟的环境搭建

    1.前期需要的工具

    bochs(虚拟机),实际上就是操作系统模拟器

    nasm(intel 汇编器),这里不采用as(gas GNU)因为后期都是用的intel 汇编。

    window上搭建的Linux虚拟机

    g++编译器

    2. 环境的搭建

    window上搭建的Linux虚拟机比较简单,所以这里略过,我使用的是ubuntu 10

    安装bochs,可以使用指令安装,sudo apt-get install bochs

    也可以在官网下载安装包进行安装,https://sourceforge.net/projects/bochs/files/bochs/2.6.8/

    可以参考这边文章进行安装,https://blog.csdn.net/shujuliu818/article/details/61417423

    将写好的汇编boot保存为boot.asm

     1 org 0x7c00
     2  
     3 BaseOfStack  equ  0x7c00
     4  
     5  
     6  
     7 Label_Start:
     8  
     9 mov ax , cs
    10  
    11 mov ds , ax
    12  
    13 mov es , ax
    14  
    15 mov ss , ax
    16  
    17 mov sp , BaseOfStack
    18  
    19  
    20  
    21  
    22  
    23 ;========clear screen
    24  
    25  
    26  
    27 mov ax , 0600h
    28  
    29 mov bx , 0700h
    30  
    31 mov cx , 0
    32  
    33 mov dx , 0184fh
    34  
    35 int 10h
    36  
    37  
    38  
    39 ;=======set focus
    40  
    41 mov ax , 0200h
    42  
    43 mov bx , 0000h
    44  
    45 mov dx , 0000h
    46  
    47 int 10h
    48  
    49  
    50  
    51 ;====== display on screen : Start Booting .....
    52  
    53 mov ax , 1301h
    54  
    55 mov bx , 000fh
    56  
    57 mov dx , 0000h
    58  
    59 mov cx , 10
    60  
    61 push ax
    62  
    63 mov ax , ds
    64  
    65 mov es , ax
    66  
    67 pop ax
    68  
    69 mov bp , StartBootMessage
    70  
    71 int 10h
    72  
    73  
    74  
    75 ;==== reset dloppy
    76  
    77  
    78  
    79 xor ah , ah
    80  
    81 xor dl , dl
    82  
    83 int 13h
    84  
    85 jmp $
    86  
    87 ;====== fill zero until whole sector
    88  
    89 StartBootMessage: db  "Start Boot"
    90  
    91 times 510 - ($ -$$) db 0

    然后通过指令,nasm boot.asm -o boot.bin

    然后是生成软盘映像文件,bximage

     

    第二处,选择fd

    第三处,选择为默认,回车即可

    第四处,你自己喜好去名字,这里我用boot.img

    这样boot.img软盘映像文件成功建立

    dd -if boot.bin of=boot.img count=1 bs=512 conv=notrunc,这条指令是用来工作目录下的boot.bin写入boot.img

    然后到工作目录下新建一个bochsrc文件

    将下列这些写入

     1 ###############################################
     2  
     3 # Configuration file for Bochs
     4  
     5 ###############################################
     6  
     7  
     8  
     9 # 第一步,首先设置Bochs在运行过程中能够使用的内存,本例为32MB。
    10  
    11 # 关键字为:megs
    12  
    13 megs: 32
    14  
    15  
    16  
    17 # 第二步,设置对应真实机器的BIOS和VGA BIOS.
    18  
    19 # 对应两个关键字为:romimage 和 vgaromimage
    20  
    21 romimage: file=$BXSHARE/BIOS-bochs-latest
    22  
    23 vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
    24  
    25  
    26  
    27 # 第三步,设置Bochs所使用的磁盘,软盘的关键字为floppy。
    28  
    29 # 若只有一个软盘,则使用floppya即可,若有多个,则为floppya,floppyb...
    30  
    31 floppya: 1_44=boot.img, status=inserted
    32  
    33  
    34  
    35 # 第四步,选择启动盘符。
    36  
    37 boot: floppy
    38  
    39  
    40  
    41 # 第五步,设置日志文件的输出。
    42  
    43 log: bochsout.txt
    44  
    45  
    46  
    47 # 第六步,开启或关闭某些功能。
    48  
    49 # 下面是关闭鼠标,并打开键盘。
    50  
    51 mouse: enabled=0
    52  
    53 keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-us.map

    这样配置文件就好了。

     

    其实载我的工作目录下在会有这些文件

    在终端中输入 bochs

    回车,发现多出了bochsout.txt文件

     

    这是模拟器中的景象,哈哈,可以了

    bochs的使用可以参考这篇文章

    https://blog.csdn.net/vectorX/article/details/81330367

    其实载window上也可以用Oracle VM VirtualBox来搭建

     https://www.cnblogs.com/xiaowulang/p/10799267.html

  • 相关阅读:
    CSS3媒体查询总结
    关于前端学习规划
    开发技术版本
    Visual Studio 问题汇总
    asp.net web core 开发问题汇总(1)
    asp.net web core 部署问题汇总
    报表平台需求文档(V0.0.0.1)
    Git使用说明
    派生类
    cin、cout的重载
  • 原文地址:https://www.cnblogs.com/xiaowulang/p/10805610.html
Copyright © 2011-2022 走看看