原创 四千行代碼寫的桌面操作系統GrapeOS完整代碼開源了

簡介 學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 GrapeOS是一個非常簡單的x86多任務桌面操作系統,源代碼只有四千行,非常適合用來學習操作系統原理。 源碼地址:https://gitee.com/jackchengyuji

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——4.1 在VirtualBox中安裝CentOS

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 之前講解開發環境時並沒有介紹具體的安裝過程,有網友反應CentOS的安裝配置有問題,尤其是共享文件夾。本講我們就來補充介紹一下在VirtualBox中安裝配置CentOS的具體過

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——1.2 GrapeOS真機演示

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 GrapeOS操作系統之前一直運行在模擬器和虛擬機中,今天我們來演示一下GrapeOS在真機上運行的情況。 一、物理機真機 今天演示用的真機是一臺ThinkPad筆記本電腦,照片

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——24.加載並運行loader

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 之前我們在電腦的啓動過程中介紹過boot程序的主要任務就是加載並運行loader程序,本講我們就來實現。 本講代碼文件共2個: boot.asm loader.asm 一、代

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——23.從硬盤讀取文件

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 本講代碼文件爲boot.asm,要讀取的文件爲data.txt。 一、在FAT16文件系統中讀取文件的流程 在GrapeOS中用到的文件少且小,所有文件都放在了根目錄下,數量不會

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——22.文件系統與FAT16

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 新買的硬盤和優盤在第一次使用時需要格式化,有時候還需要分區。這是爲什麼呢?分區和格式化到底是幹啥呢?本講將爲大家解開這些疑惑。 一、文件系統 1.分區 首先說一下分區,我們平時看

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——21.彙編語言寫硬盤實戰

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 在上一講中我們學習了用匯編語言讀硬盤,本講我們來學習用匯編語言寫硬盤。同樣也是設計一個簡單的實驗,實驗內容爲: 在內存中準備一段有特徵的512字節數據,地址爲0x7e00~0x7

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——20.彙編語言讀硬盤實戰

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 本講我們設計一個簡單的讀硬盤實驗。通過一定的方法使硬盤第二個扇區的前3個字節依次爲1、2、3,最後3個字節依次爲3、2、1,中間的506個字節全爲0。然後通過讀硬盤程序將硬盤第二

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——19.硬盤讀寫理論知識

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 一、硬盤控制器 我們前面已經講過硬盤控制器是一種I/O接口,CPU通過它就能間接的讀寫硬盤。硬盤控制器主要有IDE和SATA兩種,我們這裏只考慮IDE控制器。 電腦裏硬盤控制器有

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——18.外設和IO

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 一、外設和I/O接口 前面我們介紹過馮·諾依曼結構包含5部分,其中輸入設備和輸出設備統稱爲外部設備,簡稱外設。常見的外設有鼠標、鍵盤、顯示器、硬盤等。由於外設種類多、差異大、速度

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——17.用匯編語言清空屏幕

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 在QEMU中會默認輸出一些字符,有時候會干擾我們自己輸出的字符。一個比較好的辦法是向將屏幕清空,再輸出我們想要輸出的字符。下面就來學習如何清空屏幕。 一、清空屏幕 其實清空屏幕的

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——16.封裝打印字符串函數

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 在上一講中我們向屏幕打印字符串“GrapeOS”用了十幾行彙編代碼,如果要輸出的字符比較多,這種方法太繁瑣了。本講我們將打印字符串封裝成一個函數,使用時就方便多了。 一、mbr7

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——15.用匯編向屏幕輸出字符

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 在上一講中我們介紹了屏幕顯示的原理,本講我們來實戰一下。 一、向屏幕輸出一個字符mbr4.asm mbr4.asm中的代碼如下: ;將屏幕第一行的第一個字符顯示爲‘G’。 mov

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——13.向MBR中寫入程序

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 前面鋪墊了這麼久,今天終於開始寫程序了。本講將介紹3個逐步深入但非常簡單的程序,一方面是讓大家熟悉開發流程,另一方面是順便解決前面遇到的CPU佔用率高的問題。 一、mbr1.as

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——14.屏幕顯示原理與文本模式

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 一、屏幕顯示原理 電腦顯示器屏幕是由很多很小的像素組成的。每個像素就像是一個小燈泡,在屏幕上一排一排的整齊排列着。只要能控制每個像素的顏色就能顯示出各種各樣的圖形。如果近距離觀察