进入与软件相关的岗位后,发现自己之前的知识并不是能够理解现在工作的内容,一只半解,所以打算在基础上重新学习下,一方面加深一下基础知识,另一方面也是学习一些之前忽略的新东西。
计划按照这个书的章节进行学习吧。
也希望有些不对的地方各位大佬多指正。
一 计算机系统漫游
#include<stdio.h>
int main()
{
printf("hello world!\n")
}
如上 是我们第一次接触C 语言的开端,或者说大部分的编程语言的开端都是从 hello world 开始的。在此我们并不对这段代码进行拆分理解,毕竟目前和当前的文章的内容并无太大的关联。
如我们所知,程序的执行时在源文件的基础上进行的 也就是我们经常理解的.c 文件;
但是,计算机或者执行程序的目标端并不能识别这些文件或者文字; 这就需要进行翻译--》编译,把源文件翻译成计算机能理解的语言
- 源文件 .c——》预处理 后的文件 .i——》编译后的文件.s——》汇编后的文件.o——》通过链接器转换为可执行为目标文件
- 预处理:一般是处理#def / include 这些,插进程序中得到一个新的程序
- 编译:就是将预处理的文件转换成汇编语言
- 汇编:将编译后的文件翻译成机器语言指令(具体机器语言和指令的区别,这里暂时不赘述)
- 链接:可以理解将宏命令中的执行文件并入到现在的程序中
了解系统的组成
- 总线:携带信息在各部件之间传输
- I/O 设备:系统与外界的链接, 可以通过I/O 进行输入,输出....而这个也是目前我们使用最多的地方 。
- 主存:临时的存储设备,用来存放程序和程序处理的数据
- 处理器: 可以理解为核心,是来执行主存中的程序
程序的执行中大量的时间将一个程序从从磁盘copy到主存,在从主存到CPU ,在从CPU 转到主存,而后输出。
通过高速缓存可以极大的提升程序运行的效率。缓存的目的是可以将指令提前放入,可以使CPU更快速的执行。
通过internet 我们可以实现不同系统之间的链接,也就是现在我们常说的万物互联。
先介绍到这里,后面的章节我们再持续更新。当然 对于有理解错误的地方也请更正