您的位置:首页 > 其它

电脑世界的三棵树

2008-09-03 14:34 190 查看
如今电脑已经成普通人家的必备家电了。和其他家电一样,它的工作原理也并不复杂。实际上,电脑世界的基本组织方式非常有规律,这个看起来漫无边际的森林王国实际上是由三种不同种类的树所组成,而电脑这个怪兽以食树为生。
第一棵树:程序
电脑是吃“程序”的动物。数量最多的低矮的树就是叫程序的这种“树”。其实就是一堆你让电脑如何干活的指令。程序程序,“流程和顺序”。最初它可不是现在的树状,而是象面条一样的简单形状,只不过这些面条编好了号码,按顺序一根根送入电脑,直到今天,这种机器的最深处仍旧保持这种原始本性。最初的程序真的象面条啊,上面打满小孔的长长纸带,由程序员托着喂入电脑。后来随着电脑运行的内容越来越多,逻辑越来越复杂,于是,程序由线状演变为树状,纸带变成磁盘。为了理解这点,我们先了解一下电脑的核心结构。
电脑的“哲学”根源。在电脑还没发明前,有个叫图灵的人就这样描绘了一种逻辑机器:如果一个机器能具备“顺序、分支、循环”这三种逻辑控制能力,则它就能实现任意复杂的逻辑判断,从而响应外面的信息输入而改变自己状态,后人称之为“图灵机原理”。(最原始的图灵机比这更简单,数据只接收0和1,逻辑结构只有如果和那么,这象自然界的单细胞生物)就象中国人爱说“人之初,性本善”一样,科学家们也爱给他们的发明物找个根源,并在犯迷糊时常回头念叨着这句原理。现在的程序员就是用这三种逻辑,才形成了构造“程序”这棵树的能力。如果说原子的概念使人认识到自身与自然界的统一,那么,“图灵机”的概念使人认识到自身的智能与机器智能的统一。
电脑的执行过程。电脑执行一个程序的过程很象动物消化食物的过程。动物消化食物先将乱七八糟的形状的大块食物,咀嚼成易于消化的小块,最后变成小分子的吸收物进入体细胞。源程序就是电脑最初吃的大块食物,程序员用“编译器”这个工具把源代码切碎成更小的碎块甚至直接成为小分子的“二进制代码”,以便放入电脑的胃“内存”或心脏“中央处理器”即CPU,至此,电脑完成了对程序的吸收,可以接受你对它的指派而干活了。而普通人所用的程序已经被加工成能直接“消化”的形态了,可以象葡萄糖一样被直接“吸收”而不用编译。
“程序设计语言”是一种电脑能理解的语言,按复杂程度分为低级、中级和高级。对于机器来说只懂机器语言,而对于人类来说最容易接受的是那些接近人的语言的“高级语言”,然而这些语言都有一个共同特点即是具有无歧义的“形式语言”,这最先由一个叫乔姆斯基的语言学家所定义,后人称之为“乔姆斯基”文法。在几十年前的反华浪潮中,这位可敬的学者公开表示支持中国人民的正义立场,值得我们怀念。
“编译器”是比操作系统更基础的软件,用它可以生产操作系统。编译器在程序源代码中按原先设定好某种语法树格式,搜索生成一个语义树,这个树的结构就表达了程序执行的逻辑。最后,再把这个树肢解,编号后顺序存放为一条条的机器执行代码。
电脑指令的DNA结构。电脑里面的最底层的指令是什么样子呢?这和我们下面的日常生活场景一样:
我到南山书城,买了三本书;
然后去了麦当劳吃了一个汉堡;
之后又去海岸城看了场电影;
最后回家。
基本格式就是语法逻辑中的“主谓宾”。
而实际的执行命令在电脑中的活动过程是这样地相似:
编号1 对象 动作 数据
这在现在的高级程序设计语言中是最基本的语法格式。
实际上,电脑中每个对象、动作和数据都进行了编号。而本质上,对象与数据是一个样的,就象“人”与“书”,都有可能充当主语。上面又简化为:
编号1 数据
编号2 动作
电脑的结构分类。现实世界中主要存在的两大类电脑就是按上面划分:如果数据和动作混在一起编号存放和执行,那就是“冯·诺伊曼”结构,这为你所见到的大多数大电脑所采用。若把动作即指令与数据分开存放,可轻易实现多个指令同时执行,这就是另一大类—“哈佛”结构,在你所见到的投影仪、交换机等设备的“另类”电脑中大行其道。
电脑中的数据和动作都可以用编码表示,实际上,电脑中的“复杂动作”被最终分解为加法以至逻辑操作这种“基本动作”,这些“基本动作”被设计成现成的电路,作为CPU的一部分被调用。动作和数据最终存储是“二进制”的,因为现有的工业技术最方便制造两个状态的电路来表示,就象生物界最容易实现四种类型的脱氧核苷酸一样。但不管对于人是多么不直观,但对于机器而言足够而直观。
电脑采用二进制也是受中国人传统学说道家的“八卦”的启发,这并不是一个传说。至于阴阳学说,那真是咱们祖先天才的设想和实践,是人类最早的数字化哲学,只是太超前了,就象爱因斯坦的理论,多年后才被证实。哲学的使命之一就是要超前,因为人类的所拥有的“证据和事实”这种资源永远有限,常常需要我们做出有勇气的设想和创新,才能突破这个资源的局限。
上面说了这么多,小结成一句话:程序语言是一种人能理解的树状数据,我们通过工具把它分解为机器能理解的已编号条状数据。
程序的现状和趋势。程序语言是“造树”的工具,由于现在的程序越来越大,程序语言也越来越厉害。现在江湖上仍活着的有名有姓的语言都有上百种,最基础、最流行的分别是c和Java,还有许多有专长的语言,可视自己的情况而选用。这些流行语言无一不是外国人所创,挺刺激中国人自尊的。
为了解决语言种类太多所带来的麻烦,人们发明了一种中间软件,将语言格式在执行前转化成一种统一格式,如现在的Java和.net两大派别都是这么干的。而为了解决操作系统种类太多所带来的麻烦,人们发明了另一种奇妙的基础软件,它可以把多个操作系统装到自己“口袋”中运行。可见,程序世界也存在统一和割据的纷争。有趣而混乱的是,这两种软件目前都称作“虚拟机”。
近来程序世界发生了件惊天动地的大事,那就是软件的“免费和开放”,即“开源运动”的兴起。开源,开放源代码的意思,要求所有的程序源代码能自由交流,免费使用,这才符合软件的特点。“开源”已逐渐成为程序世界的新价值观,和Windows操作系统对着干的那个免费操作系统Linux创始人经常说,所有收费的软件都是可耻的,就象收费的性一样不道德。这场运动由来已久,但到现在终成波澜壮阔之势,“开源”已覆盖软件世界所有领域,以致于最大的软件公司微软哀叹最大的敌人就是 “开源”。看来共产主义先在软件世界实现,我们的知识产权体系走到了巨大变革的前沿,形势迫人去在新的价值观的压力下寻找新的经济模式和法律秩序。
程序“树”的世界是喧闹而外露的,而另一种树则是比它隐蔽而内向多了。
第二棵树:数据库
曾有一位老兄说过“万物皆数据库”。面对如此绝对的说法,我长久以来寻求它的反例,却越发觉得它的正确性,宛如万有引力般地存在于这世界的所有角落。先说说电脑中的数据库。
模块化了的数据聚集而成库。你所能见的文件系统是数据库;Windows注册表是数据库;运行时的内存是数据库—而这已把电脑中的一切都包括了,我们所用的每一台电脑其实都是一套数据库系统。更巧的是这些都是树状的数据。数据库的结构决定了数据的保存,数据库的保存策略,又决定了它的另外四种操作“增删改查”。因此,“数据结构”成为计算机专业学生最重要的一门功课。关于树状数据的的处理,有很多方法,甚至有的算法直接用树作名。如数据传输中所用的哈夫曼树算法,其实是以树来描述它的压缩判断流程,其他行业甚至日常生活中经常会用到类似的处理。而现有的数据库产品无不以支持B树的结构存储为骄傲。在网络互联中,节点设备中的路由表也常用树状的数据库存储管理。而我们最流行的关系数据库虽为二维的表结构,但常用来表示树状的数据,当然需要给二维的条状数据作树状化的编码,这与上一节中程序的编译过程类似。在目前方兴未艾的面向对象编程的软件技术潮流中,实际上也普遍存在着把初始的二维关系数据转化为树状的对象数据的过程。
从上面可见,在数据库的世界,树状结构的血统是多么兴盛。树是各类基本数据类型复合体、集大成者。更大一些说,从生物界到人类社会,无不是以树为组织形态而存在。因此,电脑里大量使用了树这种结构的数据就一点不奇怪了。
值得一提的是与数据库休戚相关的存储技术的发展。由于存储技术的发展,再加上令人生畏的“中国制造”的低成本,硬盘、光盘和内存性能越来越强,价格却直线下跌,现在都卖成白菜价了。一张DVD刻录盘才一块钱,而一个2G的U盘不到100块,真的比纸便宜不知多少倍,看来热带雨林有得救了。有人估算,按现在这个进步速度,以后大脑里的内容都能装到硬盘里去。
在数据库产品方面的竞争如今只剩下那么几家,中国倒是也有自主产品,不象编程语言方面那样惨,然而仍旧差距巨大。好在如今赶上了好年头,兴起了开源运动,可以直接与最新技术接轨。以我之见,国家应将对开源的支持上升为国策,将每年几百万的大学生的毕业设计都设计成开源方式,一届届承接下来,那些以前仅作为习作的东西必有惊人之作。
最后一棵大树:互联网
这是迄今为止我们所能遇到的最伟大的一棵树,它的叶最茂,枝最多,简直象极了小鸟天堂中所描述的那棵大榕树。为什么说这个网状的东西是树呢?因为目前的互联网络仍不是对等网,网络中的每个节点的地位是不平等的。全世界的最重要的几个根目录服务器都在美国。因此,从侧面看它仍是树。当然,你从高空俯视,它的的确确是一张网。为了争得网络世界的彻底自由,全世界的网民都在骂美国政府独裁,应把根服务器的控制权交给国际组织,然而这些努力就象呼吁停止伊战一样无力。毕竟人家是互联网的缔造者,有着先天的优势。
转机随着下一代的互联网逐渐成形而出现。以IPV6为基础的下一代高速互联网不但速度惊人,而且网址更多(有人形容为可以将地球上的每一块石头编个网址放在互联网上),通讯真正对等,上网者IP象现在的手机号一样唯一,根本上扫除了安全性痼疾。令人振奋的是,中国在这个决定性的升级中抢位成功,一跃成为IPV6网络的领先国家,这一回咱们的后发优势发挥得淋漓尽致。
互联网起源于美国军方的一个“九头鸟”式的网络计划,目的是战时能够使通信网络在一部分受损的情况下仍能保持联络。后来政府决定将其提供给民间使用,就是这一决定开创了人类一个新纪元。这也形成了美国文化中最具征服力的一部分,而反观那种飞机舰炮硬武力,却成了美国最失败的征服工具。
网络通信原理。原理性的东西大都很简单,计算机通信也如此。如果世界发生了核战,所有的电子通信设备都毁坏了,这时候我们就会看到文明的嘴巴中露出的牙床,一套最原始最基础的通信网络“邮政”系统:你把一封写有地址的信件交给了邮局,邮局再分发给其它局或者邮递员,再递到收信人手中。这一过程中,有几个要素:发信人,收信人,信件、邮局、投递。而真正的计算机通信中也离不了这个模式,只是叫法不同。例如,网络通信中,有发送方和接收方,传递的数据信息,叫数据包,并且是化整为零分批传递,所用的打包、拆包和运送包的规定叫“通信协议”。不论现代化的通信如何发达,邮政这种最基础的通信手段须长久保留。在现代战争中,一旦双方的发生电子战,所有现代通信手段均不堪用时,最古老的东西则显示出价值来了,所以,现在部队又恢复了“号手”这个岗位。例如这次地震救灾中,许多情况下都要靠腿去走,靠手去挖。科技受时代所局限。
早期的互联网根本没想到有今天,因此象网页这类信息的格式很乱,网络世界漫天飞舞的页面,其实内容很难准确定位的,这也造就了象谷歌、百度这样的英雄。对于搜索引擎,互联网就是它们的数据库。现在新的网页技术已出现,即根据语义定义的页面。
空闲之余,我们常聊,“60”和“70”后一代人的青年娱乐记忆是录像厅和舞厅;“80”、“90”后一代的娱乐记忆是“迪厅”和“网吧”。随着3G无线通信的到来,无线互联网双将人们从室内拉到世界的每一个角落,又一种全新的生活方式形成在即。这次的美国总统大选,不少国家的网民在调查投票中表示了对奥巴马的好感,谁能说再过几十年不会真的通过网络去选举一个真实的总统呢。
而对于中国人来说,网络成为凝聚民族力量的又一纽带,它动员民众的效率越来越强。从某种意义上讲,网络使民众的整体行动能力骤然增强,使人的群体特性发生重大变化。对于这新的机变,我们的最高决策层保持着敏感。象不久前广东省委书记汪洋QQ开聊,到两天胡锦涛总书记在强国网上与网友交流,正是抓住了这一历史变化。正象互联网造就谷歌这样的新经济神话,互联网同时在造就一个政治和人文的新世界,它带给人的解放,打个比方:
就象深圳突然取消了户籍;而对于互联网,则是取消了国籍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: