Linux中操做系統模擬的環境搭建html
1.前期須要的工具ubuntu
bochs(虛擬機),實際上就是操做系統模擬器app
nasm(intel 彙編器),這裏不採用as(gas GNU)由於後期都是用的intel 彙編。工具
在window上搭建的Linux虛擬機spa
g++編譯器操作系統
2. 環境的搭建.net
在window上搭建的Linux虛擬機比較簡單,因此這裏略過,我使用的是ubuntu 103d
安裝bochs,能夠使用指令安裝,sudo apt-get install bochs 日誌
也能夠在官網下載安裝包進行安裝,https://sourceforge.net/projects/bochs/files/bochs/2.6.8/code
能夠參考這邊文章進行安裝,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來搭建