<ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>


      前言

      從一開始的引導(dǎo)程序到現(xiàn)在的文件系統(tǒng)已經(jīng)有十篇了,算是自己對(duì)操作系統(tǒng)的學(xué)習(xí)的一個(gè)筆記,原本是想結(jié)合自己之前寫的玩具操作系統(tǒng)FragileOS
      <https://github.com/dejavudwh/FragileOS>,但是之后就轉(zhuǎn)到了結(jié)合Linux 0.11的代碼去寫這個(gè)筆記。

      因?yàn)楝F(xiàn)在是馬上開學(xué)了,后勁不足,也有點(diǎn)焦慮,所以這個(gè)系列寫得非常亂。沒有之前那個(gè)從零寫編譯器的系列學(xué)習(xí)筆記
      <https://www.cnblogs.com/secoding/p/11393720.html>
      寫得順暢,收獲也沒有那么多。所以之后開學(xué)后可能會(huì)打算再讀一下Linux 0.11的源碼。

      索引

      我是如何學(xué)習(xí)寫一個(gè)操作系統(tǒng)(一):開篇 <https://www.cnblogs.com/secoding/p/11402948.html>

      我是如何學(xué)習(xí)寫一個(gè)操作系統(tǒng)(二):操作系統(tǒng)的啟動(dòng)之Bootloader
      <https://www.cnblogs.com/secoding/p/11405968.html>

      我是如何學(xué)習(xí)寫一個(gè)操作系統(tǒng)(三):操作系統(tǒng)的啟動(dòng)之保護(hù)模式
      <https://www.cnblogs.com/secoding/p/11407486.html>

      我是如何學(xué)習(xí)寫一個(gè)操作系統(tǒng)(四):操作系統(tǒng)之系統(tǒng)調(diào)用 <https://www.cnblogs.com/secoding/p/11414172.html>

      我是如何學(xué)習(xí)寫一個(gè)操作系統(tǒng)(五):故事的高潮之進(jìn)程和線程1
      <https://www.cnblogs.com/secoding/p/11417547.html>

      我是如何學(xué)習(xí)寫一個(gè)操作系統(tǒng)(六):進(jìn)程的調(diào)度 <https://www.cnblogs.com/secoding/p/11422525.html>

      我是如何學(xué)習(xí)寫一個(gè)操作系統(tǒng)(七):進(jìn)程的同步與信號(hào)量 <https://www.cnblogs.com/secoding/p/11428751.html>

      我是如何學(xué)習(xí)寫一個(gè)操作系統(tǒng)(八):內(nèi)存管理和段頁機(jī)制 <https://www.cnblogs.com/secoding/p/11437268.html>

      我是如何學(xué)習(xí)寫一個(gè)操作系統(tǒng)(九):文件系統(tǒng) <https://www.cnblogs.com/secoding/p/11442659.html>

      總結(jié)

      一個(gè)完整的操作系統(tǒng)至少包含這幾個(gè)部分:進(jìn)程管理、內(nèi)存管理和文件系統(tǒng),如果嚴(yán)格來說的話可以從引導(dǎo)程序開始說

      引導(dǎo)程序

      對(duì)于X86架構(gòu)的計(jì)算機(jī),開機(jī)時(shí)一共做這幾件事

      * 開機(jī)時(shí)的CS = 0xFFFF, IP = 0x0000
      這時(shí)候的CPU處理實(shí)模式,也就是尋址的方式是CS:IP (實(shí)模式和保護(hù)模式屬于CPU的工作模式,其中比較大的區(qū)別就是尋址的方式)

      *
      尋址0xFFFF0

      *
      檢查硬件設(shè)備,像鍵盤顯示器之類的

      *
      將磁盤0磁道0扇區(qū)讀入0x7c00處

      會(huì)從這里讀入512字節(jié),也就是傳說中的引導(dǎo)程序,這里放著計(jì)算機(jī)執(zhí)行的第一段代碼

      * 設(shè)置cs = 0x7c00 ip = 0x0000
      這里也就是會(huì)把真正的操作系統(tǒng)引導(dǎo)到指定位置開始執(zhí)行

      進(jìn)程

      單核CPU在同一時(shí)刻只能運(yùn)行一條指令,所謂的多進(jìn)程只是指令來回切換的假象,但是因?yàn)樗俣忍?,就可以看成是同時(shí)進(jìn)行的。所以在進(jìn)程切換的時(shí)就需要去組織進(jìn)程的切換

      而有關(guān)進(jìn)程最重要的兩個(gè)問題就是:

      *
      進(jìn)程的調(diào)度

      *
      進(jìn)程的同步

      內(nèi)存管理


      多進(jìn)程和內(nèi)存管理是緊密相連的兩個(gè)模塊,因?yàn)檫\(yùn)行進(jìn)程也就是從內(nèi)存中取指執(zhí)行,創(chuàng)建進(jìn)程首先要將程序和數(shù)據(jù)裝入內(nèi)存。將用戶原程序變成可在內(nèi)存中執(zhí)行的程序,而這就涉及到了內(nèi)存管理。

      這里也就是為了更好的管理內(nèi)存而引出了段機(jī)制和頁機(jī)制

      文件系統(tǒng)

      計(jì)算機(jī)以進(jìn)程為基本單位進(jìn)行資源的調(diào)度和分配;而與用戶的交互,基本單位則是文件。在文件這一部分更多是和磁盤打交道。

      操作系統(tǒng)很多時(shí)候就是圍繞著方便用戶和提高效率這兩方面,所以才會(huì)把磁盤抽象成文件,又才會(huì)有后來的文件目錄

      結(jié)束

      其實(shí)這一部分的總結(jié)在之前都有提到,在這里做一個(gè)小整理而已。

      友情鏈接
      ioDraw流程圖
      API參考文檔
      OK工具箱
      云服務(wù)器優(yōu)惠
      阿里云優(yōu)惠券
      騰訊云優(yōu)惠券
      京東云優(yōu)惠券
      站點(diǎn)信息
      問題反饋
      郵箱:[email protected]
      QQ群:637538335
      關(guān)注微信

        <ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>
          小sao货水好多真紧h动态图 | 天天操好逼 | 大屌在线免费视频 | 草屄视频| 国产 在线观看免费视频 | 欧美日韩激情在线一区二区三区 | 三级在线观看 | 男人裸体性做爰全过 | 色94色欧美| 欧美老女人性视频 |