系统内核:
内核指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。
链接:https://zh.wikipedia.org/wiki/Linux%E5%86%85%E6%A0%B8
用户空间和内核空间:
linux内核空间和用户空间详解链接:http://blog.youkuaiyun.com/zhangskd/article/details/6956638
系统调用:
系统调用又称系统呼叫,指运行在使用者空间的程序向操作系统内核请求需要更高权限运行的服务。
linux实现:
Linux 的系统调用通过 int 80h 实现,用系统调用号来区分入口函数。操作系统实现系统调用的基本过程是:
- 应用程序调用库函数(API);
- API 将系统调用号存入 EAX,然后通过中断调用使系统进入内核态;
- 内核中的中断处理函数根据系统调用号,调用对应的内核函数(系统调用);
- 系统调用完成相应功能,将返回值存入 EAX,返回到中断处理函数;
- 中断处理函数返回到 API 中;
- API 将 EAX 返回给应用程序。
应用程序调用系统调用的过程是:
- 把系统调用的编号存入 EAX;
- 把函数参数存入其它通用寄存器;
- 触发 0x80 号中断(int 0x80)。