rrxv6 : virtio

在去年五月上一回的文章 中,我們做到了 OS 版的 hello world, 讓 user process 呼叫 print 的 syscall,並由 OS 處理該 syscall 印出 hello world。
在這之後我花了一段時間(好長的一段)思考到底要做什麼,後面 xv6 依序初始化的東西包括幾個:

  1. buffer cache
  2. inode table
  3. file table
  4. virtio
  5. 做更多 user process 相關的部分

後來發現 1,2,3 都相依於 4,沒有 virtio 讀不了磁碟那還管什麼 file, inode; User process 在沒有 4 的狀況下,寫起來也是綁手綁腳,於是就決定先挑戰 qemu 的 virtio。

...

在 Ubuntu 上安裝開源 FPGA 工具鏈

故事是這個樣子的,大概在一年半前,我花了幾個月小玩了一下從 COSCUP 那邊拿到的 FPGA,那時候是在我的桌電 - 也就是 Archlinux 上進行開發。
最近因為一些原因又把這塊板子拿出來,但這次,我改用我新的筆電,裝的是 Windows 的 WSL 搭配 ubuntu 22.04,然後就發現, 我在文章中 列出來的幾項工具,包括 yosys, nextpnr, prjtrellis, 只有 yosys 能在 ubuntu 上用 apt 完成安裝,其他都在自己編譯,不像 Archlinux 上有人幫你弄好 AUR 了。

這篇文就是安裝工具的筆記,希望能幫到其他想在 ubuntu 上玩 lattice FPGA 的人, 主要參考這篇文章 ,以及一些工具 Github 的 issue。

...

書評:死亡盲飛-737MAX客機的空難悲劇與波音帝國的衰落

書名 死亡盲飛:737MAX客機的空難悲劇與波音帝國的衰落
原書名 Flying Blind: the 737 MAX Tragedy and the Fall of Boeing
作者 Peter Robison
譯者 何絜一
出版商 臉譜
出版日 2022-07-16
ISBN 9786263151468
...

用 verilator 輔助數位電路設計:C model 與 SystemC

用 verilator 的目的,就是要驗證 verilog 的實作是正確的,但我們又怎麼知道什麼是正確的呢?
就要準備好 C model 跟 SystemC 的實作了。

...

用 verilator 輔助數位電路設計:前言

有三個月沒有寫新文了,不過沒關係,這裡不像吉他英雄頻道一樣有人會催更新
故事是這樣子的,最近小弟的生活出現天翻地覆的變化,在忙各種搬家啦什麼的,都沒時間好好寫 code, 一月月初跨年、月中在三年的閉關之後出發去日本待了 10 天,回來月底接著過第二個年,什麼我的一月怎麼不見了???

這系列的主題要講電路驗證工具 verilator,本來這篇的標題是 在 2022 年應該要如何開發數位電路, 一直拖就拖到 2023 年,然後說真的,verilator 在取代現有的商用工具上應該還是不夠給力, 各大晶片設計公司也應該都有自己一套開發的流程(沒有的公司是做不出像樣的晶片的), 沒什麼稱做應該的理由,所以就改成現在這個標題了。

...

Google Test從入門到濫用:參數化測試

發現好久都沒貼文了,因為從八月開始都在忙東忙西都沒時間寫 code,主力在開發的 rrxv6 又(咦我怎麼會說又呢) 在 virtio 嚴重卡關,最近是有突破然後又被 global variable 擋下來,有夠麻煩。
會寫這篇是這樣的,從十月底小弟接到一個小任務,要用一批網路上的測資,去測試公司內一個專案的正確性,要如何做都是小弟自己決定,考量到:

  1. 待測專案用 C 寫的。
  2. 測資為自訂的文字格式。

最後決定用 C++ 搭配 google test 來開發測試,搭配大量資料進行 Data Driven Testing, 使用的 feature 為 google test 的 value-parameterized test

...

第一次參加 FLOLAC 就上手

故事是這樣子的,雖然已經是社會人士但還是要定時學一點東西,COSCUP 一結束, 緊鑼密鼓就接著兩個星期的邏輯、語言與計算暑期研習營 FLOLAC 2022,一個FP 宗教人士們的神祕聚會關於邏輯以及函數式語言的暑假短期課程。

小弟之前研究所認識的大大現在在當助教,也有上過課的教授是本次課程的教授之一,就決定在工作之餘參加一下。

...

疫情後第一次實體 COSCUP

人生第三次參加 COSCUP ,2021 年因為武肺大爆發,活動全部轉為線上,連我的演講也變成預錄影片最後回答問題, 活動心得在此
今年在疫情後首次舉辦實體活動,也改成不用買票的形式,想聽直接到會場不會有人驗票,沒有想聽的了想走就走, 變得自由很多也不用搶票了,根本超級佛心,看看今年一樣開出了平行近 20 軌的議程,連聽都聽不完的各式講題, 論其廣度與規模,COSCUP 可說是穩坐台灣開源研討會的第一品牌了。

...

rrxv6 : syscall

上一回我們進入 User Mode,打鐵趁熱這回就來處理 User Mode 下的 interrupt , 以及實作其中一種比較特殊的 interrupt,也就是 system call。

...

rrxv6 : user mode

上一回我們實作完 scheduler 之後,下一個大項目就是進入 user space 以及 system call 了,

有了這篇一般使用者和作業系統才能真的分隔開來,使用者行程在獨立的空間,以受限的權限運作,作業系統則從外管理使用者行程。

...