全世界只有3.14 % 的人关注了
清华大学直博面试的一则简历上了知乎热榜:“实现了在自己写的CPU上运行自己写的操作系统,以及自己实现的编译器生成的程序”。简历主人是清华计算机系本科生周聿浩同学,他顺利拿到直博名额,清华刘知远老师也表示赞赏。
最近,一个来自福州的男生突然火了,原因是知乎上一个热帖《清华大学计算机专业本科的这位同学是什么水平?》:
https://www.zhihu.com/question/345718537
提问者说,他在微博上看到清华刘知远教授的一条微博,对刘教授口中这个优秀同学产生了兴趣:
我看到微博很多人都说很牛逼,连刘知远老师都称赞,但是我好像不怎么能体会到(估计是我自身水平太低了),能有人做一个形象的比喻吗?
来源:刘知远老师微博
这名同学网名Miskcoo,他简历中“实现了在自己写的CPU上运行自己写的操作系统,以及自己实现的编译器生成的程序”一句尤其引起讨论,很多对 Miskcoo 比较了解的用户纷纷跟帖回应。
Miskcoo 本名周聿浩,毕业于福州一中,目前在清华大学计算机系就读。他曾经是一名 OIer,第一次参赛就拿到了省一。在个人博客简介上,他描述自己“感兴趣的是人工智能中偏理论方面的内容,以及一部分分析方向的数学。”
而且他本人也非常低调虚心。面对大家的一片赞誉,自己则表示获得刘知远教授认可的项目,单靠自己是做不出来的,特别要感谢一起战斗的小伙伴,包括陈晟祺、刘晓义等。
除了rCore on MIPS这个项目外,Miskcoo简历中另一个受到好评的项目经历是“NonTrivialMIPS - 十级流水双发射 MIPS 处理器”,这是清华计算机系团队在第三届 “龙芯杯” 全国大学生系统能力培养大赛中获得特等奖的项目。这是一个系统类的比赛,要求自己设计一个 CPU,在其上设计 SoC,运行操作系统等。在这个项目中,miskcoo 负责写 CPU(这次称为 NonTrivialMIPS),刘晓义写 cache,陈晟祺负责 Vivado 和 CI ,最终成功夺得特等奖!
清华大学计算机系团队夺得第三届“龙芯杯”特等奖
清华硬核系统类课程,“奋战二十天造台计算机”
我们先看引起讨论的“在自己写的CPU上运行自己写的操作系统”这个项目:
rCore on MIPS - Rust 语言实现的 Linux 兼容操作系统 2019年4月-2019年6月
- 操作系统课程项目。rCore 是用 rust 编写的操作系统。支持了x86_64,RISCV,AArch64 三个平台。本项目主要将其移植到 MIPS32上,最终可以在组成原理课程编写的 MIPS32处理器上运行。
- 实现了在自己写的CPU上运行自己写的操作系统,以及自己实现的编译器生成的程序。
差不多等于下面这四本书融会贯通吧。感兴趣的朋友可以买来挑战一下自己。《深入理解计算机系统》、《编译原理》、《计算机组成与体系结构》、《操作系统概念》
我想多说一句,因为刘老师打码的原因可能大家没有注意到,这些东西实际上是我和另外几个同学一起做的。他们都十分厉害,在前面一个龙芯杯的参赛作品的 CPU、SoC、Linux 移植以及其它一些东西里面我主要做的是 CPU 的部分。如果没有他们的话一个暑假完成这样一件事情在我的能力范围内是不太可能的。
$ rustup component add rust-src llvm-tools-preview
$ cargo install cargo-binutils
$ cargo install cargo-xbuild --force
$ cargo install bootimage --version 0.5.7 --force
$ git clone https://github.com/rcore-os/rCore.git --recursive
$ cd rCore/user
$ make sfsimg arch={riscv32,riscv64,x86_64,aarch64,mipsel} # requires $(arch)-linux-musl-gcc
$ cd ../kernel
$ make run arch={riscv32,riscv64,x86_64,aarch64,mipsel} mode=release
$ make run arch=x86_64 mode=release pci_passthru=0000:00:00.1 # for ixgbe real nic, find its pci (bus, dev, func) first
- NonTrivialMIPS - 十级双发射顺序 MIPS32 处理器
- TrivialMIPS - 五级双发射顺序 MIPS32 处理器
- FPGA Console - 硬件实现的 VT220 兼容终端
- TrivialDB - 简易 SQL 数据库引擎
- rubik-cube - 快速魔方解算器
- Mandelbrot-Render,一个高精度 Mandelbrot 渲染器。
- SimpleTomasulo - Tomasulo 算法模拟器。
- SimilaritySearch - 近似查找 / 近似连接算法,以及一个 “互联网打车” 应用。
- OfficeOnline - 在线审批系统。
- RIPRouter - 支持 RIP 协议的路由器。
- TrivialNews - Java 实现的 Android 新闻阅读器。
- 数独 - Qt 编写的数独,可生成及求解不同难度数独。
- 国际跳棋 - Qt 编写的双人国际跳棋游戏。
- 人物信息检索 - Python 编写的爬虫,可以抓取 Wikipedia 的人物信息并且显示。
转载来源:新智元
论文链接:https://www.zhihu.com/question/345718537部分素材源于网络,版权归原作者所有如有侵权请留言联系删除,感谢合作。
写在最后