開發乙個作業系統(一)

2021-10-24 23:26:32 字數 2268 閱讀 4976

筆者今年大三,來自沙坡村男子技術學院,在10月初開始打算自己製作乙個作業系統,最開始理由很簡單,自己想做乙個能夠運用最高效的**實現軟硬體的結合的programmer,再加之後來班主任評獎學金時候,覺得acm校賽的一等獎能比自己辛苦5個月參加的iot比賽的國獎更加有力,於是也更加堅定了製作屬於自己os的決心。目前的打算將os取名為"amx",因為安慕希好喝!

環境的搭建:,最好都先安裝好(按順序)

ubuntu 20.04虛擬機器

nasm

gccbuild-essential,xorg-dev,libgtk2.0-dev,libgtk2.0-dev

bochs 2.6.11

選擇使用vm直接進行安裝,iso**於清華映象源

這中間還可以安裝或者配置一些能夠提高程式設計幸福指數的tools

1.使用vscode連線本地虛擬機器,使得可以在vscode上對終端進行操作

方案一:

直接在ubuntu中使用

sudo

apt-get

install bochs

缺點:無法進行除錯

方案二:

伺服器端命令:

!!注意,你解壓的位置最好提前選定,或者你要清楚檔案在哪

wget  -o bochs.tar.gz

tar -xvfz bochs.tar.gz

cd bochs-2.6.11

./configure --enable-debugger --enable-debugger-gui --enable-disasm --with-x --with-term

make

sudo

make

install

在使用sudo make install指令完成後,你的bochs其實已經安裝好了,但是你還需要對它的配置檔案進行設定

此處,你可以理解為,bochs通過讀懂你寫的配置檔案,去給你配置相應的環境,所以你的環境其實可以有很多,取決於你的配置檔案

檔案的名字是可以任意取的,預設你可以設定為bochsrc.txt(要記住名字和檔案路徑哦!)

配置檔案裡面的內容,你可以參考

這篇文章寫得很全面,這裡你要注意你需要了解自己軟體安裝在**,已經配置檔案中所需要的檔案其對應的路徑在你本機中是哪個位置!!

這裡是我的路徑配置,自己也是踩了很多坑,網上大多都是/usr/share/bochs啥的,但是你這還是要結合自身

# 虛擬機器記憶體大小

megs:32

# 對應真實機器的bios和vga bios

#這裡很重要,找不到的可以直接先全域性搜尋一下

romimage: file=/home/nishizzma/桌面/bochs/bochs-2.6.11/bios/bios-bochs-latest

vgaromimage: file=/home/nishizzma/桌面/bochs/bochs-2.6.11/bios/vgabios-lgpl-latest

# 設定bochs使用的磁碟:軟盤使用關鍵字floppya,硬碟使用disk

# 若有多個軟盤,可寫floppya,floppyb;

#這裡的軟盤位置要設定對!!

floppya: 1_44="/home/nishizzma/桌面/osdemo/chapter1/a/a.img", status=inserted

#設定啟動磁碟

boot:floppy

# 或者是 boot:disk

#目錄資訊位址

log:bochsout.txt

#滑鼠是否可用

mouse:enabled=0

#鍵盤快捷鍵是否可用,使用美國鍵盤布局(us layout)作為預設值

keyboard:keymap=/home/nishizzma/桌面/bochs/bochs-2.6.11/gui/keymaps/x11-pc-us.map

此時你就已經配置好bochs了,但是你現在還需要驗證

自己安裝配置檔案的位置寫入乙個軟盤,或者生成乙個軟盤.img檔案(後續我會持續更新)

此時,你只需要按下

bochs -p -f bochsrc.txt
注意要在配置檔案的路徑下哦軟盤位置也要對應哦

然後就能看到bochs的介面了!

參考:

作業系統(一)

1.01 歷史 1.02 分類 作業系統 桌面作業系統 redhat fedora slackware ubuntu debian suse linux centos 伺服器作業系統 linux ubuntu deepin startos mint debain suse redhat centos...

作業系統(一)

1 單道批處理系統 batch processing system 2 多道批處理系統 multiprogrammed batch processing system 3 分時系統 time sharing system 程序控制 為作業建立程序 撤銷已結束的程序 控制程序狀態轉換。程序同步 為多個...

作業系統(一)

1.設計現代os的主要目標是什麼?方便性 有效性 可擴充性和開放性 2.os的作用可表現在那幾個方面?os作為使用者與計算機硬體系統之間的介面 os作為計算機系統資源的管理者 os 實現了對計算機資源的抽象 3.為什麼說作業系統實現了對計算機資源的抽象?os首先在裸機上覆蓋一層i o裝置管理軟體,由...