制作各种计算机语言的牛人,又一位纯手工打造 CPU 的牛人,并且汇编语言实现类 Unix 系统,支持文件系统...

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

硬件设计:

GR8CPU 是在面包板上构建功能齐全的计算机。第一个版本 GR8CPU Rev2 拥有 600 多条电线,74 个集成电路和 79 个 LED 灯。它是一个 8 位架构,考虑了简单性和处理能力。CPU 可以访问 256 字节的 RAM,已经为其编写了功能齐全的 Tic-Tac-Toe 游戏。

到目前为止,正在构建第二个 GR8CPU Rev3。有很多有趣的工作要做:具有 65536 字节的内存,改进的算法和设计更高的速度,该 CPU 是有史以来最复杂的面包板 CPU。

6050bd2c8e9f09482b450309最早效果:

6050bd2c8e9f09482b450309RAM 模块已完成:

6050bd2c8e9f09482b450309设计 ALU:

6050bd2c8e9f09482b450309完成 ALU 设计:

6050bd2c8e9f09482b450309视频卡设计:

6050bd2c8e9f09482b450309完成视频输出电路:

6050bd2c8e9f09482b450309类 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)可靠地防止进程退出后发生内存泄漏。

实现了动态内存管理后,开始文件系统的制作,实现从磁盘中加载文件:

6050bd2c8e9f09482b450309在视频展示中,大家可以看到 gr8nix 变得栩栩如生,它成功加载并运行了一个 Shell 程序,该程序又加载并运行了大家想要的任何其他程序。

首先,Exec 负责加载程序并运行它们。Exec 首先进行一些完整性检查:文件是否存在?它是程序文件吗?这是有效的吗?接下来,Exec 通过检查每个条目并将其偏移量添加到其长度中来查找可执行文件的长度。Exec 找到的长度是这些计算出的最大长度。

此后,Exec 调用 thread_launch,这是一种用于准备启动线程的方法。Exec 通过向过程中添加一些原始数据来完成:用户 ID,指向分配的内存指针,运行的命令行以及工作目录等等。

6050bd2c8e9f09482b450309

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值