自己寫個作業系統《一》製作啟動U盤,真機啟動

2021-07-16 07:28:39 字數 1463 閱讀 7512

網路上不少介紹寫個簡易作業系統的文章,大都是製作乙個軟盤映像檔案,然後從虛擬軟碟機中啟動。我希望能直接將系統放入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格式 ...