找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4007931|回复: 0

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

[复制链接]

该用户从未签到

发表于 2021-3-14 02:06:41 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

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

                               
登录/注册后可看大图
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-11-5 14:59

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表