OShomework2

Question 1:

User-level ISA 是用戶態(tài)的 application 可以直接調(diào)用的指令集。
System-level ISA 是 application 必須通過系統(tǒng)調(diào)用來執(zhí)行的指令集铡恕。

Question 2:

內(nèi)存尋址模式有 Real Mode 和 Protected Mode琢感。
Real Mode,訪存尋址用 Segment:Offset 的方法探熔。寄存器 16-bit驹针,總線 20-bit。 實際編程時用段寄存器來指定 segment诀艰。
Protected Mode柬甥,由于為了考慮向前兼容性,段寄存器仍然使用 16-bit其垄,但段描述符已經(jīng)成了64-bit苛蒲,所以引入了GDT,用段寄存器的值尋址 GDT绿满,GDT存放著段描述符臂外。

Question 3:

  1. BIOS 把磁盤第一個扇區(qū)中的啟動代碼讀到物理地址 0x7c00 處,初始化 cs = 0棒口,ip = 7c00寄月,以 real mode 開始執(zhí)行
  2. 關(guān)閉中斷辜膝,將 ds无牵、es、ss幾個段寄存器的值初始化為0.
  3. 打開 A20gate
  4. 將 GDT 的 bass 和 limit 到 GDTR
  5. 將 CR0 中的 PE 位置成 1厂抖,從 real mode 切換到 protected mode
  6. 通過 ljmp 將 cs 設(shè)為 8茎毁,同時修改 PC
  7. 調(diào)用 boot main 函數(shù)讀取 kernel 的 elf 文件,啟動 kernel
  • What is the usage of "ljmp $(SEG_KCODE<<3), $start32"?
    修改 cs 寄存器忱辅,同時修改 PC

  • What is the A20 problem?
    在8086/8088中七蜘,只有20根地址總線,所以可以訪問的地址是2^20=1M墙懂,但由于8086/8088是16位地址模式橡卤,能夠表示的地址范圍是0-64K,所以為了在8086/8088下能夠訪問1M內(nèi)存损搬,Intel采取了分段的模式:16位段基地址:16位偏移碧库。其絕對地址計算方法為:16位基地址左移4位+16位偏移=20位地址柜与。
    到了80286,系統(tǒng)的地址總線發(fā)展為24根嵌灰,這樣能夠訪問的內(nèi)存可以達(dá)到2^24=16M弄匕。Intel在設(shè)計80286時提出的目標(biāo)是,在實模式下沽瞭,系統(tǒng)所表現(xiàn)的行為應(yīng)該和8086/8088所表現(xiàn)的完全一樣迁匠,也就是說,在實模式下驹溃,80286以及后續(xù)系列城丧,應(yīng)該和8086/8088完全兼容。但最終吠架,80286芯片卻存在一個BUG:如果程序員訪問100000H-10FFEFH之間的內(nèi)存芙贫,系統(tǒng)將實際訪問這塊內(nèi)存,而不是象過去一樣重新從0開始傍药。
    為了解決上述問題磺平,IBM使用鍵盤控制器上剩余的一些輸出線來管理第21根地址線(從0開始數(shù)是第20根),被稱為A20 Gate:如果A20
    Gate被打開拐辽,則當(dāng)程序員給出100000H-10FFEFH之間的地址的時候拣挪,系統(tǒng)將真正訪問這塊內(nèi)存區(qū)域;如果A20
    Gate被禁止俱诸,則當(dāng)程序員給出100000H-10FFEFH之間的地址的時候菠劝,系統(tǒng)仍然使用8086/8088的方式。絕大多數(shù)IBM PC兼容機默認(rèn)的A20
    Gate是被禁止的睁搭。由于在當(dāng)時沒有更好的方法來解決這個問題赶诊,所以IBM使用了鍵盤控制器來操作A20 Gate,但這只是一種黑客行為园骆,畢竟A20
    Gate和鍵盤操作沒有任何關(guān)系舔痪。在許多新型PC上存在著一種通過芯片來直接控制A20 Gate的BIOS功能。從性能上锌唾,這種方法比通過鍵盤控制器來控制A20
    Gate要稍微高一點锄码。
    因此在實模式下,gate關(guān)閉時晌涕,無法訪問1M以上內(nèi)存地址滋捶;gate打開的時候,可以訪問到1M以上內(nèi)存地址余黎。而在保護(hù)模式下重窟,gate關(guān)閉時,用戶只能訪問0-1M惧财,2-3M……的地址巡扇;gate開啟時炒考,可以訪問全地址。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末霎迫,一起剝皮案震驚了整個濱河市斋枢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌知给,老刑警劉巖瓤帚,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異涩赢,居然都是意外死亡戈次,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門筒扒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怯邪,“玉大人,你說我怎么就攤上這事花墩⌒” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵冰蘑,是天一觀的道長和泌。 經(jīng)常有香客問我,道長祠肥,這世上最難降的妖魔是什么武氓? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮仇箱,結(jié)果婚禮上县恕,老公的妹妹穿的比我還像新娘。我一直安慰自己剂桥,他們只是感情好忠烛,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著渊额,像睡著了一般况木。 火紅的嫁衣襯著肌膚如雪垒拢。 梳的紋絲不亂的頭發(fā)上旬迹,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音求类,去河邊找鬼奔垦。 笑死,一個胖子當(dāng)著我的面吹牛尸疆,可吹牛的內(nèi)容都是我干的椿猎。 我是一名探鬼主播惶岭,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼犯眠!你這毒婦竟也來了按灶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤筐咧,失蹤者是張志新(化名)和其女友劉穎鸯旁,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體量蕊,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡铺罢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了残炮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片韭赘。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖势就,靈堂內(nèi)的尸體忽然破棺而出泉瞻,到底是詐尸還是另有隱情,我是刑警寧澤苞冯,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布瓦灶,位于F島的核電站,受9級特大地震影響抱完,放射性物質(zhì)發(fā)生泄漏贼陶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一巧娱、第九天 我趴在偏房一處隱蔽的房頂上張望碉怔。 院中可真熱鬧,春花似錦禁添、人聲如沸撮胧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芹啥。三九已至,卻和暖如春铺峭,著一層夾襖步出監(jiān)牢的瞬間墓怀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工卫键, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留傀履,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓莉炉,卻偏偏與公主長得像钓账,于是被迫代替她去往敵國和親碴犬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容