古希腊一个哲学家有这样一句名言——
人的知识就好比一个圆圈,圆圈里面是已知的,圆圈外面是未知的。你知道得越多,圆圈也就越大,你不知道的也就越多。
林鸿是在一本文学类的杂志上看到这句话的。
他对这句话的感触很深,所以印象也特别清楚。
他经常会不由自主地想起这句话,例如此时此刻。
显示器中,一个白色的小球,在显示器上不断地来回撞击弹回,四周都有白色的围墙挡着。
当小球和墙面撞击的时候,就会发生镜面弹射,并且音箱中会同时发出“咚”地一声响。
林鸿坐在苹果机面前,呆呆地看着显示器,眼神的焦点却不知道已经发散到了何处。
他从学校回来之后,脑海中就不断浮现着许文静问他的那个问题。
长大后,想要成为一个什么样的人?
这是他从来没有想过的事情,在此之前,他最大的梦想就是想一家三口团聚,自己能够像其他家庭一样,过上正常的生活。
不过他从来没有对自己的未来有过什么展望。
像其他同学那样,梦想成为科学家?画家?音乐家?
亦或者像徐爷爷那样连国家都重视的无线电专家?
他所接触到的职业还有厂长、武术宗师、军人、教师……
对于这些职业,他都没有什么太大的感觉,虽然有些是自己喜欢的,但却不能确定,是不是可以将其作为自己为之一生奋斗的目标。
他所知道的东西,就像是一个很小的圆,周围所能接触到的外界实在太小,以至于无法给出足够的信息,让他作出正确的决定和得到满意的答案。
林鸿并不知道,他此刻的状态,在心理学上,实际上是一个高层次“自我意识”认识反省的过程。
他开始意识到自己的不足,自己的缺陷,然后会有意识地去采取措施弥补这些不足。
一般情况下,如果没有人刻意引导,或者受到独特的刺激,这个过程是需要在二十多岁到三十岁的时候才能够出现的,在那个年龄阶段人的知识结构和生活经历都有了足够的积累,自然而然会产生这种“自我意识”认识和反省。
林鸿想了半天,始终无法得到想要的答案,于是只能暂时放弃。
“顺其自然吧。”
林鸿给了自己一个安慰,这句话是他师父经常对人说的一句话。
有些事情,勉强反倒不美,可能会造成相反的效果。
将这个心思放下,他开始继续红皮书。
除了显示器固件方面的内容,其他常见的外部设备固件代码和原理他也看得差不多了。
现在他要看的,是计算机里面最核心的部位——中央微处理芯片,也即cpu。
apple_ii采用的芯片是mos科技出品的6502芯片,这是八位微处理器,在问世时,是当时效能最强的cpu。当然,在苹果机问世时,它已经不是最强的了,实际上,刚开始做样机的时候,设计者沃兹尼亚克使用的芯片并不是6502,后来之所以改为了这个型号,主要是为了考虑节约成本。
6502的价格只有其他同类产品的六分之一甚至更低,但是性能方面却相差无几,甚至比别的公司的八位微处理器还要更快。正是由于这种无法忽视地有点,让很多计算机或者游戏机厂商最终选择了它作为cpu。
apple_ii苹果机就是使用这个芯片的伟大产品之一,另外一个比较著名的产品,就是任天堂的家庭游戏机,俗称红白机。
中央处理器,被称作计算机的“大脑”和“心脏”,这并不是随便叫的。因为计算机中所有的执行和计算,都必须通过cpu来完成。
所谓计算机的可编程性主要是指对cpu的编程,只不过平时针对它的操作,被层层封装隔离,使用高级语言的程序员,甚至不用知道cpu的存在以及其具体运作原理,只要编写“1+1”这样的计算等式,然后执行编译就会出现结果。而实际上,在那察觉不到的一瞬间,这其中经过了一个非常繁杂的过程。
首先编译器要将程序编译为计算机能够理解的机器语言,然后开始将程序交给cpu来控制,经过提取、解码、执行、写回……等一系列的动作,最终计算出结果,然后再将其显示在显示器中。
这个过程虽然繁杂,但是速度非常快,计算机刚刚诞生的那会儿,速度可能和用算盘计算差不多,但是到了现在,已经只是一瞬间的事情了。
小小的一块芯片里面,蕴含的东西却是非常多的。
在以前,cpu是使用继电器之类的基本开关元器件来实现的,这些元器件不但体积庞大,而且不可靠,很容易破碎。真空管的出现逐渐代替了继电器,直到后来晶体管的出现才是cpu技术的第一次飞跃。
集成电路将大量的晶体管都集中在一个小小的芯片上,大大缩小了cpu的体积,并且不容易损坏,稳定性也得到了极大的提升。这个时期计算机才真正有了走向千家万户的可能,微型计算机应运而生。
红皮书中,对6502的介绍非常详细,大到cpu芯片各个针脚的功能和作用,小到累加器、指令解码器以及各种各样的寄存器的详细结构都配有详细的插图。
这些插图,全部是手绘的,原作者正是苹果公司的天才计算机工程师沃兹尼亚克。
连线条都有些弯曲的手绘图形出现在计算机手册中,这要是在今天,会给人一种非常不专业的感觉,但是在红皮书出版发行的时候,正是这些手绘插图让全世界所有计算机爱好者和研究人员为之痴迷。
可以说,apple_ii完全是为了计算机爱好者而设计的,包括红皮书,也是为这些专业人士而撰写的,因为其设计者是伍兹尼亚克,一个纯粹的技术人员。
不过苹果公司的ceo乔布斯对此意见很大,他并不是技术人员,他也不希望使用苹果计算机的用户仅仅局限于专业人员和计算机爱好者。
这不是乔布斯想要的产品,所以此后苹果公司后来陆陆续续推出了很多版本其他类型的计算机,不过却一直无法超越apple_ii,并且由于过于保守,最终让公司陷入了面临倒闭的危机边缘,直到很久以后才重新崛起——这是后话。
林鸿对这部分内容看得尤其仔细,对照着cpu里面各部件的电路原理图,他在脑海中模拟着整个cpu的运算流程。原本他还以为自己理解起来会有一定难度,但是后来发现,他很顺利地就理解了整个cpu的运作原理。
算术逻辑单元、累加器、计数器、时钟发生器、寄存器组……
林鸿一方面惊诧于这一块小小的芯片上面竟然集成了这么多复杂的部件,另外一方面又沉迷在这些设计精妙的电路中无法自拔。
无线电台的元器件电路和原理,都是可以看得见摸得着的,可是cpu中的这些东西,却被封装在这么小的一块芯片内,只能通过外部的引脚对其进行操作,这不得不让林鸿感到非常震惊。
这就一个黑匣子,所有输入输出信号,全靠那几根针脚来实现,通过对针脚上面施加各种高低不同的电平电压,就实现了数据的处理和运算,这种巧夺天工的设计,不得不让人击节赞叹!
通过巧妙的电路处理,计算机科学家们发明了一种被称为“opcode”的机器语言,以此来对cpu进行指令控制,从而实现计算。
机器语言就是指二进制代码语言,是最低级最原始的语言,也是计算机微处理器可以直接理解的语言。例如“0000”表示让cpu加载程序,而“0001”则告诉它要存储东西了。
四位数,每一位都有两种可能,那么则可以表示2x2x2x2总共16种不同的操作。
16种操作在刚开始的时候还能满足需求,可是到了后面计算机的cpu越来越复杂,操作指令也越来越多,这已经无法满足需求了,于是便开始进行扩充,用8位或者12位二进制进行标示。
直接用二进制来编写程序,实在是太让人蛋疼了,满屏幕都是密密麻麻的0和1,眼睛都能看成斗鸡眼去。
后来有猛人们便想出一个法子,将二进制转换为十六进制进行处理,每四位二进制正好对应一个十六进制正好对应,这样就大大简化了对记忆以及输入量的要求。
再到后来,大家觉得记十六进制代码也是一件难以接受的事情,于是开始用字母单词的缩写来对应计算机的操作指令,机器码助记符和汇编语言便由此而诞生。
例如“mov”指令,就是英文“move”的缩写,意思就是移动,功能也是将一个数据从一个地方移动到另外一个地方。
这个指令很有用,例如想要在显示器上显示字母“a”就只要将a对应的机器语言“mov”到对应的显存位置上去,显示器上就会将“a”显示出来。
红皮书在这个章节里面,详细介绍了6502的opcode机器码,主板上的电路,就是对这些机器码的一个实现。
林鸿直到此刻才算真正理解了,为什么说计算机的世界就是0和1组成的世界。<e=《最强仙王》]
更新最快的武动乾坤