码迷,mamicode.com
首页 > 系统相关 > 详细

在linux搭建操作系统实战的学习环境

时间:2019-05-03 18:08:36      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:选择   until   boot   UNC   操作   reset   conf   www   vga   

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

在linux搭建操作系统实战的学习环境

标签:选择   until   boot   UNC   操作   reset   conf   www   vga   

原文地址:https://www.cnblogs.com/xiaowulang/p/10805610.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!