1.dd指令
引數作用
if=檔名
輸入檔名,預設為標準輸入
of=檔名
輸出檔名,預設為標準輸出
ibs=bytes
obs=bytes
bs=bytes
一次讀入bytes個位元組,即指定乙個塊大小為bytes個位元組
一次輸出bytes個位元組,即指定乙個塊大小為bytes個位元組
同時設定讀入/輸出的塊大小為bytes個位元組
cbs=bytes
一次轉換bytes個位元組,即指定轉換緩衝區大小
skip=blocks
從輸入檔案開頭跳過blocks個塊後再開始複製
seek=blocks
從輸出檔案開頭跳過blocks個塊後再開始複製
count=blocks
僅拷貝blocks個塊,塊大小等於ibs指定的位元組數
conv=conversion
用指定的引數轉換檔案
ascii:轉換ebcdic為ascii
ebcdic:轉換ascii為ebcdic
ibm:轉換ascii為alternate ebcdic
block:把每一行轉換為長度為cbs,不足部分用空格填充
unblock:使每一行的長度都為cbs,不足部分用空格填充
lcase:把大寫字元轉換為小寫字元
ucase:把小寫字元轉換為大寫字元
swab:交換輸入的每對位元組
noerror:出錯時不停止
notrunc:不截短輸出檔案
sync:將每個輸入塊填充到ibs個位元組,不足部分用空(nul)字元補齊
用dd命令建立虛擬磁碟:
/*
mbr.bin為引導扇區**;boot.bin為必要功能**,由引導扇區匯入;user.bin為使用者程式;
*///建立空檔案empty.img 大小為512b*2880,
dd if
=/dev/zero of=empty.img bs=
512 count=
2880
//將mbr.bin第一塊內容拷到myos.img中
dd if
=mbr.bin of=myos.img bs=
512 count=
1//將myos.img第二塊以後內容置空
dd if
=empty.img of=myos.img skip=
1 seek=
1 bs=
512 count=
2879
//從myos.img第2塊開始,存放boot.bin中512b*2879的內容
dd if
=boot.bin of=myos.img seek=
1 bs=
512 count=
2879
//建立c.img,從c.img的100塊的開始存放user.bin內容
dd if
=user.bin of=c.img bs=
512 seek=
100 conv=notrunc
2.qemu
引數設定:myos.img為軟盤映象,c.img為硬碟0的映象,以軟盤啟動,模擬386執行
qemu-system-i386 -fda myos.img -hda /home/li/documents/test/c.img -boot a
3.makefile#makefile
all:bin
dd if=/dev/zero of=empty.img bs=512 count=2880
dd if=mbr.bin of=myos.img bs=512 count=1
dd if=empty.img of=myos.img skip=1 seek=1 bs=512 count=2879
dd if=boot.bin of=myos.img seek=1 bs=512 count=2879
dd if=user.bin of=c.img bs=512 seek=100 conv=notrunc
bin:
nasm mbr.asm -o mbr.bin
nasm boot.asm -o boot.bin
nasm user.asm -o user.bin
.phony:clean
clean:
rm boot.bin empty.img mbr.bin user.bin
.phony:qemu
qemu:
qemu-system-i386 -fda myos.img -hda /home/li/documents/test/c.img -boot a
終端輸入:make qemu執行虛擬機器
4.gdb除錯
qemu配置:
//-s是設定gdbserver的監聽埠,-s則是讓cpu加電後被掛起。
qemu-system-i386 -s -s
gdb:
gdb -q
gdb server target remote :
1234
set architecture i8086
makefile檔案製作
makefile檔案製作 個人課堂筆記 臥槽,怎麼把別人名字洩露了的 工程管理器make 很多原始檔組成的 結構組成乙個專案工程,這些檔案可能位於不同目錄下 make 批處理編譯工程檔案 makefile 編譯邏輯 如何執行批處理make命令,沒有makefile無法執行make命令 make he...
source檔案和makefile檔案編寫
一.makefile 沒有副檔名,它名字就叫makefile 內容如下 include ntmakeenv makefile.def wdm程式使用的所有makefile都這樣寫,我們只需寫乙個,編譯時把它拷貝到工作目錄下就行了 二.sources檔案就需要我們根據不同的場合修改了,不過基本模板如下...
ant呼叫make實現Makefile編譯
為了讓ant能執行make,還得用指令碼實現 linux sh指令碼實現,build.sh bin sh export build folder cd dirname 0 pwd prj 判斷makefile是否存在,如果不存在,則呼叫newprj.sh生成makefile if r build f...