xv6 為 MIT 用於教學所開發的作業系統,希望在本系列文章中,能夠藉由學習與閱讀 xv6 程式碼達到以下目標:
* 了解 C 程式的行為,如 violiate, inline,以及記憶體佈局。
* 了解 process, thread, memory paging, virtual memory 等虛擬化概念。
* trap, exception, interrupt 概念以及處理。
* RISC-V 基本暫存器,CSR 的使用與操作,特權模式。
本文為筆者在對於作業系統零基礎概念的情況下,開始學習xv6所進行的一些系統性整理以及心得記錄,拋磚引玉,還請各位多多指教。
大家好,在本系列文中,將以 RISC-V xv6 以主要的學習目標來學習作業系統,希望本文可以達到以下幾個目標 藉由 top-down 的方式學習 xv6 的...
前言 首先在最一開始,將藉由 Hello World 範例程式,引入一些作業系統的基本部件。以及作業系統的概念與目標,抽象性的實現,最後引入 System c...
前言 昨天我們快速地看過作業系統需要達成的主要目標,包含抽象,多工等等。而在這一篇章,我們將了解作業系統的主要服務以及 xv6 作業系統的相關背景,以及 xv...
前言 在昨天我們已經順利的啟動 xv6 了,而在 xv6 中實現了 21 種 System call,今天我們將看到一些與 process 有關的 Syste...
前言 今天將複習 C 語言中對於檔案的基本操作,以及檔案中一些重要的概念,如重新導向,資料流等等,最後看到 xv6 中檔案的一些操作,System call,...
前言 在今天我們將運用前面所學的關於檔案操作的 System call,以及 Process 相關的 System call,來實現 I/O 重導向的概念,並...
前言 由於下面在追蹤 xv6 的相關議題,如架構與啟動,會涉及到一些暫存器的操作,以及一些暫存器操作的指令,或是在進行 System call 時,涉及的特權...
前言 今日的文章,將簡單的看過電腦的啟動流程,以及在 xv6 中的 bootloader 和 kernel.ld 這個檔案。 啟動概要 當電腦開機或是重新啟動...
前言 今日希望通過看到整個 xv6 的啟動過程,來一步步地看到作業系統相關的設計議題,如 memory page 機制,lock,process 等等。 啟動...
前言 在最一開始的時候,我們知道作業系統有一個很重要的目標,便是做到隔離性的部分,而隔離性這一部分的實作和虛擬記憶體管理有著很大的關係,以下將會介紹記憶體地址...