首页 > 代码库 > Linux C 编程的基础

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 编程的基础