为什么说是不会被用,因为最重要出版的话,必然有诸多因素影响,而且,研究生写书,你们懂。我就直接放序言内容,然后陆续放出章节。
这是一个非正式序言。
本册书的缘起,大概要从2017年龙芯举办的第一届系统能力培养大赛开始。作为一个CS学生,被问及专业基础时,发现组成原理、操作系统、编译原理、计算机网络等专业课,除课本所授些许理论外,几乎无甚了解,实在难以启齿。这是重庆大学计算机学院学生所面对的困境,也是国内大多数高校学生所面对的困境。参加第一届龙芯杯之时,很难相信我们的基础,仍是东南大学杨全胜教授所给的单周期MIPS验证实验,彼时我们出门言称985高校学生,殊不知基础能力几乎全无。龙芯杯成功地让我们见到了国内的天花板,感受到了清华从CPU到OS全能的系统能力,也了解了南京大学、北京航空航天大学等学校具有前瞻性的布局。
地处西南,其中的闭塞毋庸讳言,但若亲身体会过差距,还不动身,那便是麻木。还好,我们的老师、学生,尚且知晓这般困局,只是缺少破局之机,而龙芯杯刚好打开一个缺口。从2015级卓越班开始,我们开始尝试将龙芯杯比赛的要求和工具迁移至组成原理和硬件综合设计课程中,并结合实际情况,将过去的实验压缩修改,成了一版新的实验集合。
由于使用人数较少,并且其中各种错误,不断由每一届学生发现、修改,虽有实验指导书,但从未整理成册,也未进行大规模推广。但系统能力培养,非数人之力便可功成。且经历数年,与各个高校的老师、学生进行交流后,深感传承的重要性,未曾固化为文字的内容,待得高年级学生毕业,低年级尚无基础之时,又成断层。
经过多方面考虑,在导师钟将老师的支持下,斗胆以薄弱的理论基础和尚不娴熟的开发经验,将过去两年累积的课程实验内容、比赛设计文档等汇聚成册,并召集参与比赛的数名优秀学生分别进行其开发内容的书写和校订。
本书动工之时,大致网罗了国内与系统能力培养相关的大部分书籍。观其目标,均以培养系统能力的顶层目标为导向,用意甚佳,但奈何篇幅有限,每册均有些许遗憾。且该类书籍多以教材或实验指导教材居多,出发角度仍以教师授课为主,唯一全部开源且以开发为导向的《自己动手写CPU》,虽能够按部就班仿照其内容完成开发,但理论支撑尚且不足,并无法与高校实际实验课程的学习梯度相符合。
考虑到上述问题,最终我们仍旧做出最大胆的选择,一切从学生需求出发,目标设立为学生能够通过阅读、查询本书,顺利完成CPU核心的开发,并在此之上进行功能扩展、性能优化、上层应用执行等多角度的扩展。由于此目标需提供足够的设计实现内容,因而整体书写风格以《自己动手写CPU》为参考,每章节所涉开发模块会采用图、代码、核心逻辑(伪代码)等多种方式展示,力求学生能够在阅读后,能够进行开发实现。同时,本书将大幅引入龙芯系统能力培养大赛的比赛测试包,以求最终实现的功能正确性。