又一位纯手工打造CPU的牛人,并且汇编语言实现类Unix系统,支持文件系统
作者:安富萊電子,排版:曉宇
微信公眾號:芯片之家(ID:chiphome-dy)
硬件設計:
? ? GR8CPU是在面包板上構建功能齊全的計算機。第一個版本GR8CPU Rev2擁有600多條電線,74個集成電路和79個LED燈。它是一個8位架構,考慮了簡單性和處理能力。CPU可以訪問256字節的RAM,已經為其編寫了功能齊全的Tic-Tac-Toe游戲。
? ? 到目前為止,正在構建第二個GR8CPU Rev3。有很多有趣的工作要做:具有65536字節的內存,改進的算法和設計更高的速度,該CPU是有史以來最復雜的面包板CPU。
最早效果:
RAM模塊已完成:
設計ALU:
完成ALU設計:
視頻卡設計:
完成視頻輸出電路:
類Unix系統設計
? ? GR8NIX是受Unix啟發的操作系統,Unix是1970年代發布的簡單多用戶,多任務的操作系統。基于unix的思想的現代操作系統包括Linux, MacOS和Android等。GR8CPU Rev3用匯編語言編寫,內核由2000行匯編實現,5KB代碼:
(1)多線程支持32個并發線程。
(2)理論上不受限制的運行程序數量。
(3)動態內存分配,當前大小最大為8 KB。
(4)真正的程序執行與位置無關(動態應用程序加載)。
但是,GR8NIX并不完美,由于硬件限制,GR8NIX無法:
(1)保護內存免受進程侵害。
(2)從嘗試運行無效指令中恢復。
(3)可靠地防止進程退出后發生內存泄漏。
實現了動態內存管理后,開始文件系統的制作,實現從磁盤中加載文件:
??? 在視頻展示中,大家可以看到gr8nix變得栩栩如生,它成功加載并運行了一個Shell程序,該程序又加載并運行了大家想要的任何其他程序。
? ? 首先,Exec負責加載程序并運行它們。Exec首先進行一些完整性檢查:文件是否存在?它是程序文件嗎?這是有效的嗎?接下來,Exec通過檢查每個條目并將其偏移量添加到其長度中來查找可執行文件的長度。Exec找到的長度是這些計算出的最大長度。
? ? 此后,Exec調用thread_launch,這是一種用于準備啟動線程的方法。Exec通過向過程中添加一些原始數據來完成:用戶ID,指向分配的內存指針,運行的命令行以及工作目錄等等。
-END-
猜你喜歡(點擊下劃線閱讀)
如何從CPU中提煉出黃金?
CPU中的程序是怎么運行起來的
CPU為什么是方形而不是圓形的?
??最 后??
?若覺得文章不錯,轉發分享,也是我們繼續更新的動力。
5T資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、單片機、等等!
點擊下方卡片,在公眾號內回復「更多資源」,即可免費獲取。
總結
以上是生活随笔為你收集整理的又一位纯手工打造CPU的牛人,并且汇编语言实现类Unix系统,支持文件系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1-2 月我国网上零售额达 20544
- 下一篇: 干货 | 如何系统学习 C 语言?