计算机如何网络计算,计算机是怎样用电来完成计算的?

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

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

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

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

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

4、一个8比特位的数可以用8个晶体管来表示。所以3这个数字的比特位表示(二进制)为:00000011.

而这是如何在硬件上实现的呢?将8个晶体管一字排开(称为寄存器或存储单元)。让前面的六个晶体管处于0V状态,后面的2个晶体管则处于5V状态。

e9a06184f49660bdcec9e8cd3cbd8449.png

CMOS晶体管

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

fb21cd9a874683e751a1bf4fbff44a97.png

计算机的层次

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

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

54d0c53950f31e41fedc6becfd198041.png

全加器

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等等,但是希望我写出的这点东西能够帮到你。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值