iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Software Development

予焦啦!Hoddarla 專案起步:使用 Golang 撰寫 RISC-V 作業系統的初步探索 系列

筆者以這次鐵人賽為契機,啟動一個作業系統計畫,它的名字叫做 Hoddarla。
儘管它本身還有很多模糊且未定義清楚的目標,但有兩點作為專案的基石,將會一直維持的:

* 只支援單一計算機架構:RISC-V。
* 只包含 Golang 程式碼,以及 Golang 工具鏈所能允許的組合語言。

在這次 30 天的篇幅內,將會涵蓋的是 Golang 如何支援 RISC-V 上的系統開發。雖然沒有實用性,但筆者會引用一些參考文獻,使得有心想要深入

* RISC-V S-mode 操作
* Golang 執行期

的讀者也能夠有個小型範本可以參考。

技術寫落去,予焦啦!

鐵人鍊成 | 共 33 篇文章 | 14 人訂閱 訂閱系列文 RSS系列文 團隊晶心壯士 II:SOLAR System
DAY 21

予焦啦!實作上下文機制

本節是以 Golang 上游 8854368cb076ea9a2b71c8b3c8f675a8e19b751c 為基準做的實驗 予焦啦!今天我們就來驗收前兩...

2021-09-30 ‧ 由 高魁良 分享
DAY 22

予焦啦!Golang 執行緒與作業系統執行緒

本節是以 Golang 上游 6a79f358069195e1cddb821e81fab956d9a0c7d1 為基準做的實驗 予焦啦!昨日以前的第三章解決...

2021-10-01 ‧ 由 高魁良 分享
DAY 23

予焦啦!實作基本排程

本節是以 Golang 上游 6a79f358069195e1cddb821e81fab956d9a0c7d1 為基準做的實驗 予焦啦!昨日我們觀察了 Go...

2021-10-02 ‧ 由 高魁良 分享
DAY 24

予焦啦!Golang 執行期的鎖

予焦啦!我們昨日實作完簡易排程,確保 Golang 執行緒(M)都會被排到 CPU 資源。但是卻有不定時炸彈會出現,那就是試圖解鎖非上鎖的鎖的錯誤;大部分時候都...

2021-10-03 ‧ 由 高魁良 分享
DAY 25

予焦啦!RISC-V 外部中斷機制

予焦啦!上一章,我們完成了基本的排程;至少,程式的流程不會再因為單一的執行緒需要睡眠或是為了取得某些鎖而卡住。雖然也和本系列文的其他機制一樣粗暴而粗糙,但我們可...

2021-10-04 ‧ 由 高魁良 分享
DAY 26

予焦啦!Hello World 與 Uart 機制觀察

本節是以 Golang 上游 7ee4c1665477c6cf574cb9128deaf9d00906c69f 為基準做的實驗 予焦啦!針對外部中斷的機制,...

2021-10-05 ‧ 由 高魁良 分享
DAY 27

予焦啦!基本的命令列

本節是以 Golang 上游 7ee4c1665477c6cf574cb9128deaf9d00906c69f 為基準做的實驗 予焦啦!昨天我們終於抵達了...

2021-10-06 ‧ 由 高魁良 分享
DAY 28

予焦啦!附錄:旅途拾貝

今天是 Hoddarla 系列文中的附錄第 0 篇。筆者在這一年半的準備期當中送了兩個 patch 給 Golang 上游。一次是分心想要更了解 Golang...

2021-10-07 ‧ 由 高魁良 分享
DAY 29

予焦啦!附錄:詭異的時間中斷(timer interrupt)擱置位元(pending bit)

在 3.0 那一篇,筆者介紹時間中斷與簡單的實作。也許也有讀者注意到了不太順暢的部分,那就是直接跳躍到作業系統模式去控制,卻沒有說明機器模式的中斷相關控制暫存器...

2021-10-08 ‧ 由 高魁良 分享
DAY 30

予焦啦!附錄:那些作業系統的巨人們與參考資料

沒有人是一座孤島,而技術與軟體亦然。早在 Hoddarla 抵達系列文本篇最後的基本命令列功能之前、甚至在任何筆者的瘋狂構想之前,就早已有無數的資訊科技如堅固的...

2021-10-09 ‧ 由 高魁良 分享