久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

實(shí)現(xiàn)操作系統(tǒng)之環(huán)境搭建 | Bochs 2.6.7

 herowuking 2015-03-31

記得很久以前,,就開始準(zhǔn)備實(shí)現(xiàn)一個(gè)自己操作系統(tǒng),,找了一本《Orange’s 一個(gè)操作系統(tǒng)的實(shí)現(xiàn)》來看,。滿懷期待的進(jìn)入最開始章節(jié),環(huán)境搭建篇,,足足讓我整了一個(gè)通宵還沒整出Hello World,后來就忘記了要寫操作系統(tǒng)這件事了?,F(xiàn)在拿起這本書,希望堅(jiān)持做下去,,并把我自己的編譯器放上去運(yùn)行,。同時(shí)我也會(huì)在每個(gè)階段記錄在我的博客上。

環(huán)境搭建在書上有詳細(xì)的介紹,,但是這本書已年代久遠(yuǎn),,各種工具也更新?lián)Q代多次,使用方法略有區(qū)別,,但大致相同,。我把過程在此記錄,希望能幫助到有需要的人,,以不至于被第一步就困難到。

我的運(yùn)行環(huán)境是Windows8,Linux下我也會(huì)簡(jiǎn)略介紹,。

準(zhǔn)備階段

安裝NASM

Nasm的官方網(wǎng)站:http:///projects/nasm/,。下載完成直接安裝,記住你的安裝文件夾,。

dd命令工具

Windows下有dd for Windows的工具,,下載地址http://www./download,找到dd-*(版本號(hào)).zip,下載解壓即可使用,。

 Bochs安裝

Bochs主頁(yè)http://bochs./,,可直接安裝。

配置環(huán)境變量

將三個(gè)軟件的安裝位置加入環(huán)境變量中,,相信安裝過軟件的都知道如何設(shè)置,,這里就不詳細(xì)說明了。

測(cè)試軟件

在cmd下輸入

1
2
3
nasm -version
dd
bochs

如果指令都正常,,我們的準(zhǔn)備工作就完成了,,若發(fā)生錯(cuò)誤,有可能是環(huán)境變量設(shè)置問題,,可重新檢查一遍,。

操作階段

匯編boot.asm

1
nasm boot.asm -oboot.bin

注意路徑不要搞錯(cuò)。

生成軟盤映像

這里使用bximage,和書中的操作略有不同,,注意閱讀一下指令的輸出,。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
d:\oranges\Bochs-2.6.7>bximage
========================================================================
                                bximage
  Disk Image Creation / Conversion / Resize and Commit Tool for Bochs
         $Id: bximage.cc 12364 2014-06-07 07:32:06Z vruppert $
========================================================================
1. Create new floppy or hard disk image
2. Convert hard disk image to other format (mode)
3. Resize hard disk image
4. Commit 'undoable' redolog to base image
5. Disk image info
0. Quit
Please choose one [0] 1   //這里需要選擇1,生成新的軟盤或硬盤
Create image
Do you want to create a floppy disk image or a hard disk image?
Please type hd or fd. [hd] fd     //選fd為軟盤
Choose the size of floppy disk image to create, in megabytes.
Please type 160k, 180k, 320k, 360k, 720k, 1.2M, 1.44M, 1.68M, 1.72M, or 2.88M.
<span style="text-decoration: underline;"> [1.44M]     //回車即默認(rèn)</span>
What should be the name of the image?
[a.img]     //回車即默認(rèn)
Creating floppy image 'a.img' with 2880 sectors
The following line should appear in your bochsrc:
  floppya: image="a.img", status=inserted
(The line is stored in your windows clipboard, use CTRL-V to paste)
Press any key to continue

最終a.img生成在cmd的當(dāng)前目錄下,,請(qǐng)注意目錄,。

寫入引導(dǎo)

我在這一步遇到了問題,,試了兩次都沒寫入,后來分析了一下找出了問題所在,。

書上的命令為

1
dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc

首先要注意這里的if是指輸入文件,,即匯編后的生成文件。a.img是軟盤映像,,這里一定要看看這兩個(gè)文件是否在同一路徑和在cmd當(dāng)前目錄中,,否則就要加上完整的路徑。其次,,當(dāng)輸入完指令后,,輸出為

1
2
3
4
5
6
7
8
9
10
11
12
13
14
d:\oranges\code>dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc
rawwrite dd for windows version 0.5.
Written by John Newbigin <[email protected]>
This program is covered by the GPL.  See copying.txt for details
Unknown command conv=notrunc
dd [bs=SIZE] [count=BLOCKS] [if=FILE] [of=FILE] [seek=BLOCKS] [skip=BLOCKS] [--s
ize] [--list] [--progress]
SIZE and BLOCKS may have one of the following suffix:
k = 1024
M = 1048576
G = 1073741824
default block size (bs) is 512 bytes
skip specifies the starting offset of the input file (if)
seek specifies the starting offset of the output file (of)

下劃線表示沒有這個(gè)指令,我猜測(cè)dd工具已經(jīng)更新掉了這個(gè)命令,,所以去掉即可,。

配置bochsrc.bxrc文件

我的配置文件是

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
##################################  
# configure filefor Bochs in win7  
##################################  
  
# how much memorythe emulated machine will have  
megs: 32  
  
# filename of ROMimages  
romimage:file=d:/oranges/Bochs-2.6.7/BIOS-bochs-latest  
vgaromimage:file=d:/oranges/Bochs-2.6.7/VGABIOS-lgpl-latest  
  
# what disk imagewill be used  
floppya:image="a.img", status=inserted  
# floppya:1_44=floppyb.img, status=inserted  
  
#hard disk  
# ata0: enabled=1,ioaddr1=0x1fo, ioaddr2=0x3f0, irq=14  
# ata0-master:type=disk, path="hd10meg.img", cylinders=306, heads=4, spt=17  
  
# choose the bootdisk.  
boot: a  
  
# default configinterface is textconfig.  
#config_interface:textconfig  
#config_interface:w  
  
#display_library:x  
# other choices:win32 sdl wx carbon amigaos beos macintosh nogui rfb term  
  
# where do we sendlog messages?  
log: bochsout.txt  
  
# disable themouse, since DLX is text only  
mouse: enabled=0  
  
# enable keymapping, using US layout as default.  
#  
# NOTE: In Bochs1.4, keyboard mapping is only 100% implemented on X windows.  
# However, the keymapping tables are used in the paste function, so  
# in the DLX Linuxexample I'm enabling keyboard_mapping so that paste  
# will work.  Cut&Paste is currently implemented onwin32 and X windows only.  
  
keyboard:keymap=d:/oranges/Bochs-2.6.7/keymaps/x11-pc-us.map  
#keyboard_mapping:enabled=1, map=$BXSHARE/keymaps/x11-pc-fr.map  
#keyboard_mapping:enabled=1, map=$BXSHARE/keymaps/x11-pc-de.map  
#keyboard_mapping:enabled=1, map=$BXSHARE/keymaps/x11-pc-es.ma

注意改成自己的路徑即可。

HELLO WORLD

雙擊bochsrc.boxrc,。360軟件小助手截圖20141126024515

搞定?。?!

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多