社区
硬件/系统
帖子详情
请详细解释下ring3,ring0和应用编程,驱动编程之间的关系?
dean350
2008-12-08 05:51:20
请详细解释下ring3,ring0和应用编程,驱动编程之间的关系?
应用编程是否通常在ring3下,驱动编程通常在ring0下?
还是通过驱动编程进入ring0是最方便的?
...全文
546
12
打赏
收藏
请详细解释下ring3,ring0和应用编程,驱动编程之间的关系?
请详细解释下ring3,ring0和应用编程,驱动编程之间的关系? 应用编程是否通常在ring3下,驱动编程通常在ring0下? 还是通过驱动编程进入ring0是最方便的?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bainan
2009-01-04
打赏
举报
回复
[Quote=引用 9 楼 feeboby 的回复:]
应用程序运行在ring3 下
驱动程序运行在ring0 下
应用程序应该通过OS 提供的接口call 到驱动程序,让驱动程序执行ring0 的任务
[/Quote]
回答得已经很简洁明确了!
e_sharp
2008-12-13
打赏
举报
回复
UP
classfree
2008-12-13
打赏
举报
回复
所谓的RING0 和 RING3是操作系统的权限级别
RING0下面可以有很高的特权,应用层调用的API基本上都是RING0完成的,操作系统只是封装了一下共应用层调用.
驱动通常都是工作在RING0下面, 应用层通常工作在RING3下面,但是应用层也可以直接调用某些RING0下面的函数.
通过驱动进入RING0的确是最简单的!
feeboby
2008-12-12
打赏
举报
回复
应用程序运行在ring3 下
驱动程序运行在ring0 下
应用程序应该通过OS 提供的接口call 到驱动程序,让驱动程序执行ring0 的任务
oyljerry
2008-12-12
打赏
举报
回复
普通应用程序跑在ring3,底层驱动跑在ring0,所以他们之间需要一些通信方式来打交道
ilovedrv
2008-12-12
打赏
举报
回复
ring3,ring0是cpu硬件特权级别,应用程序和驱动程序是软件开发上的概念,是操作系统上个概念
驱动程序显然是运行ring0级别,至于应用程序一般情况下是运行ring3级别,不过也可以通过特殊的手段进入ring0级别
weidong0210
2008-12-12
打赏
举报
回复
不懂 UP
糊里糊涂
2008-12-12
打赏
举报
回复
程序通过调用win32子系统(ring3)的接口(win32 api),win32 api通过sdt调用系统服务(ring3到ring0),系统服务然后将相应的请求解释为IRP发给相应的设备驱动实现相关的硬件底层的操作。
ivan_08
2008-12-12
打赏
举报
回复
AP(Application Programming)应用编程,指MCU可以在系统中获取新代码并对自己重新编程,即可用程序来改变程序。
ivan_08
2008-12-12
打赏
举报
回复
对于你的问题,看看这句
Windows只使用其中的两个级别RING0和RING3,RING0只给操作系统用,RING3谁都能用。如果普通应用程序企图执行RING0指令,则Windows会显示“非法指令”错误信息。尽管有CPU的特权级别作保护。
ivan_08
2008-12-12
打赏
举报
回复
什么是RING3?这得从CPU指令系统(用于控制CPU完成各种功能的命令)的特权级别说起。在CPU的所有指令中,有一些指令是非常危险的,如果错用,将导致整个系统崩溃。比如:清内存、设置时钟等。如果所有的程序都能使用这些指令,那么你的系统一天死机n回就不足为奇了。所以,CPU将指令分为特权指令和非特权指令,对于那些危险的指令,只允许操作系统及其相关模块使用,普通的应用程序只能使用那些不会造成灾难的指令。形象地说,特权指令就是那些儿童不宜的东东,而非特权指令则是老少皆宜。
Intel的CPU将特权级别分为4个级别:RING0,RING1,RING2,RING3。Windows只使用其中的两个级别RING0和RING3,RING0只给操作系统用,RING3谁都能用。如果普通应用程序企图执行RING0指令,则Windows会显示“非法指令”错误信息。尽管有CPU的特权级别作保护。
dean350
2008-12-12
打赏
举报
回复
忘了加分,怪不得没人回答。
PF_RING中文用户指南
Linux下PF_RING高速数据包捕获库的使用说明。 版本5.4.4中文翻译版本。
Win
Ring0
及其源码
Win
Ring0
及其源码,通过获取
ring0
权限,可以在
应用
程序中直接执行CPU需要
ring0
才能执行的指令。
[14本经典Android开发教程]-8-Linux内核阅读心得体会
[14本经典Android开发教程] 8 Linux内核阅读心得体会 读核感悟 2 读核感悟 Linux内核启动 内核的生成 2 读核感悟 Linux内核启动 从hello world说起 3 读核感悟 Linux内核启动 BIOS 5 读核感悟 Linux内核启动 setup辅助程序 6 读核感悟 Linux内核启动 内核解压缩 8 读核感悟 Linux内核启动 开启页面映射 9 读核感悟 Linux内核启动 链接脚本 11 读核感悟 伪装现场 系统调用参数 13 读核感悟 伪装现场 fork 系统调用 15 读核感悟 伪装现场 内核线程: 17 读核感悟 伪装现场 信号通信 19 读核感悟 kbuild系统 内核模块的编译 22 读核感悟 kbuild系统 编译到内核和编译成模块的区别 24 读核感悟 kbuild系统 make bzImage的过程 26 读核感悟 kbuild系统 make menuconfig 31 读核感悟 文件系统 用C来实现面向对象 32 读核感悟 设计模式 用C来实现虚函数表和多态 32 读核感悟 设计模式 用C来实现继承和模板 33 读核感悟 设计模式 文件系统和设备的继承和接口 34 读核感悟 设计模式 文件系统与抽象工厂 36 读核感悟 阅读源代码技巧 查找定义 37 读核感悟 阅读源代码技巧 变量命名规则 42 读核感悟 内存管理 内核中的页表映射总结 43 读核感悟 健壮的代码 exception table 内核中的刑事档案 44 读核感悟 定时器 巧妙的定时器算法 45 读核感悟 内存管理 page fault处理流程 45 读核感悟 文件读写 select实现原理 47 读核感悟 文件读写 poll的实现原理 49 1 功能介绍: 49 2 关键的结构体: 49 3 poll的实现 49 4 性能分析: 50 读核感悟 文件读写 epoll的实现原理 50 1 功能介绍 50 2 关键结构体: 51 3 epoll create的实现 53 4 epoll ctl的实现 53 5 epoll wait的实现 54 6 性能分析 54 读核感悟 同步问题 同步问题概述 55 1 同步问题的产生背景 55 2 内核态与用户态的区别 55 读核感悟 同步问题 内核态自旋锁的实现 56 1自旋锁的总述 56 2非抢占式的自旋锁 56 3 锁的释放 57 4 与用户态的自旋锁的比较 57 5 总结 58 读核感悟 内存管理 free命令详解 58 读核感悟 文件读写 2 6 9内核中的AIO 59 1 AIO概述 59 2 内核态AIO的使用 61 读核感悟 文件读写 内核态AIO相关结构体 61 1 内核态AIO操作相关信息 61 2 AIO上下文: 63 3 AIO ring 63 4 异步I O事件的返回信息 64 读核感悟 文件读写 内核态AIO创建和提交操作 65 1 AIO上下文的创建 io setup 65 2 AIO
请
求的提交:io submit实现机制 66 读核感悟 文件操作 AIO操作的执行 66 1 在提交时执行AIO 66 2 在工作队列中执行AIO 66 3 负责AIO执行的核心函数aio run iocb 67 4 AIO操作的完成 67 读核感悟 文件读写 内核态是否支持非direct I O方式的AIO 67 已上传7本: [14本经典Android开发教程] 1 Android开发从入门到精通 http: download csdn net detail cleopard 8355245 [14本经典Android开发教程] 2 Android开发手册 API函数详解 http: download csdn net detail cleopard 8374487 [14本经典Android开发教程] 3 Android SDK 中文开发文档 http: download csdn net detail cleopard 8380429 [14本经典Android开发教程] 4 Android
应用
程序开发36技 http: download csdn net detail cleopard 8380495 [14本经典Android开发教程] 5 linux Android基础知识总结 http: download csdn net detail cleopard 8380529 [14本经典Android开发教程] 6 Android
驱动
开发入门及手机案例开发分析教程 http: download csdn net detail cleopard 8388019 [14本经典Android开发教程] 7 Android
编程
入门教程 http: download csdn net detail cleopard 8388043 剩余8本稍后上传 @或直接从这里寻找@ http: download csdn net user cleopard album @更多@ http: cleopard download csdn net 福利 http: xuemeilaile com 17份软件测试文档 http: download csdn net album detail 1425 13份WPF经典开发教程 http: download csdn net album detail 1115 C#资料合辑二[C#桌面
编程
入门篇] http: download csdn net album detail 957 C#资料合辑一[C#入门篇] http: download csdn net album detail 669 [Csharp高级
编程
第6版 ] 共8压缩卷 http: download csdn net album detail 667 10个[精品资源]Java学习资料合辑[一] http: download csdn net album detail 663 10个C#Socket
编程
代码示例 http: download csdn net album detail 631 6份GDI+程序设计资源整合[全零分] http: download csdn net album detail 625 2014年移动游戏行业数据分析 http: download csdn net detail cleopard 8340331 一文读懂2014年全球互联网广告新生态 http: download csdn net detail cleopard 8340303">[14本经典Android开发教程] 8 Linux内核阅读心得体会 读核感悟 2 读核感悟 Linux内核启动 内核的生成 2 读核 [更多]
Windows
驱动
—Windows
应用
程序和Windows
驱动
通信
编程
文章目录介绍知识前奏内核方面
编程
设备对象和符号链接分发函数
应用
方面
编程
打开设备设备控制
请
求代码
应用
层代码内核层代码完整工程代码测试效果 介绍 Windows
应用
程序(
Ring3
层)和内核
驱动
(
Ring0
层)是运行在Windows权限的不同级别,简单来说各有优势。内核层权限较大 能做很多
应用
程序办不到的事情 不直接面向程序使用的用户,Windows
应用
程序在
Ring3
层 直接面向用户,界面友好。当
应用
层办不到的时候就需要借助内核层了,所以 win32
应用
程序和Windows内核
驱动
通信是有必要的。Windo
从
Ring3
切换到
Ring0
的代码实现与分析
本文还有配套的精品资源,点击获取 简介:
Ring3
和
Ring0
是处理器的特权级别,定义了程序对系统资源的访问权限。从
Ring3
切换到
Ring0
是进行系统调用或
驱动
程序开发时的关键步骤。本课程设计项目提供了从
Ring3
切换到
Ring0
的代码实现,涵盖了中断、系统调用、特权检查、保护环结构、寄存器状态和返回机制等知识点。通过分析代码,学生将深入理解操作系统原理、内核
编程
和
驱动
开...
硬件/系统
2,644
社区成员
17,232
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章