一步步编写操作系统 25 cpu的保护模式
在保護模式下,我們將見到很多在實模式下沒有的新概念,很多都是cpu硬件原生提供,并且要求的東西,也就是說按照cpu的設計,必須有這些東西cpu才能運行。咱們只要了解它們是什么并且怎么用就行了,不用深入到硬件之中挖掘其工作原理,咱們雖然是在做底層開發,但依然是應用型開發,我們能開發出什么樣的軟件,取決于cpu給咱們提供什么樣的功能。就像能做出什么樣的動畫,主要取決于動畫設計軟件的功能是否強大,動畫設計師的聰明才智雖然是無限的,但其駕馭能力還是很大程度上受限于軟件本身的功能。今后大家會見到全局描述符表、中斷描述符表、各種門結構等等,所以,大家不用對這些硬件相關的概念感到慌亂,這些是cpu提供給咱們應用的,咱們用好就行了,還記得之前說過的公設嗎,這也是。
保護模式強調的是“保護”,它是在intel 80286 cpu中首次出現的,這是繼8086之后,intel緊接著推出的一款產品??梢?#xff0c;當時的8086是多么的缺乏安全感。
保護模式中的“保護”體現在哪里?怎么就安全了?這個問題就像幸福的人問什么是幸福一樣,還記得以前在百度工作時,我的技術經理李智勇問我:“你幸福嗎?”,這時候我的項目經理賀亞濤搶答:“什么是幸福?”,哈哈,玩笑,您懂的。
“想要啥就有啥”并不是真正的幸福,而是發自內心地感恩、珍惜目前所擁有的一切。其實咱們已經被保護很久了,所以咱們才可以自由自在地享受計算機帶來的便利。
幸福是比出來的,這一點不假。讓我們看看cpu實模式的不幸,大家就清楚保護模式的幸福了。
1.實模式下操作系統和用戶程序屬于同一特權級,這哥倆平起平坐,沒有區別對待。
2.用戶程序所引用的地址都是指向真實的物理地址,也就是說邏輯地址等于物理地址,實實在在的指哪打哪。
3.用戶程序可以自由修改段基址,可以不亦樂乎的訪問所有內存,沒人攔得住。
以上三個原因屬于安全缺陷,沒有安全可言的cpu注定是不可依賴的,這從基因上決定了用戶程序乃至操作系統的數據都可以被隨意的刪改,一旦出事往往都是災難性的,而且不容易排查。
4.訪問超過64k的內存區域時要切換段基址,轉來轉去容易暈乎。
5.一次只能運行一個程序,無法充分利于計算機資源。
6.共20條地址線,最大可用內存為1M,這即使在過去20年前也不夠用。
第4、5條是使用方面的缺陷,似乎當時(20年前)還可以忍受,但第6條簡直就是硬傷,隨著計算機事業的發展,程序對內存的需求必然是越來越大,如果還是1M內存,真的太束手束腳。
為了克服這種低劣的內存管理方式,處理器廠商開發出保護模式。這樣,物理內存地址不能直接被程序訪問,程序內部的地址(虛擬地址)需要被轉化為物理地址后再去訪問,程序對此一無所知。順便說一句,地址轉換是由處理器和操作系統共同協作完成的:處理器在硬件上提供地址轉換部件,操作系統提供轉換過程中所需要的頁表。
總結
以上是生活随笔為你收集整理的一步步编写操作系统 25 cpu的保护模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我国财政部再发50亿元国债,从中标利率来
- 下一篇: 第一次办信用卡没接到回访电话