Linux C 编程的基础
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux C 编程的基础相关的知识,希望对你有一定的参考价值。
1.什么是操作系统?
操作系统是一系列的软件,是程序。我们可以这样类似的理解操作系统,我们操作计算机类似于操作汽车,我们的汽车有车身,动力系统,制动系统,转向系统等等,我驾驶汽车不是直接去操作具体的硬件,比如我们要转弯的时候不是自己直接最终控制转向的车轮,而是通过汽车操作系统提供的方向盘来控制,这里的汽车:转向系统向用户提供了接口:方向盘。同样动力系统向司机提供了:油门接口,我们不可能直接自己推动前进。通过汽车系统提供的方向盘,刹车,油门等来操控计算机。这种操控更加安全,精准,效率高,稳定。子系统组合起来就是一个完整的汽车得到操作系统。操作系统也是这样的,一些的程序分管不同硬件,组成一些小的子系统,最终和起来组成的计算机系统。
2.计算机语言历史
客观概念 机器语言 汇编语言 C语言
加法 1001,0001 add +
减法 1001,0010 sub -
3.计算机的体系结构
第一层:应用程序层
第二层:操作系统层
第三层:硬件物理层
4. 程序的从源代码到可执行程序的过程
1.预编译
gcc -E hello.c -o hello.i
cpp -E hello.c -o hello.i //gcc 集成了预处理器cpp的
在C语言程序中,所有以#开头的都是预处理指令,是给cpp预处理软件下的指令.同时去掉了注释
gcc -E hello.c -o hello.i -v //参数-v显示编译的过程
2.编译
将hello.i 编译翻译成汇编 hello.s
AT&T 汇编 Linux
X86 汇编
gcc -S hello.i -o hello.s
3.汇编
把汇编文件翻译成机器语言叫汇编 hello.o object文件
gcc -c hello.s -o hello.o
4.链接
运行时文件,库文件,启动代码 链接link
gcc hello.o
将目标文件和运行时文件,库文件进行链接形成可执行文件。
5. hello.c 源程序 hello.i 预处理后的文件 hello.s 汇编语言的文件 hello.o 目标文件,二进制文件
gcc的常用参数 -E 预处理 -S 编译为汇编语言 -c 编译为目标文件 -o 输出文件 -v 显示整个编译过程信息
6.以上的过程只是一个基本的框架,还有链接,加载的流程。
以上是关于Linux C 编程的基础的主要内容,如果未能解决你的问题,请参考以下文章