原创 自己動手從零寫桌面操作系統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.屏幕顯示原理與文本模式
學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 一、屏幕顯示原理 電腦顯示器屏幕是由很多很小的像素組成的。每個像素就像是一個小燈泡,在屏幕上一排一排的整齊排列着。只要能控制每個像素的顏色就能顯示出各種各樣的圖形。如果近距離觀察
原创 自己動手從零寫桌面操作系統GrapeOS系列教程——12.QEMU+GDB調試
學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 寫程序不免需要調試,寫不同的程序調試方式也不同。如果做應用軟件開發,相應的程序調試方式是建立在有操作系統支持的基礎上的。而我們現在是要開發操作系統,如何調試操作系統的程序呢?如果
原创 自己動手從零寫桌面操作系統GrapeOS系列教程——11.MBR介紹
學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 前面我們介紹過電腦的啓動過程: 上電->BIOS->MBR(boot)->loader->kernel->交互界面(圖形/命令行) 本講我們要介紹的是MBR(Master Bo
原创 自己動手從零寫桌面操作系統GrapeOS系列教程——10.NASM彙編
學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 彙編語法主要有兩種:Intel語法和AT&T語法。 由於大部分介紹x86彙編的書籍和資料用的都是Intel語法,畢竟x86就是Intel發明的,大家學過的x86彙編大概率也是In