计算机系统原理(一) 计算机概述2014-08-22本来LZ是打算好好研究一下JVM源码的,不过想来想去,LZ觉得应该先了解计算机系统的原理,再去研究JVM源码的精妙。因此LZ决定潜下心来好好研究下计算机系统原理,这是一个漫长的过程,因为《深入理解计算机系统》这本书很厚,而且这种书一般看起来速度不会太快。因此LZ打算做好每一个阶段的记录,有兴趣的猿友可以跟着LZ一起看下,了解计算机系统的运行原理其实是很有必要的。
计算机的组成
计算机是由硬件和软件组成的,这两个部分共同协作完成程序的运行。这两部分如何协作完成程序的运行,是本系列的重点。
信息的表示
信息的表示说到底就是位加上下文。举个小例子,比如11011101这一串二进制,在表示整数的时候它表示221,但是如果放在JAVA的class文件当中,它可能代表一个JVM的指令。
程序的编译
对于一个简单的C语言程序来说,一般要经过预处理器、编译器、汇编器和链接器的处理,才能被翻译成一段可执行的二进制文件。比如对于一个简单的C语言程序,如下。
#include <stdio.h>int main(){ printf("hello,world
");}
我们保存在hello.c当中,那么它的翻译过程如下。

程序的运行
程序的运行由解释器负责,它将逐个解释最终生成的二进制文件并执行。