往生记-第6章
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
唯一区别就是机器差了一点,和梦中的单片机比起来也就差不多,单片机的操作系统更是精简,曹长久对这个更是拿手,以致于他还庆幸自己梦中做过。
至于系统的分时多任务特性就说来话长了,分时系统是在计算机发展早期提出的,当时的机器输入输出是一排开关加指示灯,后来先进一点了搞了打孔纸带输入。找一根硬纸带,两排孔,上边有孔代表一,没孔代表零,一个程序打老长,等纸带进去了再一按电门,计算机才开始算吧。算好了再突突的打孔,又是一段纸带出来了,人们再挨个数孔再换算成结果。所以那时候的计算机使用都要等待,计算机的运行效率也不高,大部分时间都浪费在输入输出上了,就是俗称的单人单任务。同一时间只有一个人能操作一个任务,当然没效率了。这就导致了分时多任务操作系统的诞生,那就是及其著名的,不可不知的UNIX。
发明UNIX的两位大牛可了不得,一位是Ken Thompson爷爷,另一位是Dennis M。Riche老大,尊称DMR。在1969年,当时还是计算机的史前时代,人们普遍认同操作系统是大型机的特征,小型机不可能运行操作系统,至于用高级语言来写操作系统,那更是痴人说梦。于是执着而睿智的K爷爷与D老大怒了,为了能在机器上玩游戏(这点任何计算机的前辈都深有体会),两人于1970年用汇编语言在PDP-7(一种小型机,比曹长久用的DJS-130还垃圾的多)上写了第一个版本的操作系统UNIX。尔后,71年K爷爷还用C语言(高级语言)将UNIX重新写了一遍,至今我等后辈真是高山仰止,叹服不已。
Unix的事情咱们以后再说,该说王所了。
王所这几天觉得好像忘了什么东西,人年纪大了,记忆里减退也是正常。六十好几了也不退休,还在主持着一项国家高性能计算机的研制工作,他实在忙不过来。
可他总觉得上面交代过一件重要的事情,怎么就记不起来涅?
想了半天终于有点印象了,胡秘书送来了一个学生到这里实习,自己还派了个人照应。不知道这小家伙怎么样了,王所想道。
王所原本认为长久干不了几天就会走人,哪里想到这小子居然就在仓库住下了,连鲁平这小子也跟着起哄。
越想越放心不下,这都一个月过去了,两人却音信全无,连面都不见了,自己得去看看,王所心想。
来到了仓库门口,王所就听见了里面噼噼啪啪的敲击声。他点点头想,似乎这两个家伙都满勤奋的嘛。
王所没想惊动他们,所以就轻轻的走进去,站在了鲁平的后面,而鲁平一无所觉。
眼前看到的东西,让王所很有点惊奇,倒不是第一次看见显示系统,他只是觉得两个年轻人居然可以在小型机上做出这种成绩来是令人惊讶的。
“咳,嗯。”
王所轻咳一声,鲁平回头一看,站起来说:“王所,您来啦,您坐。”
“嗯,你忙,我就来看看。”王所笑着说,对有才华的年轻人他是非常爱护的,“那个小家伙呢?”
鲁平连忙答道:“长久昨晚调试了一晚上系统,回去睡觉了。”他可没敢说两人玩了一上午游戏的事情。
“哦?”王所略感讶异,“这个显示系统正在调试啊,有什么问题没?”
“不是这个。”鲁平连忙摆手,“显示系统早就做好了,长久同志调试的是一个磁盘操作系统,功能很强大,支持多任务多用户,我正在给他的代码补注释。”
“!?”王所大惊,十四五的孩子给小型机写操作系统,“给我看看代码!”
“……”看了半个小时外加操作之后,王所无语了,掉头对鲁平说:“你确定这是曹长久――那小孩写的?”
“这个,我也不清楚。只是他自己说花了两天写代码,调试了一夜就出来了。”鲁平搔搔头说,“这个有什么问题吗?”
王所摇摇头:“不管是谁写的,我很佩服写这个程序的人。爱因斯坦都说数学公式必须包含美才行。你看多么简练优美的程序语句啊,鲁平你得好好学学。”
“美?”鲁平茫然,这汇编语句有什么美的,不就是一行行的字符嘛。
“简单就是美!”王所下了定义。
“?”鲁平大惑不解。
“年轻人,你没看出来吗?咱们以前写没写过操作系统程序?”
“写过,013大型机的操作系统就是我们做的。长久这次写的系统虽然快速,但是功能不如我们产品。”鲁平的眼光确实独到,一眼就看出了问题所在。
“非也,在我看来,长久写的程序不但简练实用,还有一个更大的好处,就是可移植性。”王所感叹不已。
“难道您说的是……”鲁平似有所悟。
“不错,我虽然没有深入了解,不过就是看了一遍,曹长久写的程序至少分了几个部分。我刚刚找到了他的核心程序,那是直接契合硬件的,充分发挥了硬件系统的潜能,所以软件的运行效率才这么高。至于其他的代码,我猜是与硬件无关的,仿佛是自动编译的,其效率远远没有核心程序的高,但也相当可观。”王所不停的翻看着曹长久的原代码说。
“不错,您不说我还真没看出来,我就想着这几段代码就好像不是一个人编的,怎么差别这么大。”鲁平恍然大悟。
“依我看,除了核心这段代码是汇编语言写的,其它部分似乎是用高级语言写成后由机器自动编译的,问题是我从来没听说过高级语言可以用来写操作系统,看来这小子肚子里似乎还有不少货啊。”
十三
王所的眼光狠毒,一眼就看出了其中的关键。其实曹长久早在一年前就开始做复原C语言的工作了,只不过是在纸上而已。
以曹长久梦中所知,很难有比C语言更强大、更通用的高级语言了,所以他一开始就将C语言做为了主攻方向。
还好长久梦中是做编译器研究的,否则光知道C语言的语法规则还是白给,没有编译器依然是一场空。虽然是纸上作业,整个语言框架依然被他成功的复制出来了,并对其中的缺点做了改进。
在了计算所这段时间,长久则根据这部机器的硬件特性和指令系统重写了C编译器,终于大功告成。
有了C语言这把利器在手,曹长久如虎添翼,编写系统是水到渠成。虽然其间由于硬件限制,曹长久不得不压缩代码缩减功能,但依然成功使这个操作系统跑起来了,不得不说是一件大事。
虽然不大满意,但是对于这部机器来说已然是极限,曹长久也只好凑和用了。编写的过程中还有了一点自己的感悟。
在梦中感觉编写程序完全和现在不一样,不是语言的问题,而是整个编程的思想。硬件条件的限制和编译程序的研究不到位逼着人们去适应机器,每一步程序都要考虑如何最大化的提高效率。
而长久梦中的情况却是完全相反,充沛的源代码资源、突破的编译程序研究、相比现在几乎没有限制的硬件资源早已将人们编程的主要方向转移到了功能完备和兼容上去,效率问题则完全交给了硬件。
所以长久根本就瞧不起现代的大多数程序员,因为有了这些商业化的编程工具,写软件就成了搭积木,根本体现不了效率二字,甚至连创意也没有,所有程序千篇一律。
所以长久宁愿去做嵌入式编程也不愿用所谓的JAVA,套用一个游戏界的定义,大概长久就属于那一小撮“重度玩家”,追求极限,挑战机能,效率是第一位,对花里胡哨的界面和乱七八糟的功能深恶痛绝。他们把生成一个有效程序看作是一项复杂而又富有创造力的艺术活动。他们精力主要都花在克服当时计算机性能不足所引发的各种障碍上,所以他们对硬件都了如指掌,是一群艺术家。
可是世界上还是“休闲玩家”占了绝大多数,他们是消费的主体,他们喜欢漂亮的窗口可傻瓜化的操作,一鼠走天下,连ctrl-c、ctrl-v都不会用,软件运行速度不快就升级机器,却不知道当年操纵计算机的男人都是自己编写硬件驱动程序的。
曹长久有时间的时候也对自己的情况进行了思考,勉强找了一个词来形容自己现在的情况——穿越?可是似乎自己也没有清晰的记忆,完全不是一个人。
不过长久倒也没把这放在心上,有这些经历是一回事,过什么样的生活却是他自己的事情,没道理把这当成负担。
回首前身浮沉路,今日方知我是我。
所以曹长久想走一条自己的道路。
更难得的是,现在这个时代却是一张白纸,可以乱写乱画,这岂不是很有意思?
————————————————
王所下午也不回办公室了,和鲁平在仓库里一起研究代码,赞叹不已。他越看越清晰,也越疑惑,这系统明显是分了层次,有核心层、应用层等等,粗略的注释也表明了这个结构。核心层决定于硬件,代码量很小,包含着各种最基本的操作。
王所测试了一下,效率很高,典型的手工用汇编写的,这个没什么疑问。其他代码就差多了,在王所的这个老编译器程序员看来就是用高级语言写成再汇编的。
看出门道来了,问题是这个高级语言是什么,在哪里?王所本身主持开发过华夏各类计算机Fortran语言大型编译系统,深知其中利弊。
当时的计算机系统趋势是硬件越来越便宜,而花在编写软件和程序排错上的费用与时间是越来越高,每出一部新机器都要编写相应的软件,软件开发费用几乎占了整个系统的四分之三,最终爆发了软件危机。前苏联的计算机开发就是一个例子,老毛子的计算机开发硬件只有十几二十个人,却动员了几万人同时编写软件,祸国殃民,就如同联合收割机和镰刀的比拼。
如果说高级语言就是联合收割机,那汇编和机器码只能是镰刀了,于是“自动编程系统”应运而生。这实际上就是一种与实际机器有不同操作码的“人工计算机”,这种人工机比实际机器要容易编程,但是所有这些早期〃自动编程〃系统使用起来开销过大,通常它们会因此减低机器运行速度5~10倍。
早期计算机都是用来做科学计算,所以IBM就发明了Fortran,其英文含义就是公式翻译,对科学计算有着无与伦比的优化。
但是Fortran也有弱点,就是还有着机器的特征,就是说各家的计算机都有一套自己的Fortran编译系统,为自己的硬件优化,所以互不兼容。
曹长久的C语言就不一样了,他知道今后的计算机系统发展方向,不仅是科学计算,还有更大的系统软件市场。这也是日后C语言发扬光大的原因。
C语言别的好处没有,就是一个能控制硬件,在这点上当世无出其右者。因此C语言可以说是一个系统编程语言,万金油的干活。
王所就是不明白这一点,毕竟此时的C语言和Unix还在美国的大学实验室中流传,还没到广为人知的地步,因此二人一个下午每摸出头绪来。
晚上,王所回到家中,叫了两声“长久!长久!”,没人答应。王所以为长久又出去了,谁知道到房间一看这小子还在睡呢。
看来真是累了,王所心想,轻轻的给长久掖了掖被窝。
不料长久眼睁开了,迷迷糊糊的问道:“王伯伯,你回来啦,现在几点了?我好像睡过头了。”
——————羞涩的分割线——————
大梦无为,再挖新坑。几回想将入宫,没奈何筒子们催更的书评几乎天天有,越觉得自己的懒惰十分可耻。虽然心中安慰自己工作忙,其实写不下去是关键。终于沉寂了几个月,可见敷衍的态度要不得。
往生记新开,写好了大纲,现在正往下挖,因工作原因不敢保证什么,大家拿砖头砸就好,如果发现硬伤狠狠砸。
十分感动大家支持,居然跟着看。厚着脸皮请大家多收藏,最好带着宣传一下,小鱼自己没脸了,呵呵。
十四
王所:“醒了也好,起来吃饭了。”
现熬的稀饭,街上带回的葱油大饼,爷俩吃的很香。
王所问了曹长久系统的事情,长久想了一下,掐了头,只说了这是自己没事无聊的时候想的,目的就是做一个通用的系统语言,能够有强大的硬件操作功能,大概做了一年等等,并拿出了自己写好的C语言框架语法。
王所没说话,只是拿在手里一页一页仔细的翻。
长久不敢打扰王所,只好自己闷头喝粥,努力的品味这稀饭之中有什么玄机。
良久,王所放下了手中的草稿,奇怪的看着曹长久问道:“不能否认,这语言真的很强大,但你不会告诉我,你一生下来从无到有就会的吧。”
曹长久:“当然借鉴了其他语言修改的,具体甚么我也不记得了,只是小时候看过一本书介绍的是一种解释型语言,功能不够强大。后来没事我就试着修改