计算机杂谈

前段时间看了哈佛大学的CS50,上周末又看完了《计算机是怎样跑起来的》,感觉它们谈论的内容很相似,在这里总结一下关于计算机的思考。
如果只看书名《计算机是怎样跑起来的》,这本书首先讲解了计算机的三大原则————输入、计算和输出。接着讲到了计算机的硬件、汇编语言、程序、算法、数据结构、OOP、数据库、TCP/IP网络、加密、XML和SE。如果只看书名,我觉得该书应该讲的是从启动电源到看到桌面的过程中发生了什么,但是看完了这本书,我感觉这本书其实叫《计算机信息是如何传递的》更合适。

下面以我以“计算机信息是如何传递的”的方式重新组织一下该书的内容.
Q:信息是如何从一台计算机传递到另一台计算机的?
A:计算机之间由虚拟的管道连接在一起的,当我在PC1上输入信息发送给PC2的时候,信息就通过这些管道被传送到了PC2。如果要发送的信息内容非常多,信息内容会被拆开,一个一个的发送。就像我们写信需要格式一样,信息也是有格式的,该书写作时流行的是XML(当前JSON使用较多)。我们发送的信息可能会被其他人看到,如果这些信息比较重要,这就涉及到了加密与解密。如果你需要把发收到的信息组织起来,你可能会用到数据库,数据库是用来存储数据的,通过DBMS,我们可以对数据进行增删改查。如有时候我们需要对某些信息进行排序,这就需要用到算法和数据结构。
上面涉及到的很多东西都是由程序来完成的,程序是指令和数据的合集,我们可以用指令操作数据,这些指令最终由计算机的大脑CPU来完成。计算机的大脑和我们人的大脑不太一样,这里就要说到不同的编程语言,编程语言有高级的和低级的。高级的是说我们人比较容易能看懂的,比如C语言,低级的是说CPU能看懂的,比如说汇编语言和机器语言。高级语言到低级语言的转换需要由编译器和汇编器来完成。

编译过程及运行过程