栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

系统编程概念

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

系统编程概念

1. 系统调用

​ 由操作系统操作系统实现提供的所有系统调用所构成的集合即程序接口程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。
​ 系统功能调用是操作系统提供给程序设计人员的一种服务。程序设计人员在编写程序时,可以利用系统调用来请求操作系统的服务。系统调用把应用程序的请求传给内核,调用相应的内核函数完成所需的处理,将处理结果返回给应用程序。
​ 系统调用将处理器从用户态切换到内核态,以便CPU访问受到保护的内核内存;系统调用的组成是固定的,每个系统调用都由一个唯一的数字来标识;每个系统调用可辅之以一套参数,对用户空间与内核空间之间传递的信息加以规范。

系统调用过程:

以execve() 来展示一下系统调用过程:

2. 库函数

​ 库函数也就是 C 语言库函数,C 语言库是应用层使用的一套函数库,在 Linux 下,通常以动态(.so)库文件的形式提供,存放在根文件系统/lib 目录下。许多库函数(比如,字符串操作函数)不会使用任何系统调用。另一方面,还有些库函数构建于系统调用层之上。例如,库函数 fopen()就利用系统调用 open()来执行打开文件的实际操作。往往,设计库函数是为了提供比底层系统调用更为方便的调用接口。。例如,printf()函数可提供格式化输出和数据缓存功能,而 write()系统调用只能输出字节块。同理,与底层的 brk()系统调用

相比,malloc()和 free()函数还执行了各种登记管理工作,内存的释放和分配也因此而容易许多。

​ GNU C 语言函数库(glibc, http://www. gnu.org/software/libc/)是 Linux 上最常用的实现。C 语言库是以动态库文件的形式提供的,通常存放在/lib 目录,它的命名方式通常是libc.so.6,不过这个是一个软链接文件,它会链接到真正的库文件。

本人linux系统下得到的c库信息如下:

book@dbe:/lib/x86_64-linux-gnu$ ./libc.so.6
GNU C Library (Ubuntu GLIBC 2.27-3ubuntu1.2) stable release version 2.27.
Copyright © 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 7.5.0.
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
For bug reporting instructions, please see:
https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/309123.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号