網路上不少介紹寫個簡易作業系統的文章,大都是製作乙個軟盤映像檔案,然後從虛擬軟碟機中啟動。我希望能直接將系統放入u盤,直接從u盤啟動。經過一番嘗試,成功了。
1、一台centos linux物理機
2、as86、ld86工具
安裝 rpm -ivh dev86-0.16.17-15.1.el6.x86_64.rpm
3、新建彙編檔案 boot.s
bootseg
=0x07c0
entry start
start
:jmpi go
,bootseggo:
movax,cs
movdx,ax
moves,ax
mov[
msg+17]
,ahmovcx
,#20
movdx
,#0x1004
movbx
,#0x000c
movbp
,#msg
movax
,#0x1301
int0x10
loop0
:jmp
loop0
msg:
.ascii
"loading system..."
.byte
0x0d
,0x0a
,0x00
.org
510.
word
0xaa55
4、新建makefile檔案
boot.bin: boot.o
ld86 -0 -d -s -o boot.bin boot.o
boot.o: boot.s
as86 -0 -o boot.o boot.s
5、執行make,得到boot.bin
6、機器上插入u盤
7、切換到root使用者
8 、fdisk指令檢視u盤裝置名稱,我這裡查到的是 /dev/sdb
9、將boot.bin寫入到u盤
dd if=boot.bin of=boot.bin bs=512 count=1
10、重啟系統,將u盤設定為啟動裝置
11、大功造成
可以看到系統啟動起來,螢幕上顯示 紅色的 loding system...
附:如果是製作軟體映像檔案makefile可以這樣寫
boot.img: boot.img_
dd if=/dev/zero of=boot.img seek=1 bs=512 count=2879
boot.img_: boot.bin
dd if=boot.bin of=boot.img_ bs=512 count=1
boot.bin: boot.o
ld86 -0 -d -s -o boot.bin boot.o
boot.o: boot.s
as86 -0 -o boot.o boot.s
U盤啟動自己的作業系統
學習 乙個作業系統的實現 也有一段時間了,但是一直沒有動手真正地實踐過。今天終於下定決心來玩一下,根據書中的例子做乙個自己的作業系統,並啟動進入該系統。準備工作就是乙個ubuntu系統且按照書上要求安裝了相應的軟體,另外就是乙個普通u盤。具體步驟如下 1 編譯 作業系統 nasm boot.asm ...
作業系統(一) 啟動
當計算機加電後,一般不直接執行作業系統,而是執行系統初始化軟體完成基本io初始化和引導載入功能。簡單地說,系統初始化軟體就是在作業系統核心執行之前執行的一段小軟體。通過這段小軟體,我們可以初始化硬體裝置 建立系統的記憶體空間對映圖,從而將系統的軟硬體環境帶到乙個合適的狀態,以便為最終呼叫作業系統核心...
高效製作U盤啟動系統
很多機器上都沒有光碟機了,就算有光碟機也沒有了光碟,有時候真是麻煩。為此,u盤啟動安裝系統需求越發強烈,特此獻上。雙擊執行,根據提示選擇配置即可。或者深度軟體 大家可以自己嘗試之。安裝過程中 detect and mounting cd rom如果出現問題 那麼如下 注意u盤需要格式化成fat格式 ...