日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

一步步编写操作系统 47 48 二进制程序运行方式

發(fā)布時間:2023/12/10 windows 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一步步编写操作系统 47 48 二进制程序运行方式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

操作系統(tǒng)并不是在功能上給予用戶的支持,這種支持是體現(xiàn)在機制上。也就是說,單純的操作系統(tǒng),用戶拿它什么都做不了,用戶需要的是某種功能。而操作系統(tǒng)僅僅是個提供支持的平臺。

雖然我們是模仿linux來寫一個黑屏白字的系統(tǒng),但如果沒有windows的話,估計當今這個世界將會失去70%以上的光芒。由于有了操作系統(tǒng)的支持,我們可以安裝一些軟件,也就是應用程序,比如安裝了QQ或一些其它的即時通訊工具,這樣我們就能夠給同其他人聊天。

所以,操作系統(tǒng)并不能直接幫大家做什么,但大家想做什么的時候,操作系統(tǒng)能提供最大限度的支持。

任何程序都需要被載入到內存后才能運行,這是cpu等其它硬件的運行機制決定的,我們若在該硬件系統(tǒng)上運行程序,不得不遵守這樣那樣的約束。應用程序是獨立于操作系統(tǒng)的,它不會像操作系統(tǒng)那樣,含著金鑰匙,一出生就直接在內存中。它們通常是位于磁盤等外存設備中,在使用時,需要從外存中將其調入到內存后才行。

如何去加載用戶程序呢?

操作系統(tǒng)是程序、是軟件,用戶程序也是軟件,用一個程序去調用另一個程序一點難度都沒有,最最簡單的辦法,就是用jmp或call指令。我們的bios就是這樣調用mbr,我們的mbr就是這樣調用loader的。但大家還記得不,bios調用mbr,mbr的地址是0x7c00,mbr調用loader,loader的地址是0x900。這兩個地址是寫死的,也就是說,我們目前的方法是很不靈活的,調用方需要提前和被調用方約定調用地址。

有沒有一種靈活的方法讓程序的加載地址不那么固定呢?肯定有,不過突然想起周一要匯報工作,今晚加班,下節(jié)再說。

?

接上節(jié),有沒有一種靈活的方法讓程序的加載地址不那么固定呢?

顯然是有的,由于每個程序是單獨存在的,所以程序的入口地址信息需要與程序綁定,最簡單的辦法就是在程序文件中專門騰出個空間來寫入這些程序的入口地址,主調程序在該程序文件的相應空間中將該程序的入口信息讀出來,將其加載到相應的入口地址,跳轉過去就行了。當然不僅僅只寫入程序入口地址,能寫的東西很多,比如為了給程序分配內存,至少還得需要知道程序的尺寸大小。但在哪里寫入程序的入口地址呢?這便是文件頭的由來,在程序文件的開頭部分記載這類信息,而程序文件中除文件頭外其余的部分則是之前的程序體。這樣一來,原先的純二進制可執(zhí)行文件加上新的文件頭,就形成了一種文件格式。不僅文件是這樣,很多其它傳輸協(xié)議也是采用文件頭header+文件體body的形式,如郵件傳輸協(xié)議和http傳輸協(xié)議。在現(xiàn)實生活中也有這樣的例子,比如咱們坐火車的時候,按理說,只要火車停在能讓咱們看到的地方,咱們就能直接上火車了。但現(xiàn)實中不可能讓所有火車擺在咱們面前,所以我們在乘坐火車時,都是進站后先要查看大屏幕上的列車時刻表,從中找到在哪個候車室等候上車。其中,列車時刻表就相當于文件頭,我們從中找到上火車的入口,而火車則相當于文件體。

在程序中,程序頭(也就是文件頭)是用來描述程序的布局等信息,它屬于信息的信息,也就是元數(shù)據(jù)。包含程序頭的程序文件示意如圖:

由于程序文件中包含了程序頭,好處是程序的入口地址等信息不需要寫死,調用方中的調用代碼可以變得通用,根據(jù)實際情況加載便可。但不好的地方是,這些元信息不是代碼,故不應該將其放在cpu上“執(zhí)行”,所以程序就不再是純粹的二進制可執(zhí)行文件了,不像之前咱們用nasm默認編譯的可執(zhí)行文件(里面全是程序本身的指令和數(shù)據(jù))那樣純粹。所以,將這種具有程序頭格式的程序文件從外存讀入到內存后,從該程序文件的程序頭中讀出入口地址,需要直接跳進入口地址執(zhí)行,跨過程序頭才行。

總結

以上是生活随笔為你收集整理的一步步编写操作系统 47 48 二进制程序运行方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久久久久免费看无码 | 国产午夜福利精品 | 91激情| 久久一线| 田中瞳av | 好吊妞一区二区三区 | 日韩精品三区 | 超碰1997 | 亚洲私人影院 | 亚洲性图一区二区 | 永久免费在线观看av | 亚洲精品乱码久久久久久久 | 中文字幕丰满孑伦无码专区 | 国产精品手机视频 | 久久中文字 | 中文字幕一区2区3区 | 伊人365| 蜜臀一区二区三区精品免费视频 | 佐佐木明希电影 | 久久色在线观看 | 欧美性猛交xxxx黑人猛交 | 国产一级片视频 | 国产精品一区二区在线播放 | 日日夜夜干 | 亚洲成人自拍网 | 干一干操一操 | 关之琳三级全黄做爰在线观看 | 国产精品免费一区 | 久久久久久艹 | 天堂网在线观看 | 无码精品人妻一区二区三区湄公河 | 艳妇乳肉豪妇荡乳av | 蜜臀av在线观看 | 日韩熟妇一区二区三区 | 午夜国产视频 | 日韩欧美一区二区在线 | 中文字幕av在线播放 | 91精品国产综合久久久密臀九色 | 欧洲亚洲另类 | 一本色综合 | 欧美精品乱码99久久蜜桃 | 国产乱码精品一区二三赶尸艳谈 | 免费观看一区二区 | 经典三级久久 | 午夜影院在线观看视频 | 国产少女免费观看高清 | 91视频插插插 | 国产丝袜视频在线观看 | 国产精品美女久久久久av超清 | 欧美视频一二三区 | 欧美色图综合网 | 快播视频在线观看 | 久草中文在线 | 波多野结衣之潜藏淫欲 | 亚洲激情中文字幕 | 久免费一级suv好看的国产 | 欧美xxxx83d | 亚洲精品视频一区二区三区 | 911亚洲精选| 免费aa视频| 欧美成人精品激情在线观看 | 茄子视频色 | 亚洲第5页 | 黄色网久久 | 最新av网址在线观看 | 日韩在线激情 | 九色.com| 日韩高清一区二区 | 爱爱视频网址 | 亚洲毛片久久 | 91精品国产亚洲 | 免费黄网站在线看 | 涩里番在线观看 | 噼里啪啦免费看 | 麻豆精品国产传媒 | 欧美精品国产一区二区 | 亚洲视频五区 | 狂野欧美 | 无套中出丰满人妻无码 | 国产少妇自拍 | 91蝌蚪少妇| 欧美大片在线看免费观看 | 亚洲综合福利 | 永久免费看片在线观看 | 麻豆传媒在线看 | 国产91精品一区 | 午夜福利视频合集1000 | 国产成人精品999在线观看 | 丁香午夜 | 成人v精品蜜桃久一区 | 国产精品久久久久久久专区 | 欧美两根一起进3p做受视频 | 国产精品作爱 | 国模私拍在线 | 蜜桃av在线 | 中国三级视频 | 亚洲片国产一区一级在线观看 | 欧美专区亚洲专区 | 激情小说图片视频 |