linux内核程序运行在哪里,linux内核 – 设备驱动程序代码在哪里执行?内核空间还是用户空间?...
第1部分
在Linux上,驱动程序在内核空间中运行.是的,正如你所说的那样,对此有重大的安全隐患.驱动程序中的大多数异常将占用内核,从而可能会损坏内核内存(带来各种后果). Buggy驱动程序也会对系统安全性产生影响,而恶意驱动程序可以做任何事情.
MacOSX和Window NT内核看到的趋势是用户空间驱动. Microsoft已经有一段时间推动了Windows Userspace Driver Framework,MacOSX长期以来为Firewire和USB驱动程序提供了用户空间API,并为许多USB外设提供了符合类别的驱动程序.在MacOSX上安装第三方内核模式设备驱动程序是非常不寻常的.
可以理解的是,Windows用于内核混乱的不良声誉可归因于与每个手机,相机和打印机相关的(通常质量差)的内核模式驱动程序.
Linux图形驱动程序几乎全部在用户空间中实现,内核驻留部分最少,Fuse允许在用户空间中实现归档系统.
第2部分
USB,Firewire,MCI(以及PCI-e)均具有枚举机制,通过该机制,总线驱动程序可以将该设备与驱动程序相匹配.实际上,这意味着所有设备都会公开描述它们的元数据.
元数据中包含的是DeviceID,VendorID以及设备提供的功能描述和相关的ClassID. ClassID便于通用Class Drivers.
在概念上,操作系统将尝试找到一个特别支持VendorID和DeviceID的驱动程序,然后回到支持ClassID的驱动程序.
匹配设备与驱动程序是Linux Device Model核心概念,匹配的精确匹配标准是特定总线驱动程序中的match()函数.
一旦设备驱动程序被绑定到一个设备,它使用总线驱动程序(或由它提供的寻址信息)执行读写操作.在PCI和Firewire的情况下,这是一个内存映射的IO地址.对于USB,它的总线寻址信息.
Linux Documentation tree提供了对Linux设备模型设计的一些了解,但并不是真正的入门级阅读.
linux内核程序运行在哪里,linux内核 – 设备驱动程序代码在哪里执行?内核空间还是用户空间?...相关推荐
- linux 内核 ide,Linux设备驱动程序学习(7)-内核的数据类型
Linux设备驱动程序学习(7)-内核的数据类型 由于前面的学习中有用到 第十一章 内核数据结构类型 的知识,所以我先看了.要点如下: 将linux 移植到新的体系结构时,开发者遇到的若干问题都与不正 ...
- 嵌入式Linux设备驱动程序:编写内核设备驱动程序
嵌入式Linux设备驱动程序:编写内核设备驱动程序 Embedded Linux device drivers: Writing a kernel device driver 编写内核设备驱动程序 最 ...
- linux内核空间和用户空间的是怎样区别的,如何交互,如何从用户空间进入内核空间
linux驱动程序一般工作在内核空间,但也可以工作在用户空间.下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们. Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,L ...
- linux 内核空间与用户空间 简介
本文以 32 位系统为例介绍内核空间(kernel space)和用户空间(user space). 内核空间和用户空间 对 32 位操作系统而言,它的寻址空间(虚拟地址空间,或叫线性地址空间)为 4 ...
- Linux进程地址空间与进程内存布局详解,内核空间与用户空间
Linux进程地址空间与进程内存布局详解 程序段(Text):程序代码在内存中的映射,存放函数体的二进制代码. 初始化过的数据(Data):在程序运行初已经对变量进行初始化的数据. 未初始化过的数据( ...
- 关于linux内核空间与用户空间的理解
简介 现代计算机都有两种以上的运行模式(普通模式.特权模式),linux系统只有两层:高优先级模式(特权模式),低优先级模式(普通模式).linux系统在高优先级模式中运行系统内核代码以及与硬件密切相 ...
- AndroidM 内核空间到用户空间接口类型
Android系统中, 驱动程序因商业需求分为运行在用户空间的hardware层以及运行在内核空间的驱动程序, 大多情况下内核驱动都需要提供用户空间访问的接口. Linux内核空间到用户空间的接口有主 ...
- Windows内核--内核空间和用户空间(3.6)
内核喜欢抽象出句柄给用户空间 句柄, Handle, 表达处理.控制之意.内核不会直接暴露指针给用户空间,这样会增大内核风险.相反,内核抽象出Handle给用户态,不管是文件.进程.线程等对象,通过H ...
- linux内核--设备驱动程序(学习笔记)
字符设备驱动 一个字符设备要能够工作,需要三部分配合: 有一个设备驱动程序的ko模块,包含中断处理函数.设备操作函数.模块初始化时,将设备号注册到内核的全局数据结构cdev_map中. /dev目录下 ...
- Linux内核空间和用户空间
在Linux系统中存在进程的概念: 进程的分类: 用户进程:运行在用户空间的进程被称为用户进程 内核进程:运行在内核空间的进程被称为内核进程 进程的空间: 系统会为每一个进程分0-4G的虚拟寻址空间, ...
最新文章
- [leetcode] Binary Tree Preorder Traversal
- Ubuntu中Vim 中文乱码解决方法
- javascript中BOM介绍、屏幕尺寸、历史记录、URL解析、计算机信息获取、定时器、三大系列及兼容代码、封装动画函数、同步和异步
- java jdk 的环境变量_Java JDK14(Java 14)在Windows上安装与环境变量配置
- RDD之四:Value型Transformation算子
- ORACLE 两个表或两个结果集的数据对比常用的函数
- python语言的实验心得体会_爱的五种语言——“好妈妈”培训班家教情商课课堂纪实!...
- 辞退可以,暴力不行!
- 解题报告 poj 1087
- 基于springboot的社区物业系统
- 快速排序时间复杂度分析
- 机载激光雷达原理与应用科普(九)
- C语言中结构体所占内存空间
- CPU-显卡-硬盘性能天梯图排行榜源码
- 学到了林海峰,武沛齐讲的Day17-5 内置函数
- python抢淘宝的东西-Python实现淘宝秒杀功能
- mac java 配置
- 新手编程 编写一个方法,输出大于某个正整数n的最小的质数。
- FIR滤波器(1)- 基础知识
- 使用Mifare卡加密数据 笔记
热门文章
- 190709每日一句 以这样的方式去过每一天,你的生活将永远改变!
- 190529每日一句,放胆去梦想,努力去奋斗
- 281210每日一句
- unity常用的引用赋值一个GameObject的三种方法
- Atitit pagging翻页与按需加载图像 vue lazyload懒加载目录1.1. 翻最好就是不翻页直接加载一千数据咯 11.2. 使用VueLazyload 11.3. 五.更加方
- Atitit 艾提拉总结的操作硬件解决方案 目录 1.1. Atitit 列出wifi热点以及连接	1 1.2. 剪贴板	1 1.3. 屏幕 触摸与截屏	1 1.4. 性能 cpu 内存 硬盘 资源
- Atitit 提升开发效率几大策略 目录 1. 提升效率三原则	2 1.1. 更少的工作	2 1.2. 优化配置减少等待	2 1.3. 提升一次性处理能力	2 2. 方法提升	3 2.1. 分类优
- Atitti html5 h5 新特性attilax总结
- Atitit.aticmd v4 新特性q39 添加定时器释放功能
- Atitit.图片木马的原理与防范 attilax 总结