• 退休园地

回顾建系前后我亲历的科研历程(下)

2016.10.08

第一至第五部分请见 “回顾建系前后我亲历的科研历程(上)”:

一、交大 441-B 编译系统联合研制项目(1966.2—1966.6)

二、国家 507 工程联合研制项目(1969.5—1970.1)

三、国家 701 工程联合研制项目(1970.3—1971.1)

四、复旦 719 计算机系统研制项目(1971.9—1973.4)

五、上海 NOVA 计算机联合研制项目(1973.5—1974.1)

 

六、国家 DJS-260 计算机系统联合研制项目(1974.3—1975.1)

1974 年初,我和沈瑶英老师接受学校新的任务远赴北京 1 年,代表复旦参加当时全国联合研制的 DJS 通用系列计算机软硬件系统。小型机 DJS-220 以南大牵头,中型机 DJS-240 以北大牵头,大型机 DJS-260 以国防科工委所牵头。我参加联合研制大型机 260 极其复杂的操作系统,沈瑶英参加联合研制汇编软件系统,都在北京 15 所。

由于大型操作系统的极其复杂性,经过长时间的克难攻坚,我直到年底才敢向学校教研组写信,说 “系统研制已感到不再像乱麻一团”,并请向学校科研处负责人郑绍濂老师汇报。信是写给当时计算数学组负责人丁宪政老师和造机组负责人王世业老师的。

回顾这段历程,是以国家系列名义组织的全国联合研制项目这是少见的,我们代表复旦参加了软件系统的设计开发。南大徐家福老师负责 DJS 系列编译系统开发,南大孙钟秀老师负责 220 小型机操作系统开发,北大杨芙清老师负责 240 中型机操作系统开发,国防科工委 15 所张学孝主任、邵友勋书记负责 260 大型机操作系统开发。

我参加的大型操作系统 260 组有 15 所、4、7 机部院所等,有来自清华、中科大、哈军工的人员及成军电周锡令等老师和复旦的我等。我们团结协作,共同切磋,资料信息比较精细而超前,有些外面新思想新概念层出不穷,令人耳目一新。但是没有任何现成核心代码和模型可用。当时就已隐约感觉,任何核心技术是无法求援来的,各国历来都是如此。我们只能自己从科学概念原理的根基出发,去艰苦开发和创造,别无他路。

开始的很长时间里,由于大型操作系统的极其复杂性,我感到像一团乱麻,无从入手,但我从大家的研讨论辨中,特别从张、邵、周等那里学到了许多东西。我们在一起分析了当时美国 IBM360/370 操作系统,欧洲 TSS 操作系统,日本 FACOM 操作系统等作为重点分析比较,消化吸收。反复斟酌后,最终确定了以下主要共识和方案目标:

(1) 美国大型操作系统 IBM360,花 10 年时间、10 亿美元代价开发,其结果每年要修改上百个错误教训。它最终的问题出在,管理程序是串行执行的,而硬件各部件是并行工作的,用串行的程序去管理控制并行的部件,经常产生不确定的随机错误是必然的。所以,必须研制一种并发软件,去控制各并发硬件,这就是系统采用 “进程” 等机制。

(2) 欧洲 TSS 操作系统,虽然开发比较晚,但是吸取了 360 操作系统的经验教训,开发新的分时操作系统很成功,适合中大型系统,值得学习借鉴和采用它的新理念。

(3) 我国 DJS-260 操作系统的开发,采用资源管理理念,实现大型批次处理系统,与中小型机构成系列。分 5 大资源管理:处理机管理及低级调度,存储器管理及中级调度,输入出设备管理及控制调度,文件信息管理及控制调度,用户作业管理及高级调度等。

(4) 我国 DJS-260 操作系统的开发,采用进程和线程机制,高度并发执行;具有 5 大进程控制状态,即执行态、就绪态、等待态、阻塞态、封锁态等;3 级进程资源调度:处理机时间、主存预约区上下界、I/O 设备通道等调度;3 大类进程通讯控制:临界区 P/V 操作、消息缓存区操作、信箱信件操作等。

(5) 我国 DJS-260 操作系统的开发,采用分层层次结构方法,模块单向依赖,大大减少系统复杂性。分为 8 层结构:CPU 控制层,SUP 管理层,MEM 管理层,I/O 管理层,INFO 管理层,JOB 管理层,SYS 服务层,USR 作业层等等。

到 1974 年年底,我们终于基本完成了总体方案和总体分析设计,我也感到了有点松口气,才详细向学校教研组汇报,后回上海迎接 1975 年新年到来。当时,国家的形势也似乎有了些生机,邓小平已主持中央工作。回上海后,我得到了学校通知,要我开始投入复旦新计算机系统研制筹备,参加考虑和讨论总体目标和总体方案。就这样在 1975 年 3 月,复旦 FD-753 系统研制项目正式开始立项了……

七、复旦 753 计算机系统研制项目(1975.3—1983.4)

1975 年初,我被召回学校投入大型新机器研制筹备工作。记得当时我们一批年青教师在工宣队朱师傅和王世业老师带领下,集中在嘉定城中饭店讨论,到华东所调研,关键是要讨论应有怎样良好可行的总体设计方案。工作头绪很多,王老师累得发烧了。

在 1975 年 3 月正式定名为 FD-753 复旦计算机,并且先期抽调了 20 多位教师成立了 753 造机组,由王世业,顾德全等为领导,徐研人和我负责分管硬软件总体设计组,硬件与软件同时开展系统自主研制,充分发挥我校教师软硬边缘结合的核心基础优势。总体组里朱传琪老师还化大量精力,并行深入到硬件总体设计中。后来,学校又派来了陈苏扬、曹邦伟二位老师分别负责领导和参与总体设计,继续和大家克服种种困难,坚持了长期艰苦的独立自主创新研制。

753 机经过反复研究讨论,结合当时美国 IBM360/370,欧洲 TSS,日本 FACOM 等计算机系统和我国 DJS-260,北大 150 等计算机系统,最终确定了当时我校新的大型 753 计算机系统的主要研制目标:(1)具有处理速度浮点运算 200 万次以上的主机系统;(2)实现分时计算机系统,联结 64 终端,响应 3-5 秒;(3)具有段页式虚拟存储的体系;(4)具有多类型通道的 I/O 处理体系;(5)具有多进程分层微内核操作系统;(6)具有科学计算数据处理结合的语言编译系统等。

当时北大已研制 150 机,即已 150 万次之意,但它是多道批次系统,还没有分时和虚存系统,我们如果能引入新理念新结构,就能够从吞吐量、响应时间、设备利用率等方面综合提升,较易达到 200 万次以上;同时,分时虚存又适合高校有关老师们及全班 40 多位学生的同时上机,故将定为有 64 终端空间。

1975 年 7 月,一批总体组老师去了北京中科院计算所和北大 150 组等单位调研。而我留下来开始编写《753 计算机总体结构和指令系统方案(草稿)》。在大家回来后,结合讨论汇报调研,我抛砖引玉,向全体逐条详细汇报介绍了我们计算机总体思想和指令系统草案。草案规范了数据类型和格式,指令类型和格式,寄存器和变址器的设置和规则,引入了各种数值、字符、地址、逻辑等运算指令,控制指令,还特设了系统进管指令和特权指令等完整草稿。

后来,北京中科院计算所仲萃豪先生来上海,顺便请来复旦,由施伯乐老师等陪同,我们报告介绍了系统总体思想和指令系统方案,最后他的结论认为总体方案 “分时系统适宜(高校),指令系统规整(可行)”,实际上还对其先进理念也给了充分肯定,也为他在以后主持的庐山首次学术会议上对复旦留下了深刻印象。

对于复旦这样一种新的大型分时计算机复杂系统的研制,在当时特殊封锁历史条件和缺乏资料资金及先例的情况下,市领导机构很自然会疑虑重重,科研经费和研制费用当时将达 400 万元,好长时间无法落实,需要反复严格论证立项。主要疑虑当时可能有:复旦已研制了 719,为什么又要研制 753?全国已联合研制有 DJS 大型通用系列机,为什么复旦又再要研制大型机?为什么不考虑一下另外较成熟较稳妥的方案?复旦到底行不行?等等。

在这种情况下,当时我至少亲历了我们 3 次严格的 “赶考”,在学校科研处郑绍廉老师认真带领下,研制组领导和总体组老师参加了这些市里领导和专家们的汇报 “考试”。

第一次向市重大办领导刘组长(老红军之子)直接汇报论证。当时在徐,研人和朱传琪两位老师仔细汇报答询后,我最后发言汇报说,其实我们确实也考虑过另外一些方案,而且还参加了国家另外大型机系统方案的论证,确实有过一定比较。国家系列机是比较适合全国通用大企业,研究所,大机关,注重效率为先的批量处理系统;对于高校需要面向教学科研,比较注重师生同时上机响应的分时处理系统;而在国际上充分吸取了 IBM-360 多道批次系统大量错误教训后,欧洲国家才流行起分时系统,引入新概念思想,反而适合中大系统,稳妥成熟;至于国内 DJS-260 大型机为什么没有分时和虚存系统,这是因为要面向全国并要与 220/240 中小型机必须保持系列一致。经过汇报论证和学术沟通,增强了领导和我们之间的相互信任。

第二次在市政府某会议室,市科委老徐等主持会议,请了全市有关研究所和高校的专家老师们座谈论证,有华东所、上海所、交大、同济、科大等单位。在复旦介绍总体目标和方案后,反应比较平静,毕竟情况各不相同,很少有可比性,往往多在宏观上提了一些问题和建议,而我们作了仔细解释,他们的建议为完善我们的系统方案提供了有益的帮助。

第三次在市科学会堂某报告厅,市科协老宋等主持会议,组织全市有关计算机会员专家听取论证,领导要我代表总体组报告复旦的详细总体方案,并作仔细解释。时间就紧,人又多,会后很难讨论,在会后收集意见。见到工宣队王师傅,我被笑称为 “三快”:写得快、说得快、擦得快。经过多次论证,改进了方案,增加了各方的信任和我们的信心。

应该说领导机构的担心是很自然的。项目预算经费当时将达 400 万元,相当于现在的几亿元。这担心那担心,如此大难度的项目,归根结底是担心 “没有先例,没有权威”,不放心。而计算机系统是当时最新兴的科学技术,我们又多是年青老师,到底行不行?怕我们 “好高骛远”。其实,我们心里更举轻若重,更加担心呵!我亲历有体验,那时实际上,自己也都曾百十次地自我考问过,我们也都曾反复在集体内共同论证过推敲过,但它有根据有基础又有新意,其实并非 “好高骛远”,而是责任担当呵!

应该说信心就来自于平时的实干。从基础到总体的实干和对科学的信服,有硬件和软件的核心处结合,都被掌控在我们自己手中,故那时能心情比较沉静。对多次市里的论证赶考和学校的汇报解答,及多次全国和上海学术会议的报告应询,在心里都很踏实,充满信心。

应该说所经历的论证赶考是严格的。因为几乎很少见到市里对于一个学校的一个科研项目,如此重视和反复赶考。惊动如此多的市领导机构和各主要大学、重要研究所及大工厂的专家,来一起把关论证。至少有市重大办、市科委和市科协等,都一次次出面,组织华东所、上海所、交大、同济、科大、无线电厂、仪器厂和电机厂等,在市政府及科学会堂等处共同论证考查。这样地对一个科研项目论证,在历史上是少见的。

应该说所经历的反应是比较平静的。毕竟情况很不相同,特别是对于国内自主研发新的计算机大项目,在国内市内其他大学、研究所也确实很少有可比性。当时,除全国正在联合研制 DJS-260 大型机外,也许中科院,清华, 中科大, 交大等当时没有,北大 150 后正在搞 240。

很自然的,对于如此复杂的系统开发,如此多的深度细节,要专家们一下子熟悉,马上深度提问是不现实的,故只能按宏观重要方面提问和建议,我们作详细解答,事后又再随时长期督促,我们再反复自我追问。所以,多次论证的反应是平静的又是有效的。项目研制也为以后新计算机系的创建诞生,奠定了自然的坚实的基础。

水到渠成,1975 年 10 月复旦计算机科学系终于在上海高校首次成立。何永保老师为首任系主任,前复旦党委书记王零同志兼任新系首任总支负责人。成立不久就举行了全系科研动员学术报告会,在老教学大楼 1233 教室,系领导要我向全体师生介绍汇报 753 研制总体方案。我报告汇报后,王零同志作了工作动员,支持 753 研究创造,最后他动了感情说:“我老了,但若复旦 753 不出来,我死不瞑目!”。在以后工作中有困难阻力时,他着急生气:“谁反对,就派谁去负责!”。我们都知道,复旦领导一贯重视科学创新的传统,以前王零同志经常喜欢在晚上到全校各实验室去走走、看看、问问,帮助他们解决矛盾和困难。

753 转入长期实际开发阶段后,硬件软件同时进行了系统自主平行开发,大家各司其责。

硬件系统开发共有 3 大组:运控组、内存组和通道组。运控组先后有王世业、陈苏扬、曹帮伟、徐研人、王莹、赵明、叶济川、徐君毅、夏根女、舒仁本、朱子聪、苏元彰、薛仁云等老师;内存组先后有顾德全、李家豪、孙尧年、黄汉文、荆金华、彭德胜、王可炯、邵明乐、孔祥秋、陈昭安等老师;通道组先后有田怀俊、方之熙、李应华、郭明森、张友德、苏明发、王浩生、李勤、殷民皋、刘先超、毛国威、林英俊、沈为民等老师。

我们软件系统开发共有 2 大组:我负责分时操作系统组,陈金海负责语言编译系统组。我们操作系统组先后有周天爵、张然、朱传琪、李玉茜、沈瑶英、赵子正、李松年、顾纯宜、张智平等老师,分别负责内核控制、虚存管理、通道管理、作业管理、用户管理等开发;编译系统组先后有陈金海、招兆铿、廖有为、余学昌、朱百祥、洪承德、盛耀强、刘建韵、周荣鑫等老师分头开发。

经过全体老师先后长期的艰苦努力,我们分时操作系统最后自主完成了以下系统目标。实现了(1)8 层层次结构:内核控制层、控台管理层、虚存管理层、通道管理层、作业管理层、用户管理层、系统服务层、用户作业层等;(2)3 种权限态:核心态、管理态、用户态等;(3)8 级中断处理:硬件出错、软件出错、调试中断、缺页中断、进管中断、/O 中断、时间片中断、容错中断等;(4)5 种进程状态:执行态、就绪态、阻塞态、封锁态、等待态等;(5)6 种进程通讯:等信、读信、写信、发信、回信、转信等;(6)64 虚空间管理:每空间 64 段,每段 16 页,每页 1024 字,第 0 段有系统页面表快存,第 32 段有用户数据表快存等;(7)3 级 I/O 管理:通道级管理、控制器级管理、设备级管理等;(8)3 级作业管理:线程管理、进程管理、用户管理等。整体系统的核心结构和核心代码全部自主完成。

1978 年 7 月,我与张然老师参加了在庐山召开的全国首次计算机操作系统学术会议。安排我作了复旦 753 分时虚存操作系统研制的学术报告,张老师作了虚拟存储管理系统开发的交流汇报。人们反应说,当时像复旦那样自己自主研制大系统的核心结构核心代码是罕见独特的。不久,根据多年来研究开发实践,我编写出了《计算机操作系统结构原理》教材,首次于上海高校计算机系开设了《操作系统原理》课程,给当时计算机系 1977/78/79 学生及研究生班等授课;还多次受复旦指派在市科学会堂为全市学会会员作计算机和操作系统学术讲座。

到 80 年代初期,在硬件系统开发制造基本完成,操作系统编码实现后,我们便开始了操作系统核心代码的调试。由于已经多次反复逻辑推演,在硬件系统曹帮伟老师等强有力的基础保证下,内核模块和各进程模块的调试意外地顺利。那天深夜曹老师和我一起,当中央控制台指示灯第一次明确显示 16 个模拟进程正在分时轮转,正常顺利运行时,我又一次感受到了那种深深的震撼!除了更加信服科学真理外,这次又多了一些沉沉的解脱。最终实践证明,只要科学体系核心和原理准确,技术上一丝不苟严格把关,科研进展和探索就比较顺利。

但这时,面对我们国内一些大系统的自主开拓和冲刺,不知是否有联系或巧合,国际巴黎 “统筹” 开禁了,外面世界国际成熟系统和技术的大规模流入也即将开始;而我们复旦 753 分时计算机系统的研制也终于成功,最后由国家教委上海科委联合鉴定通过,曹老师和我还曾分别作了硬件和软件系统研制的总体汇报。从此以后,又进入了一个新的境地和时期。我们复旦人用创新和开拓,完成了一句铮言:“功成不必于我至,前拓才知境界殊”。

事后已经过几十年,实践证明当时探索的系统核心技术至今也是正确的。而复旦人对于研制计算机系统新体系,长期的一次次冲刺,先后集合如此多人,必然会是前赴后继的。在当时特殊的历史条件下,更加需要那种 “功成不必” 的实干牺牲和可贵的集体精神,才能达到 “前拓才知” 的更美好境界。

看看在世界上的最重大科技工程,正如我们所知道的,几十年上百年才一遇,都更加是一代代人在前赴后继的科技创新与研究。一代代科技先行者在 “功成不必于我至” 的奋斗中创造,人类进步则在一次次 “前拓才知境界殊” 中到达更加美好的前景,人类文明智慧才生生不息。重大历程,没有 “功成不必”,往往是无法 “境界特殊” 的。

在今天改革开放和发展引进的好时代,只有一样东西无法买到,大公司的核心技术。那是公司立命之本和商业秘密,甚至是国家机密,各国历来如此。我们几十年过来的历史,人们总有个疑问:当年为什么一提起研造计算机,我们复旦人都一次次前赴后继,如此执着?我亲历者,沉思良久。在当年特殊历史时代中,在没有奖金、批判名利的条件下,封锁闭塞缺乏资料,没有先例,但面对着世界科学的日益进步,我们一大批复旦人,其实是对处于复旦这种科学创造历史地位的一种自然的科学担当,即在祖国科学领域内的历史性责任的担当,其他真是别无所求。

当年,我们复旦人前赴后继,从 602 到 719 再到 753,这一次次冲刺,究竟冲上什么?刺向何处?其实,冲上的是自主创新之路,刺向的是核心科技深处;今天同样,面对创新转型发展,总会有一批真才实学的年青人涌现,去继续自主创新,向着核心技术冲刺!

 

周天爵编写于 2016 年 4 月

2016-10-08 10.45.56 周天爵老师近照