系统调用和标准库函数的关联
Posted ChunJian-YANG
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统调用和标准库函数的关联相关的知识,希望对你有一定的参考价值。
1. 首先,现在的OS内核主要采用两种模式,整体的单内核模式(linux)和分层的微内核模式(Windows)。单内核
模式的特点就是代码紧凑,执行速度快,各个模块之间是直接的调用关系,可以说最后一点既是优点,也是缺
点...有点就是执行速度快,缺点是内核看起来很乱,维护起来困难。
2. 无论是单内核,还是微内核,立体的体系结构从下到上大概都是分成这样几层:物理硬件,OS内核,OS服务,
应用程序。这四层结构中,OS内核起到一个“承上启下”的作用,向下管理物理硬件;向上为OS服务和应用程序
提供接口。主意,这里的接口实际上是指系统调用(System Call)。
3. 通常OS内核为了考虑实现起来的难度和易于管理,只提供少部分必要的系统调用,这些系统调用通常都是C和
汇编混编来实现的。接口用C定义,实现体用汇编来写。这样做的好处是,执行效率高,并且极大的方便了上层的
调用。
4. 再说库函数(即API)。库函数可以概括的分为两类,一类是随OS提供的,另一类是第三方的。随系统提供的库
函数进一步封装或组合系统调用,实现更多的功能,就像用C语言的许多功能单一的小函数来实现很多很多个功能
复杂的大函数一样。这样的API能够执行一些相对内核来说很复杂的操作,比如,read()函数根据参数,直接就
能读文件,而背后隐藏的比如文件在硬盘的哪个磁道,哪个扇区,加载到内存的哪个位置等等这些操作,程序员
是不必关心的,这些操作里面自然也包含了系统调用。而对于第三方的库,它其实和系统库一样,只是它直接利
用系统调用的可能性要小一些,而是利用系统提供的API接口来实现功能。(API的接口是开放的)。
以上是关于系统调用和标准库函数的关联的主要内容,如果未能解决你的问题,请参考以下文章