国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 應用 > 編程開發 > 正文

高手揭密 開發簡單“操作系統”全過程

2024-07-15 01:54:58
字體:
來源:轉載
供稿:網友
一篇不錯的文章,按照這篇文章的指導我制作了第一個自己的“操作系統”,也就是一個引導程序啦,當時還是很興奮的哦!

  寫在前面

  寫一個PC機的引導程序比我們想象的容易很多,事實上所需要了解的只是知道PC機是怎樣啟動的。在網上看到不少類似的文章,說的很多,有的很麻煩,筆者覺得僅僅是寫一個引導程序完全沒有必要牽涉太多東西,知道足夠的知識用于去實際地寫一個出來看看是很多人最初的目的,那這篇文章就剛好適合你了。這篇文章的立足點就是短、簡單、一看就懂,而又不會看完了什么都不知道就寫出一個連自己都看不懂的代碼。

  另外,機器人天空重新改版,筆者興奮的看到了一個真正的機器人網站,囊括了機器人科學與技術這樣龐大的系統工程的各個方面,在此獻上這篇文章給機器人天空的操作系統專欄,祝愿機器人天空越辦越好,并能夠為中國的機器人愛好者們帶來更多更豐富的信息與資源,做更多的實事!同時,也希望廣大的機器人愛好者和有識之士都能出一份力,為祖國更美好的明天共同努力!筆者與您共勉。

  現在,讓我們開始引導程序初探!
 
  [什么?]  

  很多文章中把寫一個引導程序稱作是開發一個最簡單的操作系統,其實這是非常片面的,引導程序算不上操作系統,雖然此程序可以運行在裸機上。所謂引導程序,直觀的說就是在系統加電啟動時BIOS第一個執行的程序。

  引導程序要想發揮作用,讓機器識別,就必須安置在一個特別的位置,這個位置就是磁盤的第一個扇區(0面0磁道1扇區,備注:沒有0扇區),而一個包含引導程序的扇區叫作引導扇區。
  
  一個合法的引導扇區(1)通常包含512個字節(當然嘍,一個扇區通常本來就是512個字節),(2)并且以0xAA55這樣一個占用兩個字節的數據結尾作為標志符。(備注:0x前綴說明這是一個十六進制數)。

  也就是如果把引導扇區看成一個字符數組的BootSector[]話(因為一個字符,即char,剛好為一個字節),那么這個數組就擁有512個元素,如果用C語言申明的話即為
char BootSector[512];

  接著,一個合法的引導扇區必須以0xAA55結束,即
BootSector[510] = 0x55;
BootSector[511] = 0xAA;

  除了結束標志必須符合上面的要求之外,中間雖然還有510字節的空間,但執行代碼可以少于510字節,用無意義字符(通常用0x0)填充剩余空間即可。

  [過程]

  PC是通過BIOS來啟動機器的,當PC機加電之后BIOS啟動相應的程序完成機器的自檢,然后就尋找可以引導的驅動器,即大家通常所說的啟動盤。在 BIOS中可以設置從哪個盤啟動,但通??傄獧z查硬盤,所以當BIOS檢查完前面的啟動設備之后,如果沒有發現任何引導程序,那么就會開始檢查主硬盤,即 C盤。如果此時在C盤上找到了合法的引導扇區,那么就會將引導扇區的內容(共512字節)裝載到內存0x0000:07C00處。此時BIOS把控制權限交給這段引導程序。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 荣成市| 肃南| 洞头县| 益阳市| 谢通门县| 庆城县| 杂多县| 边坝县| 彭州市| 仁布县| 东光县| 稷山县| 兰西县| 泉州市| 德保县| 普定县| 尚志市| 富蕴县| 万盛区| 荔波县| 桃园县| 邻水| 松原市| 阳城县| 准格尔旗| 遂溪县| 五华县| 嘉定区| 沧州市| 济阳县| 郓城县| 佛教| 镇坪县| 安阳县| 云浮市| 政和县| 福州市| 永福县| 谢通门县| 根河市| 开阳县|