linux 系统api 和kernel api 一样么

[复制链接]
查看11 | 回复5 | 2012-11-14 17:26:33 | 显示全部楼层 |阅读模式
linux kernel只提供一种叫系统调用给应用程序,linux系统提供了glibc这样的函数库专门封装了内核提供的系统调用,所以应用程序的开发就直接调用glibc库提供的库函数就可以了。注:1、linux系统包括linux kernel、glibc库等。
2、因为应用程序调用系统调用是通过汇编指令完成的,所以才有了glibc的封装,简化了应用开发的难度。kernel中提供的系统调用处理函数sys_socket、sys_open、sys_close、sys_read、sys_write等glibc中对应的是socket、open、close、read、write等glibc中的socket函数就...
回复

使用道具 举报

千问 | 2012-11-14 17:26:33 | 显示全部楼层
linux内核中调用用户空间的程序可以使用init这样的方式,调用 kernel_execve 不过内核还是提供了更好的辅助接口call_usermodehelper,自然最后也是调用kernel_execve调用特定的内核函数(系统调用)是 GNU/Linux 中软件开发的原本就有的组成部分。但如果方向反过来呢,内核空间调用用户空间?确实有一些有这...
回复

使用道具 举报

千问 | 2012-11-14 17:26:33 | 显示全部楼层
你说的是 system call吧?Linux下开发使用glibc封装的版本,一般不直接调用。具体man syscalls:
The system call is the fundamental interface between an application and
the Linux kernel. Sys...
回复

使用道具 举报

千问 | 2012-11-14 17:26:33 | 显示全部楼层
kernel api只在写系统内核时使用,一般编程不会用。一般编程最底层的调用也是系统调用,是对内核的封装,是与操作系统交互的最低层接口。一般在linux编程还是使用库api,加系统调用。...
回复

使用道具 举报

千问 | 2012-11-14 17:26:33 | 显示全部楼层
kernel就是Linux的核心即使C也要调用kernel api吧个人理解...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行