sys_open(),sys_read()等程序是系统级程序的例子吗?

时间:2009-10-27 02:58:11

标签: linux-kernel

程序是否写在调度程序,线程库,进程管理,内存管理等系统程序中?它们与实现open(),printf(),scanf(),read()等函数的程序有什么不同......它们有一个前缀sys_open,sys_close,sys_read等,对吧?实现系统调用的程序与实现线程库,进程管理,内存管理等系统级程序之间的层次结构是否存在差异。

希望你理解我的qstn

2 个答案:

答案 0 :(得分:2)

我不熟悉术语“系统级程序”本身,但如果它类似于“系统级编程”,则它与编写与“系统”直接交互的相当低级代码有关。 (通常是特定的硬件/平台/体系结构/等)并以某种方式(System Programming)对其进行抽象,以允许编写可以与系统无关的高级程序。

您的问题似乎与“系统编程”和应用程序编程之间的区别有关。 open(),printf()等函数假定底层系统调用存在,并且在某种程度上是高级别的。也就是说,系统级和应用程序级编程之间的界限是模糊的,并且已经在许多人的脑海中向上移动。许多人现在认为任何用C或C ++等语言编写的程序都是15年前不可移植的特定于系统的程序,事实并非如此。

所以,如果你问的是Application和amp;之间有什么区别?系统级编程,那么你有很多阅读要做。查看链接的维基百科文章。它应该给你一个很好的起点。

答案 1 :(得分:1)

open(),printf(),scanf(),read()等函数是在sys_*对应函数之上实现的库函数,因此它们可用于任何应用程序开发。另一方面,sys_open, sys_close, sys_read等被实现为系统的一部分,通常称为内核。最重要的是,实现了诸如线程库,编译器,链接器之类的系统程序,这有助于其他应用程序开发。希望这清除了系统,系统程序和应用程序之间的区别。