这是在公交车上胡思乱想的东西:计算机发展的各个阶段都可以找一些电影串联起来,《听风者》,《刺客联盟》,《达芬奇密码》,《致命魔术》,《源代码》越想越多,干脆写下来;

 

    '你的手机运算能力相当于阿波罗登月时NASA所有计算机运算能力的总和。但NASA把人类发射到了月球,你却发射小鸟去砸猪' 

 

   这个广为流传的段子在果壳上还有一个讨论:现在我们用的苹果手机的计算能力真的比当年登月时NASA所有计算机运算能力总和还要大吗?http://www.guokr.com/question/214134/

 

  结果让人惊讶,一方面感慨计算机硬件的发展,一方面惋惜未能物尽其用;在维基百科中追溯计算机硬件的发展历史相当有趣: 计算机硬件发展历史   早期的计算工具甚至可以回溯到结绳计数,“符木是一根木棒上刻有数字或符号剖成两半,双方各执一半,合起来以验真伪,中国古代朝廷就用这种东西传达命令或调兵遣将,如兵符、虎符”,随着机械技术的发展,机械类辅助计算工具出现了:机械技术装置比如 安提凯希拉仪器Antikythera Mechanism)再比如我们中国的算盘;

  小说"暗算"最近被翻拍成为电影<听风者>,在原著小说中其中提到了冯诺依曼 与 算盘

 

  1946年,黄依依以优异成绩被国民政府教育部保荐到美国麻省理工学院攻读数理学博士.有一次,著名数学家冯·诺伊曼来给他们开讲座,也许是有意想引起这位大数学家的注意吧,中间休息时,她从身上摸出算盘,戴上纤巧、朱红的假指甲,噼噼叭叭地打起来,一下把这位数学巨人吸引过来,看得如醉如痴的。一年后,在博士论文答辩会上,她再次见到这位大数学家,后者对她说:我有一个助手刚离开我,如果你今天的答辩依然像你的算盘术一样打动我,我将热烈欢迎你来做我的助手。后来,她果真做了冯·诺伊曼的助手,于是转眼成了世界数学界人所共知的人物。

  全文请看新浪读书:http://book.sina.com.cn/ansuan/2003-08-15/3/14696.shtml

 

  中国的算盘,滚轮式加法器,计算尺这些都是利用机械的物理特性完成运算.在<达芬奇密码><国家宝藏>中我们可以看到能工巧匠们利用机械原理制造的各种精巧的器械.在中国传统评书<三侠剑>里面提到贾亮的爹贾丁九曾经远渡重洋学习"西洋八宝转心螺丝"其实就是学习机械制造原理,这也算是先驱了吧

 

1725年,法国纺织工人鲁修(Basile Bouchon)为便于转织图样,在织布机套上穿孔纸带,他的合作伙伴则在1726年着手改良设计,将纸带换成相互串连的穿孔卡片,以此达到仅需手工进料的半自动化生产。1801年,法国人雅卡尔(Joseph-Marie Jacquard)发明提花织布机(Jacquard Loom),利用打孔卡(Punched Card)控制织花图样,与前者不同的是,这部织布机变更连串的卡片时,无需更动机械设计,此乃可编程化机器的里程碑。

 

 卡片存储信息这是计算机硬件发展的重要阶段,可以看到技术的发展如浪潮一般前赴后继;用织布机传递信息,这个熟悉么? 2008年安吉莉娜朱莉,摩根弗里曼出演的<刺客联盟>(又名:通缉令)就是用了这样的桥段

http://movie.douban.com/subject/1945336/

 

 

  对电的学习和控制使得计算机的发展前途一片光明,对于强大而神秘的电的探索,我们可以从<致命魔术>中窥见一斑,在魔术师的眼中电可以创造光影魔幻,在科学家的眼中电成为各种奇思妙想的催化剂,越来越多只有在科幻小说中出现的事物,慢慢走近我们的生活,而且脚步越来越快;

 

   电影<星球大战><阿凡达>中的全息投影技术在初音未来的演唱会上已经使用;电影<逃出克隆岛>中无处不在的触摸屏设计,现在触摸屏已经成为智能手机的标配;Google眼镜的发布让我们惊奇的发现<钢铁侠><终结者>那功能丰富的眼镜也马上要走近我们的生活了;而电影<源代码>仿佛为我们打开了另外一扇门,未来有更多的可能性!

 

 

  推动计算机发展的动力是什么?

  

  我认为根本原因还是人类对计算机的期望,简单讲就是可以存更多数据,可以算得更快!这样一方面不断发展计算机硬件,一方面是提速;这里的提速不仅仅是软件提速,每个发展阶段成为瓶颈的因素并不相同;

 

 

   SOSC单操作员单终端的时候,机器总是在等待人类的命令输入,人的输入和机器的运算速度不匹配;要提高效率就要把机器的等待减少,批量提交任务给计算机就可以了,由于批处理不再是处理单个人的单个任务而是多个任务,所以就需要把多个任务的程序以及数据进行隔离,这种隔离抽象就是"文件".

   批处理系统解决的是人机交互的效率问题,但是CPU和I/O设备运行是串行的,CPU需要等待I/O,这两者速度差异太大,于是出现了多道批处理.这两个阶段都取消了人机交互来提高效率;想知道程序执行的状态怎么办?分时系统出现了!

   学习Erlang的时候会遇到一个概念"软实时",这是出于对计算机响应时间有要求的场景.实时系统是指所有任务都在规定时间内完成的系统,即满足时序可预测性.实时系统并不是指反应很迅速的系统,实际中实时系统通常是反应很快的,这只是实时系统的一个外在表现.软实时是指在规定响应时间内没有产生的结果的后果是可以承受的.硬实时规定时间得不到响应后果是灾难性的.

 

  (未完 待续)

 

维基百科上更多精彩:

[1] 计算机  http://zh.wikipedia.org/wiki/%E8%AE%A1%E7%AE%97%E6%9C%BA

[2] 操作系统 http://zh.wikipedia.org/wiki/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F