亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊(cè)

您現(xiàn)在的位置是:首頁 > 技術(shù)閱讀 >  操作系統(tǒng)學(xué)習(xí)路線

操作系統(tǒng)學(xué)習(xí)路線

時(shí)間:2024-02-11

前言

時(shí)隔四個(gè)多月,終于把 這個(gè)系列寫完了,我把它們整合起來做成了這個(gè) ,并命名為給操作系統(tǒng)捋條線。在寫第一篇計(jì)算機(jī)啟動(dòng)的時(shí)候,我就說過想要通過 給操作系統(tǒng)的前前后后,里里外外捋一條線出來,讓自己讓大家都對(duì)操作系統(tǒng)有個(gè)清晰的認(rèn)識(shí)。

可能有朋友還不知道 是個(gè)什么東西,都說 課程是學(xué)習(xí)操作系統(tǒng)的神級(jí)課程,而 就是其教學(xué)使用的操作系統(tǒng)。 這個(gè)系統(tǒng)本身很小,但麻雀雖小五臟俱全,基本的機(jī)制它都具備,用它來學(xué)習(xí)理清操作系統(tǒng)再好不過。從第一篇寫到現(xiàn)在私以為把線捋得還是挺清楚的,有一個(gè)完整的邏輯閉環(huán)。在寫之前我就有想過要用一條線一張圖把操作系統(tǒng)各個(gè)方面給串起來,整個(gè)系列寫完之后, 發(fā)覺有點(diǎn)異想天開了,嘗試了很久沒成功。

我分為了五個(gè)大的部分:?jiǎn)?dòng),中斷,文件系統(tǒng),進(jìn)程,控制臺(tái),其他部分比如說內(nèi)存管理,鎖等等都是分散在那五大部分里面。每個(gè)部分我都盡量細(xì)致到各個(gè)方面,并且附有詳細(xì)的文字描述或者流程圖

比如說啟動(dòng)流程圖

再比如中斷流程圖

又比如讀寫文件的流程圖

看著這些圖感覺還行是吧,較為繁雜的部分基本都有類似的流程圖,私以為將 捋得還是很順很清楚的。《給操作系統(tǒng)捋條線》主要講述了下面這些問題,看看你是否清楚:

計(jì)算機(jī)啟動(dòng): 的計(jì)算機(jī)啟動(dòng)過程與常見的一些啟動(dòng)過程稍稍不同,主要是 揉在一起了,其他的沒什么,比較常規(guī),可能就是多處理器的情況可能大家不太熟悉,這一塊大概有這么一些問題:

  • ->->->-> 啟動(dòng)的大概過程?
  • 實(shí)模式如何到保護(hù)模式?
  • 如何開啟分頁機(jī)制?
  • 邏輯地址,虛擬地址,線性地址,物理地址如何轉(zhuǎn)化的?
  • 如何讀取磁盤加載內(nèi)核?
  • 多處理器的話又是如何啟動(dòng)的?

中斷與系統(tǒng)調(diào)用:兩者的過程差不太多,只不過一個(gè)中斷源來源于外部,一個(gè)來源內(nèi)部,在內(nèi)核部分,兩者的處理過程基本一樣,這一塊兒大概有這些問題:

  • 中斷與異常的關(guān)系?

  • 什么是軟件中斷? 軟件中斷和軟中斷是一個(gè)東西嗎?

  • 中斷控制器 PIC、APIC 的基本認(rèn)識(shí)?

  • 多個(gè)處理器多種中斷,哪個(gè)處理器處理哪個(gè)中斷呢?

  • 中斷的處理過程

    • 向量號(hào),IDT,中斷服務(wù)程序(如何定位中斷服務(wù)程序)?
    • 現(xiàn)場(chǎng)的保存與恢復(fù)到底什么意思?
    • 發(fā)生中斷期間棧是如何變化的?
  • 系統(tǒng)調(diào)用大致過程?

  • 系統(tǒng)調(diào)用時(shí)用戶程序的參數(shù)如何傳遞給內(nèi)核?

文件系統(tǒng): 將文件系統(tǒng)分為了 7 層,,大概有這些問題:

  • 磁盤驅(qū)動(dòng)程序(磁盤如何讀寫)?
  • 一個(gè)簡(jiǎn)單的日志系統(tǒng)如何設(shè)計(jì)?
  • 為什么日志系統(tǒng)能夠保證數(shù)據(jù)的一致性?
  • ,文件,目錄,目錄項(xiàng),文件描述符,文件結(jié)構(gòu)體它們之間到底什么關(guān)系?
  • 一切皆文件怎么理解,為什么 這兩個(gè)系統(tǒng)調(diào)用就可以讀寫任意類型的文件?
  • 目錄項(xiàng),硬鏈接,軟鏈接到底什么意思,有什么關(guān)系?
  • 常見的文件系統(tǒng)調(diào)用比如 如何實(shí)現(xiàn)的?

進(jìn)程

  • 如何創(chuàng)建一個(gè)進(jìn)程( 實(shí)現(xiàn))?
  • 第一個(gè)進(jìn)程如何創(chuàng)建的?
  • 程序是如何從磁盤加載到內(nèi)存的( 實(shí)現(xiàn))?
  • 一個(gè)進(jìn)程如何被調(diào)度上
  • 常見的調(diào)度算法及其利弊?
  • 進(jìn)程如何切換(頁表,,棧,上下文等是如何變化的)?
  • 進(jìn)程的休眠喚醒如何實(shí)現(xiàn)?
  • 進(jìn)程的等待退出如何實(shí)現(xiàn)?
  • 孤兒進(jìn)程,僵尸進(jìn)程什么意思?
  • 程序從 開始執(zhí)行(簡(jiǎn)單了解了解運(yùn)行庫(kù))?
  • 堆到底是個(gè)什么玩意兒?如何實(shí)現(xiàn)?如何組織管理?

內(nèi)存管理:

  • 的物理內(nèi)存是如何管理的,虛擬內(nèi)存又是如何管理的?
  • 虛擬地址空間應(yīng)該如何理解?
  • 地址 0 真的就不能訪問?
  • 所謂的分配內(nèi)存做了些什么事

鎖:

  • 自旋鎖如何設(shè)計(jì)?
  • 休眠鎖如何設(shè)計(jì)?
  • 常見死鎖判斷

控制臺(tái):

  • 鍵盤的簡(jiǎn)單認(rèn)識(shí)
  • 顯卡的簡(jiǎn)單認(rèn)識(shí)
  • 串口的簡(jiǎn)單認(rèn)識(shí)
  • 按下一個(gè)鍵到輸出到屏幕這之間的詳細(xì)過程?
  • 函數(shù)如何實(shí)現(xiàn)的
  • 為什么文件描述符 0、1、2 就表示標(biāo)準(zhǔn)輸入輸出錯(cuò)誤呢?
  • 如何實(shí)現(xiàn)的
  • 重定向什么意思,如何實(shí)現(xiàn)?
  • 管道什么意思,如何實(shí)現(xiàn)?
  • 一些常用命令如 等等如何實(shí)現(xiàn)的?

大概就這些吧,把這些問題捋清楚,那么對(duì)于操作系統(tǒng)的認(rèn)識(shí)應(yīng)該比較清楚了。

其實(shí)有自己的文檔,我反復(fù)看過幾遍,覺得其實(shí)不太適合上手閱讀, 的文檔只是講述了一些重要部分,這不可避免的知識(shí)點(diǎn)分散。而我寫的 系列文章大概涵蓋了 的代碼,重要部分,細(xì)節(jié)部分基本上完全覆蓋,是真正地形成了一個(gè)完整詳盡的邏輯閉環(huán)。

另外我也向諸位坦白地講,本人的水平不高,其中的一些復(fù)雜機(jī)制我也不是太懂,比如說硬件部分,比如說鎖的問題,再者有些機(jī)制為什么要這么設(shè)計(jì),有什么好處,不這樣設(shè)計(jì)行不行等等問題。關(guān)于 若略過一些細(xì)節(jié)只了解操作系統(tǒng)如何運(yùn)作的,這件事還是很簡(jiǎn)單的,可一旦深入細(xì)節(jié),多問自己幾個(gè)為什么,一些看似簡(jiǎn)單的問題都可能變得很復(fù)雜,這似乎是自找麻煩,但學(xué)習(xí)不就是這樣的嗎?

關(guān)于代碼我上傳了一份有“詳盡”注釋的版本,配合著本資料,看起來應(yīng)該容易些,里面也還有各種手冊(cè)資料,本資料也在里面,有需要的可以下載,在我公眾號(hào)后臺(tái)回復(fù) xv6 即可獲取,或者在后臺(tái)點(diǎn)擊精品資源中的  捋xv6 即可獲取鏈接

對(duì)于《給操作系統(tǒng)捋條線》有什么問題還請(qǐng)批評(píng)指正,也歡迎大家來同我探討學(xué)習(xí)交流,將其不斷完善。最后, ......,這份資料確是我這幾個(gè)月的心血,夜夜咖啡伴,頭發(fā)根根掉,身體滑千丈,捋出一條線,若對(duì)大家卻有幫助,還望關(guān)個(gè)注,在此拜謝。



主站蜘蛛池模板: 安福县| 原阳县| 石首市| 大兴区| 阿瓦提县| 临武县| 财经| 南昌县| 昭平县| 连山| 长顺县| 敖汉旗| 永定县| 延寿县| 田林县| 涟水县| 万全县| 景泰县| 弥勒县| 佛坪县| 嘉祥县| 津南区| 昭通市| 东台市| 开化县| 堆龙德庆县| 阜新市| 垦利县| 通榆县| 新蔡县| 浦城县| 平江县| 东辽县| 保康县| 昌乐县| 许昌市| 临潭县| 泽州县| 新郑市| 徐水县| 广南县|