万能的hello程序,他就是一段代码?由C语言写成,它运行时,系统发生了什么?
#include<stdio.h>
int main()
{
printf("hello world\n");
return 0;
}
程序员通过编译器创建并保存文件,文件名为hello.c
实际上这个文件就是一串0和1组成的信息,它的8个位组成一组,叫字节,每个字节表示文本中的一个字符。这一串01组成的信息可以用二进值表示十进制的数字,而ASCII码将数字对应到字符上,这里字符就表示数字、字母、特殊符号等等。例如“#”就是用ASCII值35表示的。这就是为什么说计算机是0和1的世界,所有数据的源都是靠0和1表示的。
有了程序文件,是不是就可以执行了囔?似乎是这样,其实是它需要经过一系列步骤,才能让计算机执行,这些步骤就称为编译过程。编译过程由预处理器、编译器、汇编器和连接器四个阶段构成。
hello.c源程序经过上述阶段称为可执行目标文件hello,并被存放在磁盘上。
系统的硬件组成:
- 总线:信息的“高速公路”,一组电子管道,传递各个部门的信息。
- I/O设备:键盘、鼠标、显示器、磁盘等。通过一个适配器连接总线。
- 主存:一组动态随机存取存储器(DRAM)芯片组成的。
- 处理器CPU:中央处理单元,执行指令的核心硬件,其中包括ALU逻辑单元。
存储器层次结构:
操作系统两个基本功能:(1)防止硬件被失控的应用程序滥用;(2)向应用程序提供简单一致的机制来控制复杂的不同的硬件设备。
进程:进程是操作系统对一个正在运行的程序的一种抽象。
线程:一个进程由多个线程的执行单元组成。
上面概念是主要内容,还有并发和并行,有兴趣可以了解。
本文大部分内容来自于经典计算机书籍《深入理解计算机系统》