码迷,mamicode.com
首页 > 其他好文 > 详细

读书笔记_深入理解计算机系统_第一章_计算机系统漫游

时间:2017-04-25 00:51:04      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:不同   文件格式   插入   std   序列   格式   理解   最大   linux   

 

hello.c

#incude <stdio.h>

int main()

{

  printf("Hello,world\n");

}

1.1信息就是位+上下文

系统所有的信息,都是由一串位表示的。

在不同的上下文中(可以理解为程序,或者运算),一个同样的字节序列可能表示一个整数,浮点数,字符串或者机器指令。

2.2程序被其他程序翻译成不同的格式

如Hello程序,从源文件hello.c中的每条C语句,需被其他程序转换为一系列低级语言(汇编)指令,然后将这些指令按照一种称为可执行目标程序的格式打包,以二进制磁盘文件格式存放起来。目标程序也称为可执行目标文件。

在linux中,从源文件到目标文件可用编译驱动程序完成

gcc -o hello hello.c

GCC编译驱动程序将hello.c翻译成一个可执行目标文件,过程分为四个阶段

1.预处理阶段

  读取头文件中的内容,将它插入上下文,#include <stdio.h>,生成.i作为扩展名。

2.编译阶段

  将.i翻译成.s汇编语言程序

3.汇编阶段

  将汇编语言翻译成机器语言,将指令打包成一种叫可重定位目标程序的格式.o,一个二进制文件

4.链接阶段

  将printf.o预编译文件链接入hello.o

 

1.3了解编译系统如何工作的最大益处

1.优化程序

2.理解链接时出现的错误

3.避免安全漏洞

读书笔记_深入理解计算机系统_第一章_计算机系统漫游

标签:不同   文件格式   插入   std   序列   格式   理解   最大   linux   

原文地址:http://www.cnblogs.com/longruliang/p/6759556.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!