内核函数 系统调用 系统命令 库函数
内核函数
运行在内核态的,一般来说特权级较高。
系统调用
系统调用是程序进入内核函数的接口层,大量的内核函数被封装再系统调用中。再进入不同的系统调用之后,系统调用中的内核函数被称为该系统调用的服务例程。
系统命令
比如在cmd中的ls,ll。系统命令相比于库函数就会更高一层,每一个系统命令都是一个可执行的程序。比如我们strace ls。就可以看出来他调用了open(),brk()等系统调用命令。
strace 是一个Linux用户空间跟踪器,可以通过它来监视用户进程和内核的交互,比如系统调用,信号传递和进程状态变更……
strace底层使用内核的ptrace特性来实现其功能。
库函数
库函数也就是我们所说的编程接口,application programming interface。比如常见的文件操作,read(),write()。而这样的操作必定是接触到硬件的,因此也一定会进入内核态。那为什么不直接使用系统调用呢?
这是因为在用户态和内核态中,我们都是用了缓冲区技术。我们会等到缓冲区满的时候,才会将所有的数据写回去。这样就减少了用户态和内核态切换的次数及其成本。
所以不直接使用系统调用技术。
内核函数 系统调用 系统命令 库函数相关推荐
- linux下的系统调用函数到内核函数的追踪
Original from: http://blog.chinaunix.net/uid-28458801-id-3468966.html 使用的 glibc : glibc-2.17 使用的 lin ...
- 操作系统原理,系统调用,系统调用与库函数API等函数之间的调用关系,功能与机制设计,系统调用的执行过程与Linux系统调用执行示例,不同操作系统下的PCB
操作系统原理,系统调用,功能与机制设计,系统调用的执行过程与Linux系统调用执行示例,不同操作系统下的PCB 一.系统调用:操作系统功能调用,用户在编程时可以调用的操作系统功能. 1.系统调用是操作 ...
- linux 3.5.0-23-generic内核版本系统调用数目,Linux操作系统分析(三)- 更新内核与添加系统调用...
环境:Ubuntu 12.10 学号:SA****199 1.更新内核: 直接安装的系统内核版本一般不是最新,用 uname -a 查看一下 自己的版本,OK,我的是: Linux chenh ...
- python 调用linux内核api_Linux系统调用及用户编程接口(API)学习
Linux系统学习 系统调用指操作系统提供给用户程序调用的一组"特殊"接口,用户程序可以通过这组"特殊"接口来获得操作系统内核提供的服务. 为什么用户程序不能直 ...
- linux中系统调用和库函数的区别
linux中系统调用和库函数的区别 2013-05-03 22:18:20 分类: LINUX 首先,要说一下两者的概念: 系统调用 :是操作系统为用户态运行的进程和硬件设备(如CPU.磁盘.打印机等 ...
- 系统调用和库函数的区别
首先,要说一下两者的概念: 系统调用 :是操作系统为用户态运行的进程和硬件设备(如CPU.磁盘.打印机等)进行交互提供的一组接口,即就是设置在应用程序和硬件设备之间的一个接口层.可以说是操作系统留给用 ...
- (49)逆向分析KiSystemService/KiFastCallEntry调用内核函数部分(SST,SSDT,SSPT)
一.回顾 前两篇博客,我逆向分析了 KiSystemService 和 KiFastCallEntry 填充_KTRAP_FRAME 结构体的代码,二者大同小异,主要的区别是 sysenter 只改了 ...
- linux应用调用内核函数,Hooking linux内核函数(一):寻找完美解决方案
前言 我们最近参与了一个Linux系统安全相关项目,需要hooking几个重要的Linux内核函数调用,例如打开文件和启动进程,并利用它来启用系统活动监控并抢先阻止可疑进程. 最后,我们发明了一种有效 ...
- linux内核添加系统调用(详细)
linux内核添加系统调用(详细) 说在前面: 这是我第五次编译内核,分别踩了很多坑.中途问过wz佬,佬让我用qemu.我还是最后换ubuntu虚拟机跑了.现在已经有点emo了. 这篇博客是我第五次的 ...
最新文章
- 突破:量子计算机首次实现简化逻辑门
- python提升计算速度的方法
- 小马哥spring编程核心思想_Spring核心思想理解
- 双极型三极管共集电极、共基极放大电路
- 人力资源SaaS软件“乐才Joy HR”获数百万元战略融资
- java getselectedrow_Java Swing实现展示数据,以及过滤排序
- 解决岛屿类问题(网格)通用解法DFS(附题)
- ubuntu + pycharm + anaconda + pyqt4 + tools 配置
- SuperMap 办公自动化服务平台
- matlab 方程组求导,matlab求导及线性方程组的求解
- 今日头条推荐算法原理全文详解之二
- Still,yet和already的用法
- SpringCloud 统一网关Gateway -- 为什么需要网关、Gateway快速入门、路由断言工厂(Route Predicate Factory)
- Infer的安装及基本使用
- Git学习笔记(二)——Git的分支管理、储藏和标签
- Python 打开/关闭其他应用程序方法
- 关于微信小程序的多选和全选实现
- iOS8.1 APP图片模糊变形解决
- 已知坐标增量求坐标方位角_桥梁桩基坐标计算原理
- 修改历史git提交用户名和邮箱错误,解决没有小绿点
热门文章
- MFC与Matlab编程总结 (以《Matlab与C/C++混合编程技术(第三版)》-刘维 第五章 生成DLL为例)
- carsim的学习笔记2——test specifications
- python3精要(45)-exit
- 【机器学习】机器学习必知概念
- 【小白学PyTorch】11.MobileNet详解及PyTorch实现
- 【白话机器学习】算法理论+实战之EM聚类
- 推荐系统炼丹笔记:聊一聊特征交叉新方式CAN
- Java_案例实例1.简单的人机交互
- vue如何在用户要关闭当前网页时弹出提示
- IdentityServer Topics(1)- 启动说明