Fork me on GitHub

十分钟了解计算机系统

《深入理解计算机系统》笔记

计算机系统是由硬件和软件相配合,运行应用程序的。

通过hello.c程序的生命周期:创建编译运行,打印结果,结束,来了解计算机系统的内部工作机制。

1,创建

对于计算机来说,所有的信息均以 bit 来存储。

1,创建hello.c文件

#include <stdio.h>

int main()
{
    printf("hello world!\n");
    return 0;
}

2,以十进制ascii形式查看文件内容

2,编译

普通人比较容易理解hello.c的内容。这个程序,最终是要交给计算机去运行的。因此,运行之前,需要通过中间商,将我们编写的 hello.c 转换为低层次的机器语言。转换的结果就是可执行目标文件(executable object file)。简而言之,就是 C 文件通过编译器生成二进制可执行文件。

# 编译命令
gcc -o hello hello.c

3,运行

./hello

3.1 硬件结构

3.2 运转流程:

步骤一:读取./hello命令到内存

步骤二:加载可执行文件hello到内存

步骤三:显示执行结果

4,优化

程序运行时,存在多次复制信息的操作。首先,将 hello 可执行文件从硬盘加载到内存,然后 CPU 运行程序时,从内存中加载指令到 CPU。我们可以通过提高信息的加载速度来优化程序。

一条物理定律:容量大的存储设备,价格便宜,但读取速度慢;硬盘比内存大 1000 倍,但是读取速度比内存慢 10,000,000 倍

5,软件对硬件的抽象

参考资料:

posted @ 2021-10-25 17:47  小a的软件思考  阅读(524)  评论(0编辑  收藏  举报