Raspberry Pi (ARMv6)上自幹一個微小作業系統
大約半年前,我加入fb的F9 based JuluOS與黃敬群老師( Jserv) 成大嵌入式系統課程社團,我才發現原來台灣有那麼多人在研究作業系統開發,我也想試試開發一個小小的OS。 從0開始寫一個OS是相當有趣的過程,可以檢視自己對C、資料結構、作業系統、計算機組織的瞭解程度,誠實的面對自己,雖然自己在系統廠工作幾年了,還是很多基礎知識不足,也許這就是為什麼那麼多高手可以在ic design house,而我在系統廠吧,寫這個小OS,只是學習的開始,接下來我會多研究其它的OS,例如:xv6、F9 microkernel、freeRTOS... 我把開發流程一步一步記錄,從bare metal Helloworld,加入printk,配置MMU, IRQ中斷,記憶體管理(Buddy system),到最後加入system call、process fork與round robin scheduling,方便學習。 所有原始程式碼都放在github上: https://github.com/tzuCarlos/RaspberryPi 我使用qmeu測試: 這邊有執行的結果: https://github.com/tzuCarlos/RaspberryPi/blob/master/mimiOS/RESULT 系統說明: 先拖稿一下,下班還要唸書,顧嬰兒很累的,改天有空補上一步步說明XD 未來工作: 1.把ARM的架構跟ARM組合語言弄熟。 2.系統memory map我還沒好好規畫,只是想到做什麼功能,就找一塊出來。 3. 沒有檔案系統,沒有shell、沒有驅動程式構架。 ...