1.第一章 温故而知新
1.1 从Hello World 说起
对于下面这样一个简单的Hello World程序, 提出以下的问题:
#include <iostream>
int main()
{
printf("Hello World!") ;
return 0;
}
- 编译器编译产生的可执行文件中是什么?除了机器码还有什么?他们是怎么存放的?怎么组织的?
- C语言库和运行时库是怎么回事?是怎么实现的?
- Hello World 程序是怎么运行起来的,操作系统是怎么装载他的,他从哪里开始执行?到哪结束?main函数之前发生了什么?main函数结束之后又发生了什么?
- Hello World程序运行时在内存中是什么样子
以上几个问题是我挑选出来概念比较模糊的。希望在后面的部分能够较好的解决这些疑惑
1.2 万变不离其宗
计算机硬件有三个部分最为关键:CPU,内存,IO控制芯片。对于一些高级语言的开发者,基本上只需要关注CPU,对于提供虚拟机的一些语言,甚至连CPU都不需要关心。
IO控制芯片具体是哪些部件,是指声卡,显卡,磁盘控制器吗?