您当前的位置: 首页 >  unix

张巧龙

暂无认证

  • 3浏览

    0关注

    1208博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

张巧龙 发布时间:2021-03-15 14:00:00 ,浏览量:3

作者:安富莱电子,排版:晓宇

微信公众号:芯片之家(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、单片机、等等!

点击下方卡片,在公众号内回复「更多资源」,即可免费获取。

关注
打赏
1665727216
查看更多评论
立即登录/注册

微信扫码登录

0.2634s