Linux系统中的软件层次

1. 内核

这是整个系统的根本基石。无用多说。

用户态程序自己所做的计算,基本都算是决定策略。

即程序要做哪些操作,每个操作要做成什么样子。

这些事情确定了之后,就可以指示内核帮我们去实施了。

一句话,用户态程序所做的几乎所有的操作(除非是比较特殊的应用),最终都通过内核代我们去完成。

当然,内核除了代用户态程序去实施一些操作外,还有别的一些事情要打理。


2. C库

这是用户态空间的基石。

用户态空间,想做任何操作,必须通过elf文件的执行来实现。

不管是什么程序,已编译的二进制程序也好,脚本程序也好,字节码程序也好,最终都是落实到一个个的elf文件在运行。

例各,一个Bourne shell脚本文件的执行,最终其实是/bin/sh进程根据shell脚本的内容,在执行着各种操作。

由此可见,用户态空间的任何操作,都是通过elf文件的执行来实现的。

elf文件又是如何实现具体的操作呢?这又得依靠系统的根本基石,即上一节所提到的内核了。

但是,elf文件并不是直接向内核提交请求,而是通过C库为中介来完成。

即elf文件调用各种各样的C库函数,来向内核提交请求,并获得执行结果。

elf文件可以以两种方式使用C库:动态库(节省空间、升级方便,但性能相对要差些)、静态库。


3. 更上层的代码

更上层的东东,涉及到的内容应该是相当丰富的。但是,在下了解的却甚少。这里就不说啦。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值