在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


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com