有关计算机的基本常识

   最近看了一本书叫做《编码-隐匿在计算机软硬件背后的语言》。一本很神奇的书,用通俗的语言讲非常难的一些东西。还有一本书《世界是数字的》,写给非计算机专业的计算机书。于是就想记录一下心得体会,梳理一下计算机组成的一些基本原理,有些是困惑我很久很久的东西。众所周知,计算机是由软件和硬件组成的。那么我们首先开始讲硬件。硬件的主要部分有 cpu 内存 硬盘 输入和输出。其核心就是cpu。本文并不想深入介绍某个东西,只是想带领大家理解一下基本原理,让大家知道原来是这么一回事。(部分内容直接摘自原书)

   编码

   编码就是交流。人与人之间的文字和语言就是一种编码,一种约定,但这种编码对计算机肯定是行不通的,因为它没有人类这么智慧的大脑。计算机以二进制编码为基础。我们做了一系列的约定:如八位表示一个字节,每种字符都有对应的二进制编码。哪里的位信息是指令,哪里表示的是声音,哪里表示的是图像。这都是由一系列规则约定好的,这些约定构成了人与计算机交流特有的语言。

   电池工作原理

   化学反应使电子聚集在负极,然后达到一种稳定的状态。电路接通,电子通过导线回到正极,打破平衡,继续反应,知道化学物质被消耗完。电路中电流的大小就是每秒流经电路的电子数目。电阻表示阻碍电子通过的能力。电压可以理解为一种电势差,两极电子数目的差?

   电磁继电器

   继电器是一个意义非凡的设备。当然,它只是一个开关,但是这个开关的闭合和断开并不是由人来操纵的,而是由电流控制的。你可以通过它来完成一些不可思议的事情。实际上,使用它,你甚至可以装配一台近乎完整的计算机来!

   cpu

   下面介绍一下怎样组装一个原始的加法器:以两个八位数的加法为例。做加法其实是一位一位相加,当然还要注意进位的问题。0+0=0 0+1=1 1+0=0 1+1=10 ,只要能设计一个电路能正好吻合前面的输入输出关系就行了。这种电路是由基本的门电路构成的(如与门,或门,与非门)。而各种基础门电路都是由电磁继电器构成的。当然现在已经不用继电器,现在用晶体管,但是作用是一样的。从某种意义上讲,所有的数字计算机都是相同的,如果一台处理器从硬件上无法做到另外一台可以做到的事情,那么它可以通过软件途径做到,最终它们可以完成相同的事情。然而,速度是处理器之间的根本不同点,同时速度也是我们使用计算机的一大原因。

   内存

   通过地址总线给出要访问的内存地址,然后通过一个译码器将相应地址的数据通过数据总线发送给cpu。这个过程是一个随机访问,也就是不管访问哪个地址所花的时间是一样的。

   操作系统的启动

   计算机加电后,cpu会开始执行存放在非易失性存储器中的一些指令。这些指令继而从一小块闪存中读出足以运行某些设备的代码。这些代码在运行过程中再从磁盘、CD、USB存储器或网络连接的既定位置读出更多指令。这些指令再继续读取更多指令,直到加载了足够完成有效工作的代码为止。

   中断、消息与事件

   用一个例子来解释:比如一个java的swing程序,你点击了里面的一个button,这时产生一个鼠标中断,过了一会儿,cpu会检测到这个中断(cpu每执行完一条指令就会去查有没有必须响应的中断),然后cpu开始执行鼠标中断处理函数:首先根据桌面窗口排列情况和点击的坐标决定将此鼠标中断传给相应的应用程序。然后应用程序将该鼠标中断放进消息处理队列,从而进行消息的处理(应用程序会有一个死循环来处理消息队列中的消息)。至此,一个完整的按钮点击事件处理完毕。

   编译器

   计算机只懂类似于0101的机器代码,最开始程序员都是直接输入机器码对计算机进行编程。后来产生了汇编语言。汇编语言的每一条指令都有着相对应的机器码。那么汇编语言是怎样被转化成机器码的呢?这就是汇编器的工作,汇编器负责将汇编代码转化成计算机能够执行的机器码。我们知道不同类型的cpu其支持的指令是不一样的(由于硬件的设计其做事情的方式不是一样的)。所以针对每一种类型的cpu都要有不同的汇编器。那么是否不同类型的cpu要有不同的汇编语言呢?一般来说是这样的,因为不同类型的cpu支持的指令是不一样的。第一个汇编器需要手动用机器语言编写。第二个汇编器就可以用第一个汇编语言编写了。汇编语言的特性造成了它的不可移植性。于是高级语言出现了,最具有代表性的c语言出现了。那么为什么c语言可以移植呢?这全是编译器的功劳,其实很简单,编译器针对不同的硬件编译出不同的机器码。java则更近一步,一次编译,处处运行,其实也很简单,java编译产生的字节码是由java虚拟机执行的。而不同的平台都有其相应的java虚拟机,这就是神奇所在。在实际当中,编译器在内部可能会被分成一个前端和多个后端。前端负责把高级语言的程序转换为中间形式,而后端则负责把中间形式转换成不同体系结构的汇编指令。

   语言

   正如美国语言学家本杰明.沃尔夫所说:“语言塑造我们的思维方式,决定我们可以思考什么。”这个论断是否适合自然语言还有争议,但对于我们发明的告诉计算机去做什么的人造语言来说,好像还挺靠谱的。

   声音的记录与还原  

    声音是一种波动,当演奏乐器、拍打一扇门或者敲击桌面时,声音的振动会引起介质——空气分子有节奏的振动,使周围的空气产生疏密变化,形成疏密相间的纵波,这就产生了声波,这种现象会一直延续到振动消失为止。(摘录自维基百科)人耳听到声音是因为声波刺激耳膜与听小骨。回到题目,现在一般采用数字信号的方式记录声音,也就是对声波进行采样。还原的时候只要还原同样的声波我们就能听到原来的声音。我一直不解的是音色是由什么决定的?我们都知道声波的振幅表示响度,声波的频率表示音的高低。那么声波的什么特质表示音色呢?谷歌了一下:音色主要由声波的频谱结构及其模拟波形决定;响度主要与声音的振动幅度有关。不同的音源发出同一音符时,其基音相同,但谐波成份及其幅度各异,频谱及波形不同。有些看不太懂,不过没关系,我们只要知道音色也是由声波决定的,这就够了。

   图像的记录与还原

   图像的记录就比较直观了,将一张图片分成很多个点,记录每个点的颜色。然后通过显示器进行还原。

   未完待续。

   电话网络

   有线电视网络

   手机网络

   互联网

   无线传感器网络

   。。。。。。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值