學習 作業系統 會遇到的一些問題

2021-06-28 04:59:45 字數 743 閱讀 2273

學習作業系統必須要了解一切。

首先要了解機器:

每條指令的長度,每條指令的功能,對機器的影響等等。

有哪些暫存器,都具有什麼功能? 如何訪問這些暫存器。

在訪問資料的時候,機器會給你做什麼?

在執行一條指令的時候,機器會做什麼事情? 修改什麼暫存器。

周邊裝置 的訪問 (比如說 磁碟,行式印表機等) 是如何進行的?

然後要了解編譯器: 將 一段c 語言**編譯成什麼樣子?

資料放在那裡,**又放在那裡,都有什麼樣子的資料?

函式呼叫是如何實現的?

鏈結的時候的資料是如何放置在一起的?

寫組合語言的時候,或者寫 c 語言的時候如何影響 彙編器 或者  c 編譯器的行為,具有哪些可以影響的行為?

了解編譯過後的**是什麼樣子, 載入到記憶體的時候又是什麼樣子? 

這兩個實體 之間 具有何種對應關係? (非常重要)

(其實也就是虛擬位址空間 和 實體地址空間的對應關係)

需要了解,作業系統記憶體是如何管理的,又是如何給乙個程序,或者給自身,分配記憶體的? (涉及到具體的資料存放在物理記憶體**?)

還需要了解中斷,這個很重要,中斷的時候 乙個程序是如何切換到 另外乙個程序,切換了之後又是如何 切換回來

並且可以依舊接著繼續執行程式呢? (為什麼可以接著繼續執行程式,這個是非常重要的。儲存現場,指的是儲存了什麼東西呢?)

當我們真的了解了上述的東西之後,就可以說對作業系統入門了,並且可以開始琢磨著寫自己的作業系統了。

docker操作遇到的一些問題

denied requested access to the resource is denied 解決 推送時必須保證docker hub帳號與當前推送的映象作者名一致 解決 要刪除映象,先要刪除該映象的容器,如果有多個容器例項,則需要全部刪除,最後才能刪除映象。查詢已有的例項 docker ps...

linux 部署專案會遇到的一些問題

sudo nano etc default locale lang en us.utf 8 language en us en reboot 如果系統沒有裝en us en,執行 sudo locale gen en us.utf 8 vi etc passwd 找到該使用者,修改其shell為ba...

學習docker遇到的一些問題

1 docker 容器中vim vi等命令無法使用的那些事 進入容器後,用命令更新源 apt get update 安裝 apt get install vim 2 docker hosts 對映問題 spring boot專案 是使用自定義網域名稱來 訪問註冊中心的,部署進容器裡時,需要對dock...