分享

你真的知道计算机工作原理?

 飞往天际 2015-06-21

  这个问题很不错。当我11岁时我刚刚在电脑上玩游戏的时候,我的疑问就存在了,后来我又度过了6年的大学生涯,终于能够或多或少回答这个问题了。

  计算机的工作过程本质上是非常复杂的,让我从最基本的开始吧。

  1、物质是由原子构成的(当然我们还可以将物质分得更小,但在这里原子就够了。“

  2、原子中存在电子,电子的流动形成电流。

  3、现在,为了使用这些电子,我们制造了能够按照要求存储/释放电流的晶体管。它们有两种状态:1和0,可以分别对应为5V和0V。

  4、一个8比特位的数可以用8个晶体管来表示。所以3这个数字的比特位表示(二进制)为:00000011. 而这是如何在硬件上实现的呢?将8个晶体管一字排开(称为寄存器或存储单元)。让前面的六个晶体管处于0V状态,后面的2个晶体管则处于5V状态。

CMOS晶体管

  5、将这些晶体管进行某种形式的组织,就能得到寄存器和存储单元,并进一步得到CPU和RAM。

计算机的层次

  6、为了能更简单地使用CPU,我们发明了机器代码。这种代码可以直接运行在CPU上。运行过程中会实现比特位的位翻转。例如我想做一个2+3的运算,在机器中,首先将2存入到了一个寄存器中,然后由将3存入了另一个寄存器。然后这些值被放到加法器单元进行数学加运算(这并不是电压的相加),得到的结果又存储在另一个寄存器中。这个过程的机器代码是:

  80 02 F3

  80 03 F4

  88 F3 F4 F5

  显然,基本上没人能看懂这是什么意思。所以我们想出一个朴实的解决方案来设计人类读得懂的代码。这就是所谓的汇编语言。下面给出的代码就代表了上面提到的数字。

  MOVI 2,REG A

  MOVI 3,REG B

  REG ADD A,REG B,REG C(A加B,结果存储在C)

  其中,MOVI = 80

  REG A = F3

  REG B = F4

  REG C = F5

  ADD = 88

  瞧,我们的第一个编码语言!

全加器

  7、但是,对人类来说,汇编指令实在是太难记了,而且编程过程也过于繁杂。所以更高级的语言C语言出现了,通过合适的编译器可以将C语言代码转换成汇编代码(记住,这是可以直接用来计算的)

  而上面的计算代码也变成了:

  {

  int a = 2; b = 3;

  c = a+b;

  }

  8、就像世界上存在各种各样的语言一样。我们也发现编程的时候如果有更有表现力的语言,人们就能写出更好的程序。然后再将其编译成汇编,然后就可以在寄存器中实现位翻转。也就是说为对最底层的晶体管产生影响,进而影响其中的电流。

  9、有了以上的基础,我们开始编写操作系统,以实现硬件的最大化利用,因为看起来在我们从磁盘取数据的时候,CPU会保持闲置。

  10、而其他的我们使用到的一切都是通过有表现力的语言写出的程序,当然,这些程序都运行在操作系统之上。

  11、在操作系统之上,我们开发出了一个名为TCP / IP的网络协议栈。该协议栈为计算机之间的相互通信提供了一个标准化的方法。

  12、然后,互相连接的计算机越来越多。我们又创造了万维网和Http.这使得不同网络之间可以实现通信。注意http是一种协议。除了内部协议之外,服务器和客户端都至少要遵循http协议。

  接下来,让我们调转船头,从软件到电子再看一遍:

  1、当你在浏览器中键入网址并按下Enter键后,一个http请求就从你的浏览器(客户端)发送到了该网站的服务器。

  2、在你的电脑上,浏览器是用C/C++写成的一个程序。

  3、写出浏览器的C/C++代码需要经过编译处理才能得到我们使用的程序,该程序运行在操作系统上。

  4、操作系统(Windows/Linux等等)和相关的驱动程序都是经过编译之后再运行到机器上的。

  5、当程序在CPU中运行时,其是以机器代码的方式运行的。

  6、机器代码在寄存器和存储单元中实现位翻转。

  7、寄存器和存储单元由晶体管组成。

  8、晶体管通过控制电子流来控制电流。

  这些过程的描述都非常简单,但本质上就是这么个过程。

  我很高兴能够回答这个问题,计算机是人类有史以来最伟大的发明,而这也不是那一个单独的个人就能完成的。我们已经在这条道路上前进了50多年的时间,成千上万的人为此贡献了自己的心力和智慧。单独的个人要想对这整个过程都有深刻专业的认识并不容易,我谈到的也都很肤浅,我甚至没有谈到缓存、微架构、GPU、BIOS等等,但是希望我写出的这点东西能够帮到你。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多