本文介绍七种主流的操作系统
。从应用场景的大小依次划分为: 大型机操作系统,服务器操作系统,多处理机操作系统,个人计算机操作系统,实时操作系统,嵌入式操作系统和智能卡操作系统。
大型机操作系统是高端的系统,它们几乎要占用几个房间的大小,被用作数据中心,高端web服务器,大型电子商务站点。这些计算机最重要的特征是拥有强大I/O处理能力,或许它们会挂接1000块硬盘和成千上万的内存。大型机上的操作系统主要面向多个作业的同时处理,多数这样的作业需要强大的I/O处理能力。系统主要提供三类服务:(1)批处理(2)事务处理(3)分时。批处理系统处理不需要用户干预的例行作业,保险公司的索赔处理或连锁商店的销售报告是由批处理方式完成的典型例子。事务处理系统负责大量小的请求,例如,银行的支票处理或航线预订。每个业务量都很小,但是系统必须每秒处理成千上万个业务。分时系统允许多个远程用户同时在计算机上作业,如在大型数据库上的查询。
下一个层次是服务器操作系统,在服务器上运行,可以是大型的个人计算机,工作站甚至是大型机。它们通过网络同时为多个用户服务,并且允许用户共享硬件和软件资源。
多处理机操作系统,为了获得大量联合计算能力而将多个处理器连接成单个的系统。依据连接和共享方式的不同,这些系统被成为并行计算机,多计算机或多处理机。它们需要专门的操作系统,不过通常都是采用配有通信和连接专门功能的服务器操作系统的变种。接着是我们经常使用的个人计算机系统,它们为单个用户提供了良好的接口,主要是文字处理,电子表格和网络访问。
另一类操作系统是实时操作系统,这些系统的特征是时间为关键参数。比如汽车装配线上到了某个时间点就需要切割,如果早了或晚了就会损坏汽车。如果某个动作必须绝对的在规定的时刻(或时间范围)内发生,这就是硬实时系统。在软实时系统中,要求没有硬实时系统严格,偶尔违反最终时限是可以接受的。数字音频或多媒体系统就是这类系统。VxWorks和QNX都是知名的实时操作系统。嵌入式操作系统不是一般意义上的计算机,而是像电视机,微波炉或移动电话一类的设备。它们具有某些实时操作系统的特征(电话通话),但是由于在外形大小,内存以及能耗方面的限制,使它们自成一类。
最小的操作系统运行在智能卡上,智能卡是一种包括一块CPU芯片的信用卡设备。它具有非常严格的运行能耗和存储空间的限制。有些智能卡是面向Java的,其含义是在智能卡的ROM中有一个Java虚拟机(JVM)解释器。Java应用小程序被下载到卡中并由JVM解释。有的卡可以同时处理多个Java小应用程序,这就是导致了多道程序设计,并且需要对它们进行调度。
智能卡是将具有存储、加密及数据处理能力的集成电路芯片镶嵌于塑料基片上制成的卡片。智能卡的硬件主要包括微处理器和存储器两部分.智能卡内部的微处理器多采用8位字长的CPU(当然更高位的微处理器也正在开始应用)。微处理器的主要功能是接收外部设备发送的命令对其进行分析后根据需要控制对存储器的访问。访问时微处理器向存储器提供要访问的数据单元地址和必要的参数。存储器则根据地址将对应的数据传输给微处理器最后由微处理器对这些数据进行处理操作。此外智能卡进行的各种运算(如加密运算) 也是由微处理器完成的;而控制和实现上述过程的是智能卡的操作系统COS。卡内的存储器容量由只读存储器ROM、随机存储器RAM和电擦除可编程存储器EEPROM组成。其中ROM 中固化的是操作系统代码其容量取决于所采用的微处理器;RAM 用于存放操作数据容量通常不超过1 KB;EEPROM存储智能卡的各种信息如加密数据和应用文件等容量通常介于2 KB~32 KB之间(这部分存储资源可供用户开发利用)。
智能卡是硬件的便携部分,它必须借助于其它设备才能获取对某种显示设备或是网络的访问。这种设备通常称阅读器,阅读器使应用程序能够从智能卡接收或是发出命令。在市场上有许多种类的阅读器,其中最为流行的是serial、PCCard和keyboard模型。智能卡一般通过两种方式与阅读器互通信,一种是接触智能卡:当智能卡前端的芯片与阅读器相接触时,两者之间才传递信息。另一种是无接触智能卡:这种信息传递通过天线来进行,省去了手工插入或拔出智能卡的动作。当卡靠近阅读器,信息就传递并自动进行读取。参考无线智能卡的读卡方式:系统由卡、读卡器和后台控制器组成。目前较为常见的是RFID被动式标签。其中没有内部供电电源,内部集成电路通过接收到的电磁波进行驱动,这些电磁波是由RFID读取器发出的。当标签接收到足够强度的讯号时,可以向读取器发出数据。这些数据不仅包括ID号(全球惟一代码),还可以包括预先存在于标签内EEPROM (电可擦拭可编程只读内存)中的数据。(另外可参考:系统由卡、读卡器和后台控制器组成。工作过程如下:读卡器将载波信号经天线向外发送;卡进入读卡器的工作区域后,由卡中电感线圈和电容组成的谐振回路接收读卡器发射的载波信号,卡中芯片的射频接口模块由此信号产生出电源电压、复位信号及系统时钟,使芯片激活;芯片读取控制模块将存储器中的数据经调相编码后调制在载波上,经卡内天线回送给读卡器;读卡器对接收到的卡回送信号进行解调、解码后送至后台计算机;后台计算机根据卡号的合法性,针对不同应用做出相应的处理和控制。)
中国人传统观念中,对宗族的照顾,不是暂时性的责任
,也不仅是道德上的义务,而有其深刻的社会经济和历史的背景。古代的中国不是一个纯粹的封闭性社会,在那样的社会里,各种职业基本上出于世代相承。然后它所给予人们选择职业的自由仍然是不多的。一个农民家庭如果企图生活稳定并且获得社会声望,唯一的道路是读书做官。然而这条道路漫漫修远,很难只由一个人或一代人的努力就能达到目的。通常的方式是一家之内创业的祖先不断地劳作,自奉俭约,逐步积累,首先巩固自己耕地的所有权,然后获得别人耕地的抵押权,由此而逐步上升为地主。这一过程常常需要几代的时间。经济条件初步具备,子孙就得到了受教育的机会。这其中,母亲和妻子的自我牺牲,在多数情形之下也为必不可少。所以表面看来,考场内的笔墨,可以使一代清贫立即成为显达,其实幕后的惨淡经营则历时至久。这种经过多年的奋斗而缺德的荣誉,接受者只是一个人或至多几个人,但其基础则为全体家庭。因此,荣誉的获得者必须对家庭负有道义上的全部责任,保持休戚与共的集体观念。黄仁宇教授的这番话很是精辟。一个人的精力有限,不可能在没有满足自己基本温饱的情况下,还有足够的心思去读书;如果要读书,读好书,必须付出大量的时间去钻研,而在学习的时候,是无法分神去做其他谋生的行当的。很少有人能将学习和谋生同时进行,虽然现在的社会上有很多在职教育和自学,这和我刚才提出的观点相矛盾,但是我们仔细想想,这些在职教育和自学中出来几个学问大家?这些都在职和自学的人,更像是在修复自己的知识系统,而不是在向深层次的挖掘。在中国古代,甚至是现在有些条件不好的家庭,孩子都是父母亲的“希望”。自己无法实现的,就希望能创造条件能让孩子去尝试,其实是圆的自己的梦。这是无私,还是自私?孩子从小就担负着“回报”的思想,努力学习的目的就是为了出人头地,不辜负父母。这样的学习是功利的,缺乏创造性的。而且一旦这种观念一代代传下来,对孩子的思想就会形成桎梏。条件不好家庭出来的人,在取得一定的社会地位后,首要的是照顾自己的家庭,好像如果不这样做,就会遭到家族的谴责。“光宗耀祖”是做到了,那么自己独立的理想在哪里?人们无法去把这个问题回答清楚,因为它累计了几千年,而是能跨越各种地域。于是,他们只能去用同样的思想去教育自己的后代,在这样期待后代保持和自己统一的思想挂念的情况下,变态地印证自己所作所想的是由正当理由的。另外,陈世美之所以遭到世人如此唾弃,原因之一在他喜新厌旧,但是古代抛弃糟糠之妻的人那么多,为什么非要拿陈世美当典型?我认为,陈世美抛弃秦湘莲,先把道德上的正确与否抛开,他的做法已经破坏和违背了中国传统的回报价值体系,所以传统的道德体系对陈世美展开强大的反击。
这是一种什么样的神秘主义思想
呢?它又属于哪个时代呢?如果假设中国和印度雅利安印度思想之间曾经有过直接的联系是件极为或然的事情,那么它们两者共同拥有并且保持下来的东西必然是一种属于原始神秘主义思想的东西。如同我们已经确定但是无法证明的一样,原始人的思想方法无论在什么地方,在什么时代都是相同的。今天还存在着的原始民族还生活在与他们先民同样的世界观中。史怀哲博士的这段话,我觉得可能是基于他当时对非洲的考察,看到尚且处于原始社会的部落在思想方式和思想范围上有较大的相似性,比如食物和图腾崇拜。这些是原始社会的特征,从反证的观点看,如果某部落突破了这种相似性,那么他就不属于原始社会了,而我们讨论的范围只是原始社会。
印度雅利安和中国思想可以追溯到极为远古的时期,两者有着共同的特征:它们当中原始的思想成分与其他思想不同,并未被剔除多少,也并未停止继续发展。而且原始思想的成分并不是简单地被保存下来,而是得到了发展。所以这就导致了雅利安印度和中国思想中,在可追溯至远古的自然思想方法外,还存在着由原始神秘主义发展而来的神秘主义思想。意即包括思想和它发展后形成的新思想,两者是同时存在的。
存在一种原始的神秘主义?它是什么样的?原始神秘主义,泛泛地说意味着人们并不像宗教信仰一样(保持和超自然的距离并顶礼膜拜),相反他们认为这并不是一种陌生的东西,并试图去接近它。(宗教中人对神是敬畏的,人永远不可能变成神;而在原始神秘主义中,缺少这种敬畏,认为人是可以接近神,变成神,甚至是超越神的。)在高级的神秘主义中,人们认为本身的本质与普遍存在的本质有着一致性。所以他们要通过与永恒的存在的深层次联系来体验自身的存在。人们自身和本质和其他的外物的本质是一样的吗?为什么事一样的?因为我们观察所看到的和经验判断的结果而得出的结论?那么我们观察的方法本身有没有问题,是否开始就存在偏向性和确定性,更不要说屡屡误导我们的经验了。原始社会阶段的人们无法证明这些,他们只能通过神秘主义这种方式来解释原因,并作为自己主张的理论基石。久而久之,真正的基石并不明确,而最开始的楼层却被人们认为就是基石。
原始人,包括今天的那些,不仅相信存在鬼神,还认为存在一种超越这些一切之上的,非人格化的力量,这在宗教学上用一个美拉尼西亚语词汇“超自然力mana”来命名。它并不是指一种支配世界变化发展进程的强力。因为原始人还没有产生存在的总体性的观念,也还没有去面对自然现象变化发展的问题,但他们认为,如果能成功推动这种力量,它就能产生作用。这或许就是原始部落祭祀神灵的原因,希望能推动这种力量的出现。根据原始人的信仰,人如果懂得必须的有效魔法仪式就可以和神力产生关联,从而获得超自然的力量。这种最古来的魔法神秘主义不是公有的精神财富,而是魔法师、萨满巫师以及医生们的秘传,只有这些人才拥有关于具有神奇力量仪式的知识。他们守护自己的秘密,只有他们当中的人才能具有体验和神力合为一体的能力,对于其他人来说,这仅仅是一种道听途说的东西。所以在今天的原始人当中,能够达到某种超自然能力的魔法仪式仍然是有那些专门属于能够得到秘传法术的圈子的人主持的(祭司)。
这种原始的神秘主义和宗教没有任何关系。像这样的对超自然的设想还不能构成宗教。对于宗教,即使是原始宗教,也需要通过人进入超自然的关系来确定人的思想和行为。这在原始神秘主义中是不存在的。它是以人面对超自然的全然非精神话的行为为前提的。人感觉不到对超自然的敬畏,相反还想能够驱使超自然力量,甚至敢于去拥有超自然的力量。类似于虔诚的东西在原始人那里也是没有的。我是一个至今没有宗教信仰的人,可以说在精神上和原始人有很多类似之处,有些情况下,我确实会自然产生一种希望自己拥有超自然力量的想法。我缺乏对大自然的敬畏,更不要谈对人生的虔诚。那种希望变得强大的神秘主义,与人们对世界和自身存在的思索(比如宗教)是两码事,前者只是需要获得超自然的能力,而后者则是认识存在的某种世界观。
非常奇怪的是,在印度思想中存在
的两大潮流在中国思想中一样存在。以自然的方式看待世界和对生命和世界的肯定的思想在中国古代经典文献,比如《易经》(变化之书)《书经》(文献之书)《诗经》(诗歌之书)以及《礼记》(习俗之书)中都有体现。这些文件展示了公元前2000年中国的精神生活。在他们的基础上产生了Konfucius(公元前551年-479年)的学说,即我们所说的孔子。与我们在吠陀赞歌中看到的古印度对生命和世界的肯定思想相比,中国思想的不同之处在于它是成熟的,并且有着非常鲜明的伦理学的特征(君臣父子长幼)。这当然和中国至少在吠陀赞歌产生的1000年之前就有非常繁荣的文化有关。另外印度不得不接受一种外来的文字(闪族文字),而中国自古以来就一直使用自己的文字。
印度神秘主义中的内容与婆罗门合为一体对应于中国思想中有关与道合为一体的神秘主义。这些见于老子(公元前570年-490年)的《道德经》以及列子和庄子的著作中。和婆罗门神秘主义一样,道家神秘主义也是成熟的思想。从形式上看,它已经和后世任何一种神秘主义哲学一样完善和深刻。道和婆罗门一样,被视为是存在的根本原因。但道并不像婆罗门那样是纯粹的、不变的永恒存在,而是被理解成为在一切现象中起作用的力量。另外,道家的神秘主义也没有像婆罗门教那样走向对生命和世界的否定。他们只在这样的程度上拒绝世界:人不应该影响自然(无为)。
婆罗门教和道家都提倡无为的原则。婆罗门教从对生命和世界的否定出发,而道家选择了一个奇怪的内部充满矛盾的立足点:一方面他们对生命和世界肯定的观点,另一方面他们又放弃对客观世界的应有的影响。古印度和古中国思想的又一个共同点在于,它们个中包含的古老思想以不间断的方式延续着。它们没有发生质的改变,只是按照它们当中本来的因素继续发展着。(道家思想没有发生质的改变?如果改变,还是不是道家?)伊朗思想的发展由于查拉图斯特拉给予了它一个新的方向而受到影响。同样的,先知们使犹太思想改头换面(基督教/天主教)。在希腊哲学中,人们完全的重新树立一种全新的思想,它与以往的毫无关联。如果一定要谈当下思想发展的状况和原始思想之间还存在关联性的可能,那么就只能在古中国和古印度思想当中找寻了。
在古中国和古印度思想中存在许多让人惊讶的事实。在以自然方式对待世界和以对生命和世界的肯定的出发点的思想之外,两者又都是非自然的思想,又包含了一种遁世的神秘主义。两种截然不同的思想方法和平共处。那种自然的思想方法是民众的,另外那种非自然的思想方法尽管提出了胜过自然主义思想方法的要求,但仍然只是局限在一个小圈子里。可是为什么在这两种思想中会在自然思想旁边产生出非自然的思想,对生命和世界的肯定的世界观下而出现遁世的思想呢?好比一个人教导别人要积极,而自己却同时有着消极逃避的观点。这岂不是很矛盾吗?为什么会在同一个人,同一种思想上出现这样的矛盾?
而且这还是一种非常古怪的遁世思想。希腊思想在它的后期发生了转变,开始背离其原本认为理所当然的对生命和世界的肯定观,因为它失去了证成以及坚持这一观念的信心,并开始怀疑世界。而婆罗门教和道家的神秘主义却是以一种非常特别的方法遁世。它并没有因为认识到无法证成对生命和世界的肯定的世界观而放弃现实世界,而是寻找了存在一个超越现实世界的更高层次的高尚存在。他们并没有消极的放弃,走向于现实社会的对抗面,而是希望将精神寄托在一个现实社会之外的“超越层”,这确实也是一种奇特的遁世方式。所以说婆罗门教和道家并不是对现实绝望,而是不想理会现实社会,因为他们对现实世界并不感兴趣。
为什么会产生超越现实世界的高尚存在的思想,并使人们自豪地采取一种弃世的态度呢?如果解释人为什么不愿意去理会现实世界的问题呢?人们也许会想,古中国和古印度思想如此相似的事实和对应的问题一定会引起人们极大的关注,然而非常奇怪的是,实际情况并非如此。人们迄今为止完全没有过去过问它们,从来没有人注意过印度思想和中国思想之间的任何亲缘关系(远远不是西天取经那么简单,而是两种古老文明各自不断发展却有相似结果的现象)。人们只有从它们最基本的立足点出发,才有可能理解婆罗门和道家神秘主义产生和本质,并试图寻找上面矛盾的解释。
人们还一直想把老子的与道合一的神秘主义和婆罗门教徒与婆罗门合为一体的神秘主义思想理解成一种构想出来的哲学体系。但是要弄清楚他们是怎么产生这样的想法以及如何发展到这一地步的,却怎么也不可能。必须要弄清楚,是出于什么样的考虑促使他们放弃了面对现实世界的自然行为,而选择遁世的态度。然后就是关于这种非自然的思想是怎样从他们中间产生出来的,我们就一无所知了(自然产生的吗?)。他们的神秘主义思想从其形式和方法上都给人一种感觉:这不是他们自己创造,这只是对一种已经有了的东西的再发展。并且婆罗门和道家神秘主义之间具有如此奇怪的亲缘性的事实也只能通过猜测两者是从某种共同的早期神秘主义思想发展而来的来解释了。所以,现在的新问题是了解中国和印度古代神秘思想的起源和发展历程。
在达尔文(Charles Darwin)的著作
《物种起源》之后,德国的动物学家海克尔(Ernst Haeckel)指出了“个体重复发展”现象。他的意思是,一个胚胎(个体)重复物种(个体)的演化。换句话说,在卵子受精之后,一个人类的卵子在成为人类婴儿之前,经过了是鱼、是猪或其他物种的阶段。现代生物学家认为这是一种粗略的的简化说法,不过这个说法的内部包含有真理的成分。在计算机产业中有类似的情形。每一个新物种(大型机/小型机/个人计算机/嵌入式计算机/智能卡)似乎经历着它的前辈经历过的发展过程。
第一台真正的数字计算机是英国数学家Charles Babbage(1792-1871)设计的。尽管Babbage花费他几乎一生的时间和财产试图建造他的“分析机”,但是他始终未能让机器正常的运转,因为它是纯机械的,他所在的时代不可能生产出他所需要的高精度的齿轮和轮牙。Babbage认为他的分析机需要操作系统,于是雇用了世界上第一位程序员,一名叫Ada Loveplace的年轻妇女(她是英国著名诗人拜伦Byron的女儿)。程序设计语言Ada则是以她的名字为命名。
第一代计算机是在1945年-1955年间出现的,它们最初使用大规模的机械继电器,运行非常缓慢,后来被真空管取代。这些机器极为巨大,有成千上万根真空管,充满整个房间。同一个小组的人设计、建造、编程并维护一台机器。所有的程序设计是用纯粹的机械语言完成的,常常连线到插件板上以便控制机器的基本功能。通常的操作方式是程序员提前在墙上的机时表上预约一段时间,然后到机房中将他的插板放到计算机中。在此期间,他必须得祈祷几万根真空管没有任何一根出现问题(被烧坏)。后来插板被穿孔的卡片取代。此时计算机主要应用于数字运算。
第二代计算机(1955年-1965年)由于上世纪50年代中期晶体管的出现极大的改变了状况。计算机变得很可靠,厂商可以批量的生产并销售给最终用户,用户也可以指望计算机长期的运行。此时,设计人员,生产人员,操作人员,编程人员和维护人员之间第一次有了明确的分工。这些机器被称为大型机(MainFrame),被放置在有专用空调的机房里,由专业的人员操作。为了提高机器效率,批处理系统(Batch System)出现了。它首先会一次性收集程序员们的需求,然后输入执行运算的计算机系统,等到运算结束后,再批量的将运算结果输入。这一代计算机主要应用于工程运算,比如接微分方程。
第三代计算机(1965年-1980年)采用了集成电路和多道程序设计的思想。IBM公司的OS/360采用了小规模集成电路,成为当时的主流机型,与上代计算机相比,在性价比上有较大的提高。它们满足了当时大多数客户的需求,同时也使得第二代计算机几项关键技术得到了广泛的应用。其中最重要的是多道程序设计(Multiprogramming)。在上代的计算机系统中,如果当前作业因等待磁带或其他I/O操作而暂停时,CPU只能去等待该操作的完成。这样就必须采取措施提高CPU运行效率。解决方案是将内存划分为几个部分,每一个部分都存放不同的作业。当第一个作业等待I/O操作完成时,CPU转而去处理下一个作业。如果主存中能存放足够多的作业,那么CPU的效率将达到100%。不过要注意的是,在内存中同时存放多个作业需要特殊的硬件来对其进行保护,以免作业的信息被窃取或受到攻击。多道程序设计的思想后来导致了分时系统(timesharing system)的出现。分时系统中最著名的是MULTICS(MULTiplexed Information and Computer Service),通用汽车,福特和美国国家安全局一直使用到上世纪90年代后期才关闭他们机房中的MULTICS。
目前,公用计算服务系统的概念已经被遗弃,但是这个概念是可以回归的,以大量的,附有相对简单的单用户机器、集中式的网络服务器形式回归。在这种形式中,主要工作将在大型服务器上完成。而回归的动机可能是多数人不愿意管理日益复杂的计算机系统,宁可让那些运行服务器公司的专业团队去做。现在来看,Tanenbaum的预言有了初步的实现的迹象,比如近年来非常火爆的云计算/云存储等概念。
第三代计算机另外一个主要进展是小型计算机的崛起,以1961年DEC的PDP-1为起点。Ken Thompson,一位参加作MULTICS开发的贝尔实验室的科学家,在一台PDP-7上开发了一个简单的单用户版MULTICS,即后来的UNIX。这是计算机操作系统历史中具有非常重要意义的一件大事。
第四代计算机(1980年至今)随着大规模集成电路的发展,迎来了个人计算机时代。Intel在1974年推出8080处理器,后来Kildall受邀在上面开发了CP/M操作系统,该系统当时大受欢迎,Kildall取得了专利权并成立了Digital Research公司持续开发该系统。80年代IBM公司找到Bill Gates,请他推荐一个能在PC上运行的操作系统,Bill推荐了CP/M,但是Kildall并不热心与IBM的合作。最后IBM回过头来找Bill Gates,询问他是否可以接受开发操作系统的任务。Gates把握了这个历史上最好的机会,收购了西雅图一家计算机制造商(DOS),改名为MSDOS并与IBM PC捆绑销售,最后大获成功。而Kildall坚持硬件要为自己的CP/M所兼容,不愿意拓宽自己的视野和思路,导致CP/M在市场上迅速消亡和被MSDOS取代。
上世纪80年代中期出现了网络操作系统和分布式操作系统的雏形。网络操作系统与单机操作系统没有本质区别,它需要一个网络接口控制器以及一些底层软件驱动它,同时需要一些程序来进行远程登录和远程文件访问,但这些附件内容并未改变操作系统的本质结构。相反,分布式操作系统是一种传统的单处理操作系统的形式出现的,尽管它实际上是多个处理机组成的。用户不知道他们的程序在何处运行或他们的文件存放在何处,这些是由操作系统自动和有效的处理的。真正的分布式操作系统不仅仅实在单处理机操许系统上增添一小段代码,因为分布式系统和集中式系统有本质的区别。分布式系统常允许一个应用在多个处理机上运行,因此,需要复杂的处理机调度算法来获得最大的并行优化。网络中的通信延迟往往导致这些算法必须能适应信息的不完备、信息过时甚至信息不正确的环境。这个单处理机操作系统完全不同,对于后者,操作系统掌握这整个系统状态的完全信息。
谈到印度思想,我们习惯于理解的是在
印度定居的雅利安人。这些人在公元前1500年就从西方开始向印度河流域迈进,后来又占领了恒河以及亚穆纳河平原的大部分地区。雅利安(梵文ayra,古波斯文ayria),高贵的意思,是对中亚地区、波斯和东伊朗地区的印度伊朗人的称呼。从新近的一些考古发掘中获悉,印度北部的原著民曾经拥有非常灿烂的文化,然后它并未流传下来。可以推测出的是,当时的原著民已经拥有比后来的雅利安侵略者更为先进的文化。首先这些古印度人在公元前5000年时就已经有了自己的象形文字,它们和中国的汉字有着某种亲缘关系。几个世纪后,他们才开始使用文字。但是由于他们是国家的统治者,所以他们还处于蒙昧阶段的文化必然与原著民已经相当发达的文化发生碰撞,并成为主流。(根据wiki上的资料,雅利安人最早发源于俄罗斯南部的乌拉尔山脉附近的游牧部落,为了不断寻找牧场和水源,他们开始四处迁徙。开始时候到达小亚细亚,巴尔干半岛和希腊,后来东欧的雅利安人继续迁移到南欧,西欧和北欧各地。公元前2000年左右,雅利安人进入伊朗高原,还有一部分继续向东迁移,到达先进的印度北部,与当时印度北部的达罗毗荼人发生战争,600多年后雅利安人打败了原著民达罗毗荼人,在北印度建议了王国。这时估计是公元前1500年左右,也就是史怀哲先生在书中记录的年代。可以想象入侵的游牧民族当时在文化上是没有原著民先进的)
而南亚次大陆南部诸国的各民族则不同,他们并没有收到雅利安人的统治,所以原著民的精神生活还是得以保持。于是他们的思想和印度雅利安人的思想发生交流,受到他们的影响,也会反过来去影响他们。由此我们可以知道原著民的精神生活,并且能够确定,它的伦理思想比印度雅利安人的要更自然更生动,从它身上完全可以看到一个古老文化的影子。
如果我们审视为我们所知最古老的印度雅利安人思想的话,就会发现它并不是同一的。它内部包含了两种思想成分:一种是以自然的方式来面对生命和世界,对生命和世界持肯定的世界观;而另一种本质上则属于构筑在对生命与世界的否定基础上的神秘主义哲学。这种神秘主义是以与婆罗门(Brahman,梵,原意是祈祷和增大的东西)何为一体的思想为基础的。婆罗门被理解为纯粹的,不变的,永恒的存在,而由此产生和消亡的,存在于感性世界中的只不过是一个现象而已。
印度教的种姓制度将种姓分为四种瓦尔那,最高级的是婆罗门,从事教授吠陀经、祭司和接受奉献这三种工作。享有诸多特权,如不可受到处罚等。其次是刹帝利,与婆罗门共享“管辖一切生物”的权利。他们是战士和统治者,掌握实际的政治和军事权力,但被完全排除在完成的司祭活动之外,因此不具有宗教上的权力。此外,负有保护婆罗门的责任。第三级是吠舍。农民和牧民,任务是生产食物和提供各种祭品。可从事农耕,商业,畜牧和放贷的工作。最低级的是首陀罗,是没有人身自由的奴仆,负责提供各种服务。还有社会最底层的贱民,他们被排除在种姓体制之外。《梨俱吠陀》中所描绘的瓦尔那阶序为,婆罗门是人的嘴,刹帝利是人的双臂,吠舍是人的大腿,首陀罗是人的脚。贱民被排除在人的身体之外。
其中以自然的方式来对待人和世界的思想属于民众,而与婆罗门合为一体的神秘主义思想(梵我合一)则属于婆罗门教士阶层的思想方法。令人惊讶的是,这样一种古老的神秘主义思想并不是不成熟的,相反就其形式上达到了非常完善的阶段。印度雅利安人的民间思想我们可以从吠陀赞歌中了解到。从中可以看到,印度雅利安人在他们古老的时代就生活在自身存在的质朴的愉悦和自然的证实中。他们向赞歌中讴歌的神灵乞求成群的牛马,诸事顺利,获得财富,赢得战争和长寿。婆罗门神秘主义的基本思想见诸《奥义书》(Upanischad’s)中。
吠陀经(Veda)中的吠陀是知识的意思,它由很多部分组成。其中第一部是《梨俱吠陀》(Rig-Veda),它包含1028首赞歌。在吠陀赞歌中被歌颂最多的是阿哥尼(Agni),印度教的太阳神、因陀罗(Indra)和伐楼拿(Varuna)。吠陀经的其他部分《娑摩吠陀》(Sama-Veda)、《耶柔吠陀》(Yahur-Veda)和《阿闼婆吠陀》(Atharva-Veda),从形成年代上都比《梨俱吠陀》要晚。从它们的内容中可以看出,它们形成于雅利安侵略者达到恒河地带的时候。而《梨俱吠陀》中的赞歌则只涉及了印度河及其最大支流的流域内容。《娑摩吠陀》包括585个独立唱段的唱词,它某种意义上是一部宗教歌曲集。由于当时还没有乐谱,所以最著名的唱段唱词必须连同曲调一起记忆和表达。《耶柔吠陀》包括各种祭祀的重要礼仪和仪式。《阿闼婆吠陀》则是按照最早的拜火教士群体阿闼婆的名字来命名的。这是与查拉图斯特拉的拜火习俗相对应的,其中还有非常古老的以歌曲形式表现的咒语和誓言。奥义书是从一个动词“在某人身边坐下”派生而来的。它的意思是“可信的话语”。《奥义书》是公元前1000年-公元前550年之间产生的对四部吠陀经的解读,它被看成是吠陀经中暗含的奥义的某种秘密的揭示,实际上指的就是与婆罗门何为一体的神秘主义。《奥义书》之前还有涉及祭祀用语的意义的知识的《梵书》和《阿兰若书》(又译《森林书》,意思为从林中产生的观察)。四部吠陀经、《梵书》、《阿若兰书》和《奥义书》被看成是神圣的神意显现,并且千百年来一直是口头传诵。
雅利安印度人没有创造自己的文字,而是使用了一种闪族人的字母(这可能与他们从伊朗高原迁徙过来有关,因为古波斯语属于闪米特语系),这些可以从腓尼基人(北非的闪族人)的铭文以及摩押国王米沙的著名的石刻文字上可以见到。印度雅利安人古代的重要文献使用的语言是梵文,这是一种和古波斯语有着亲属关系的语言。今天它在印度的地位就相当于拉丁语在中世纪的地位一样(一种属于学术和宗教的专门用语)。婆罗门的思想世界被欧洲所认识首先是通过OUPNEKNAT。OUPNAKNAT这个词是通过肢解《奥义书》而获得的,在1656年被穆罕默德.达拉.沙科王子翻译成波斯语的60篇文章的《奥义书》节选本。
操作系统执行两个相对独立的任务
:1)扩展机器 2)管理资源。一般程序员并不想涉足硬件编程的具体细节,程序员需要的是一种简单的,高度抽象的处理。在磁盘的情况下,典型的朝向是包括一组已经命名文件的一个磁盘。每个文件可以被打开或读写,然后读写完毕,最后被关闭。诸如记录是否应该使用修整的调频记录方式,以及当前电机的状态等细节,不应该不出现在提供给用户的抽象描述中。于是,操作系统为程序员隐藏硬件的实际细节,并提供一个可读写的,简洁的命名文件视图。它屏蔽了磁盘硬件,并提供了一个简单的,面向文件的接口,操作系统还隐藏了大量与中断,定时器,存储管理以及其它与低层特征有关的细节。无论在哪种情况下,操作系统索提供的抽象都比底层硬件所能提供的更简单和更易于使用。从上述角度看,操作系统的作用是为用户提供一台等价的扩展机器(extend machine)或称为虚拟机(virtual machine),它比底层硬件更容易编程。概括来说,操作系统提供各种类型的服务,程序可以通过使用称为系统调用的特殊指令来得到这些服务。
上面把操作系统作看作向用户提供基本方便接口的概念,是一种从上而下的观点。按照另一种从下而上的观点,操作系统则用来管理一个复杂系统的各个部分。现代计算机包括诸多硬件设备,操作系统的任务就是在相互竞争的程序之间有序的控地控制对处理器,存储器以及其他I/O设备的分配。当一个计算机(或网络)有多个用户时,管理和保护存储器,I/O设备以及其他资源的需求变得强烈起来,因为用户可能互相干扰。另外,用户通常不仅共享硬件,还要共享信息(文件/数据库)。简而言之,操作系统的这一种观点认为,其主要任务是1)记录使用资源的情况,2)对资源请求进行授权,3)计算使用费用,4)为不同的程序和用户协调互相冲突的资源请求。
资源管理包括以下两种方式实现复用(共享)资源: 在时间上复用或在空间上复用。当一种资源在时间上复用时,不同的程序或用户轮流使用它。先是第一个获得资源的使用,然后下一个,以此类推。这方面的典型例子是处理器和打印机。当一种资源在空间上复用时,每个顾客都得到资源的一个小部分,从而取代了顾客排队。例如,通常在若干运行程序之间分割主存,这样每一个运行程序都可以同时驻留在内存。假设有足够的内存可以存放多个程序,那么在内存中同时存放多个程序的效率,比把所有的内存分配给一个程序的效率要高很多,尤其是一个程序只需要内存中一小部分的时候。当然,如此的做法会引起公平,保护等问题,这都有赖于操作系统去解决。
写到这里,我想起前些天看的《大明王朝1566》中的明朝内阁。如果把嘉靖皇帝看做是用户,百官臣民看做是底层各类硬件,那么内阁就有类似操作系统的作用。首先从用户态,就是从嘉靖的观点来看,管理内阁的几位大臣,远远比直接管理明朝两京一十三省的官民要容易。这些大臣就如同系统中的各项服务,皇帝可以用圣旨(系统调用)的方式来要求各项服务。对付皇帝而言,内阁就是所有资源的缩影(虚拟机),是方便统治的工具。那么从硬件态,即从普通官民的观点来看,内阁必须要处理好各个地方的资源计划及调配,解决各类争抢的冲突。为了达到这样的目的,在资源分配方面(用人)就因人而异: 比如海瑞这样清廉正直的官员,哪个地方问题比较严重,就派到哪里。问题解决后,再去其他的地方,这是时间上的复用;又比如有一个总督,他的工作就是处理各地的公文。这些公文由各地先呈报给总督的文书,然后文书再转交给总督。假设总督是处理器,那么文书类似于内存的作用。如果文书规定每天只收一个县或一个州的公文,那么就要乱套了;文书只能尽可能多的收集起来,请总督批阅,当然,如果这个文书做的好,他甚至可以帮助总督排好事情的优先级再送呈。总督不一定能在当天批阅完所有的公文,但是比起每天只批阅一个县的公文,(处理器)效率何止提高了百倍。这就是文书的空间复用。看来,历史知道多了,对于再次深入了解计算机系统也是颇有好处的。
北宋时期的猛将狄青,喜欢在战斗中披头散发
,戴一铜面具。在对西夏和平定广西侬智高的数次战役中,狄青战功累累,威名远播。据记载,在狄青率领大军打败侬智高并进驻邕州(现南宁市)时,宋仁宗狂喜之下说道“速议赏,缓则不足以劝矣”。狄青升至枢密使,这是宋朝武将中最高的官衔,当时可谓位极人臣,显赫一时。可是在四年后,狄青被迫引退,并被外放到陈州(现河南省周口市淮阳县)任知府。一年后在“惊疑终日”中郁郁而终,年近四十九岁。为何一代名将落得如此下场?千军万马之前都未胆怯退让,为何在高官厚禄的优裕中却终日“惊疑”?这还得从仁宗庆历新政失败说起。在狄青出任枢密使的十年前,由范仲淹,富弼等大臣发起的庆历新政极大触动了旧官僚势力的利益,最后在强烈的反对之下新政宣告失败。范仲淹等人被称为庆历党人,他们不是遭到排挤,就是被外放。著名的《岳阳楼记》就是范仲淹在这个时期写下的。狄青是在宋朝与西夏李元昊战争中,受到韩琦和范仲淹赏识和提拔的,即有所谓的知遇之恩。范仲淹更是倾力培养,甚至亲自送给狄青《左氏春秋》,期待他成为宋朝的吕蒙。新政失败后,虽然范仲淹在朝中失势,但他培养出来的狄青仍然是当时北宋对付西夏的关键人物,所以狄青并未受到党争的影响,甚至因为军功的累积而不断晋升。在平定广西升任全国最高武官后,那些当初反对庆历新政的人发现狄青已经成为最大的威胁。他受到皇帝的宠信,手握全国的兵权,他有足够的机会和足够的权力去为恩师和朋友范仲淹等人去翻案。想到这里,这些人意识到必须将狄青整下去。最好的方法就是说狄青有反意,“以武臣掌机密,而得军情,于国家不便”,这是皇帝们最忌讳,尤其是宋朝皇帝最忌讳的。因为宋朝的开国皇帝赵匡胤原本就是武将出身,后来因黄袍加身而荣登大宝。先例一开,难说后面就没有武将依葫芦画瓢。于是,谣言就出来了,什么狄青家里的狗长出了角,狄青在什么什么地方穿了黄色的龙袍,件件事情都有鼻子有眼,由不得不信,尤其是在迷信的古代。传的人多了,传的次数多了,谣言就变成了证据,皇帝由开始的不信变成将信将疑,狄青的日子就变得不好过了。据说狄青在任陈州知府时,朝廷每半个月就派人前往仔细查问一次。当时南方已经安定,辽国与宋朝多年和平未战,西夏也在多年与宋朝的战争中大耗元气,无力发起强大的攻势。狄青已经不再是当初不可获取的人物了,他是被为是庆历党人的同伙和对皇帝构成威胁的人而必须被铲除。狄青读范仲淹送给他的《春秋》应该也有十几年了,不要说非常理解,至少也是熟读多次了,他知道主君疑心是多么的可怕,他过去显赫的军功都成为现在沉重的精神负担,“终日惊疑”就是可以想象的情形了。明朝文人杨维桢有诗叹曰: “宾州海月光团团,剑花火树烧烂斑。将军如内客未散,捷书已夺昆仑关。当时谏官疑武士,岂知办贼遽如此。於乎!铜面将军今岂无,世无承相庞公甘老死。”
计算机配置了一个称为操作系统的软件层,它
的任务是(1)管理所有的硬件设备,(2)并为用户程序提供一个较为简单的到硬件的接口。计算机系统可划分为硬件(物理设备-微体系结构-机器语言)和软件(操作系统-系统程序-应用程序)两大部分。最底层的是物理设备,包括集成电路芯片、连线、电源、阴极射线管以及类似的设备。接着是微体系结构层,其中的物理设备分组构成了不同的功能单元。在这层中有CPU的专用寄存器以及包括算术逻辑单元的数据通道。在每个时钟周期,CPU从寄存器中取出一个或两个操作数,并在算术逻辑单元中进行运算。其结果存储在一个或多个寄存器中。在有些机器中,数据通道的操作由称为微程序的软件控制,在另外一些机器中,相关的操作由硬件电路直接控制。
设立数据通道的目的是执行某些指令集。相关的硬件以及对汇编语言程序员可见的指令,构成了指令集体系结构(Instruction Set Architecture,ISA)层,这一层被称为机器语言。典型的机器语言有50-300条指令,大多数指令在机器里从事数据传送、算术运算和值比较的操作。在这个层次上,可以通过向特定的设备寄存器(Device Register)写入值来控制对应的I/O设备。
为了隐藏设备操作的复杂性,使用了操作系统。操作系统包括一个专门隐藏这些硬件的软件层,并且给程序员提供一个使用更为便利的指令集。在操作系统的顶层是其他系统软件,其中有命令解释器(Shell),编译器,编辑器以及类似的独立于应用的程序。重要的是,尽管这些程序通常由计算机厂商提供,但是它们本身并不是操作系统的组成部分。这一点很重要,也很微妙。操作系统通常是专指在核心态(Kernel Mode)或管态(Supervisor Mode)下运行的软件,它受到硬件保护以免遭到用户的修改。编辑器和编译器运行在用户态(User Mode)下。用户可以重新一个编译器,但是他无法自行编写一个时钟中断处理程序,因为这是操作系统的一部分,它通常由硬件保护,以防止用户试图对它进行修改。然而这一区分在嵌入式系统(没有核心态)和解释系统(基于Java的操作系统,它采用解释的方式而非硬件方式区分组件)中是模糊的,它只在传统模式的计算机系统中适用。(注:JNode是目前较为常见的一个Java操作系统)。最后,在系统程序的上层是应用程序。这些程序是用户买来或自行编写的,用于解决用户的问题。如文字处理,工程计算。
唐诗有云:”北斗七星高,哥舒夜带刀。至今
窥牧马,不敢过临洮。”这里的哥舒就是唐朝名将哥舒翰。安史之乱时,哥舒翰奉命接替封常清和高仙芝镇守潼关。据史料记载,封常清和高仙芝因为不肯贿赂监军边令诚,遭到边令诚的诬告“常清以贼摇众,而仙芝弃陜地数百里,又盗减军士粮赐。”最后两人被唐玄宗处死。封、高二人在唐军中战功赫赫,名望极高,玄宗如此之快的处决两人说明他又急又恨的心情已经到了极点,而封、高制定的扼守潼关坚守不出战略根本不合玄宗的心意。我不认为唐玄宗和他的大臣们都是愚笨无知之人,在斩杀两位大将后必然会暗暗后悔,对形势重新进行评估。姑且不论他们的分析结果如何,但是至少开始时急于反扑的心理已经开始发生了变化。哥舒翰带病去潼关上任,他是赞成前任防守待援的策略,我认为以他的经验,他在上任前势必会根据自己的经验向玄宗奏报一些自己对局势的分析和建议。此时玄宗也不可能拿着封高二人的事情来威胁帮助他守卫京师的哥舒翰,更可能是好言安慰和鼓励,所以,甚至很有可能哥舒翰从玄宗那里已经得到了某种授权和保证。后来,哥舒翰上任潼关后,据说受到杨国忠的屡屡催促,而“被迫”出兵进攻叛军。我觉得是不是“被迫”值得怀疑。杨国忠被认为是大大的奸臣,那么是不是奸臣所有的意见和建议都是错的呢?会不会有人故意把责任都推到杨国忠身上,而忽视作为三军主帅哥舒翰的责任呢?哥舒翰作为潼关守将,即便要调动大军进攻叛军,也必须做好各项准备和突然事件应对措施。当进攻不顺的情况下,守城部队还是有能力将地势险要的潼关保住的。据记载,哥舒翰在出征前料到此行必败,挥泪于军前;而出征后,哥舒翰在黄河船上看到对手崔乾佑人数较少,下令全军冒进追击,最后中埋伏被全歼于灵宝附近的山隘之中,哥舒翰本人也被俘虏。哥舒翰为什么要冒进?而且潼关到灵宝一线的地形十分复杂,四处是山,很容易设伏。久经战争的哥舒翰为什么要孤注一掷式用二十万大军追逐四千敌军?难道因为他要兑现出事前“必败”的诺言?结合哥舒翰被俘后立刻投降安禄山,这是不是哥本人的一种阵前投敌的预谋?哥舒翰如果真的是忠于唐玄宗,而且在万般无奈的情况下必须出征,也考虑到出征失败可能性较大,那为什么不能事先做好一些善后的措施,比如进攻保持缓慢的节奏,同时争取等待各处的援军,或者安排足够的兵力防守潼关?潼关是长安唯一的屏障,哥舒翰怎么可能不知道丢了潼关的后果是什么呢?即使被迫进攻叛军失败,只要能守住城等到援兵,局势就会有起色,这些哥舒翰应该都能想到。真相已不可考,大部分的失败责任都被认为是唐玄宗和杨国忠的急进,而哥舒翰的临场错误指挥和变节投敌却鲜有提及。我无意为杨国忠正名,而只是从另一个角度来看待题目中那位传说中的唐朝名将。