硬件设计:
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,指向分配的内存指针,运行的命令行以及工作目录等等。

GR8CPU是一个在面包板上构建的8位计算机,Rev3版本增加了内存和速度。GR8NIX是基于GR8CPU的类Unix操作系统,支持多线程和动态内存分配。尽管存在内存管理和安全性限制,但已成功运行Shell程序和加载其他应用。

被折叠的 条评论
为什么被折叠?



