ICS(计算机系统导论)|1、计算机系统漫游——从程序的生命周期讲起

计算机系统由硬件和系统软件组成,它们共同工作来运行应用程序。

相信每一个一开始接触编程的同学最先写的就是hello world,这是程序员对计算机世界发出的第一声问候。而本书这一部分解释hello world的运行机制、生命周期,为后续所有要介绍的计算机底层知识做一个铺垫。

#include<stdio.h>

int main()
{
    printf("hello,world");
    return 0;
}

 

0.为什么选Linux系统

Linux操作系统是众多继承最初由贝尔实验室开发的Unix的操作系统中的一种,具有高度兼容性。

 

1.信息就是位+上下文

 

hello程序的生命周期是从一个源文件开始的,即程序员通过编辑器创建并保存的文本文件,文件名是hello.c。

 

但我们都知道计算机是二进制的,源程序实际上就是一个由值0和1组成的位(又称为比特)序列,8个组成一组,称为字节,字节表示程序中的文本字符。

 

大部分计算机使用ASCII标准来表示文本字符,这种方法实际上就是用一个整数值来表示每个字符,这点和高中函数是一个道理,即一个数字对应一个字符。将上述的hello程序转换为ASCII文本。

 

https://bkimg.cdn.bcebos.com/pic/e850352ac65c103880a07b53bc119313b17e8941?x-bce-process=image/watermark,g_7,image_d2F0ZXIvYmFpa2UxMTY=,xp_5,yp_5

 

hello.c的程序以字节序列的方式存在文件中,每个字节对应一个字符,每个字符对应一个整数,而这些整数值用二进制储存在电脑里。

 

hello.c的表示方法说明了一个基本思想:系统中所有的信息——包括磁盘文件、内存中的程序、内存中存放的用户数据以及网络上传送的数据,都是由一串比特表示的。区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文。比如,在不同的上下文中,一个同样的字节序列可能表示一个整数、浮点数、字符串。

 

2.程序被其他程序翻译成不同格式

为了在系统上运行hello.c程序,每条C语句都必须被其他程序转化为一系列的低级机器语言指令。然而这些指令按照一种可执行目标程序的格式打好包,并以二进制磁盘文件的形式存放出来。

 

在Unix系统上,从源文件到目标文件的转换是由编译器驱动程序完成的。

 

linux> gcc -o hello hello.c

 

在这里,GCC编译器驱动程序读取源程序文件后,把它翻译成一个可执行目标文件hello。这个翻译过程分为四个阶段。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值