临汾山东漯河饰品美体美文
投稿投诉
美文创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品
漯河衢州
兴义眉山
桂林阳泉
玉溪简阳
山东遂宁
永城新余
梧州洛阳
泸州温州
临汾清远
营口常熟
浙江大连
桐乡宜昌

linux空间(linux基础命令表)

4月12日 六壬会投稿
  linux空间(linux基础命令表)
  一、问题描述
  accessok函数是什么原理?
  问题二、问题分析
  我们在内核空间和用户空间进行数据拷贝的时候必须判断用户空间地址是否合法。主要通过偶函数accessok来判断。1。Linux用户空间与内核地址空间
  Linux操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。
  通常32位Linux内核地址空间划分03G为用户空间,34G为内核空间。注意这里是32位内核地址空间划分,64位内核地址空间划分是不同的。
  进程寻址空间04G
  进程在用户态只能访问03G,只有进入内核态才能访问3G4G
  进程通过系统调用进入内核态
  每个进程虚拟空间的3G4G部分是相同的
  进程从用户态进入内核态不会引起CR3的改变但会引起堆栈的改变2。accessok详解
  原型:accessok(type,addr,size);
  功能:
  accessok检查用户空间指针是否有效注意,根据体系结构的不同,这个函数可能只是检查指针是否在用户空间范围内,在调用这个函数之后,内存访问函数可能仍然返回EFAULT
  参数说明:
  typeTypeofaccess:VERIFYREADorVERIFYWRITE。请注意,VERIFYWRITE是VERIFYREAD的超集如果写入一个块是安全的,那么从它读取总是安全的。addr要检查的块的开始的用户空间指针size要检查的块的大小
  返回值:
  此函数检查用户空间中的内存块是否可用。如果可用,则返回真(非0值),否则返回假(0)。2。源码分析defineaccessok(type,addr,size)(rangeok(addr,size)0)Weuse33bitarithmetichere。。。definerangeok(addr,size)({unsignedlongflag,chkuserptr(addr);asm(adds1,2,3;sbcccs1,1,0;movcc0,0:r(flag),r(roksum):r(addr),Ir(size),0(currentthreadinfo()addrlimit):cc);})staticinlinevoidchkuserptr(constvolatilevoidp,sizetsize){assert(useraddrmax);}
  其中rangeok详解如下:参数对应:flag0roksum1addr2size3
  汇编指令详解adds1,2,3
  等价于:rosumaddrsize
  这个操作会影响状态位(目的是影响是进位标志C)。
  以下的两个指令都带有条件CC,也就是当C0的时候才执行;如果上面的加法指令进位了(C1),则以下的指令都不执行,flag就为初始值currentthreadinfo()addrlimit(非0),并返回。如果没有进位(C0),就执行下面的指令:sbcccs1,1,0
  该指令等价于rosumrosumflag1
  也就是(addrsize)(currentthreadinfo()addrlimit)1,操作影响符号位。。
  如果(addrsize)(currentthreadinfo()addrlimit)1,则C1如果(addrsize)(currentthreadinfo()addrlimit)1,则C0当C0的时候执行以下指令,否则跳过(flag非零)。movcc0,0
  等价于flag0,给flag赋值0。
  综上所述:rangeok宏等价于:如果(addrsize)(currentthreadinfo()addrlimit)1,返回非零值如果(addrsize)(currentthreadinfo()addrlimit),返回零
  而accessok就是检验将要操作的用户空间的地址范围是否在当前进程的用户地址空间限制中。这个宏的功能很简单,完全可以用C实现,不是必须使用汇编。由于这两个函数使用频繁,就使用汇编来实现部分功能来增加效率。3。使用实例
  我们在内核拷贝数据到用户空间或者从用户空间拷贝数据到内核空间,都需要判断用户空间地址是否在用户空间。staticinlineunsignedlongmustcheckcopyfromuser(voidto,constvoiduserfrom,unsignedlongn){if(accessok(VERIFYREAD,from,n))ncopyfromuser(to,from,n);elsesecurityholeplugitmemset(to,0,n);}staticinlineunsignedlongmustcheckcopytouser(voiduserto,constvoidfrom,unsignedlongn){if(accessok(VERIFYWRITE,to,n))
投诉 评论

空间留言文字(朋友空间留言句子)空间留言文字(朋友空间留言句子)小编整理了2021年朋友空间留言句子,欢迎阅读收藏。1、热闹不过人看人,着急不过人等人,难受不过人想人,残酷不过人害人,阴险不过人算人,郁……GIGABYTEZ390AORUSMASTER开箱测试大师1技嘉随着Z390主机板的推出,顺势更替了自家板子的命名,高阶首款Z390AORUSMASTER主机板,採用12相IR数位供电设计,为了满足9代8核5GHz超频而来。新板子也换上……风味人间收官关于到现在风味人间收官这个话题,相信很多小伙伴都是非常有兴趣了解的吧,因为这个话题也是近期非常火热的,那么既然现在大家都想要知道风味人间收官,小编也是到网上收集了一些与风味人间……烧肉怎么烧(烧肉要烧多长时间)用最简单的方法做出意想不到的美食,家庭版的广式脆皮烧肉在家用烤箱就可以做到!ByBOBO蒲公英的自由创意料理组用料猪五花肉1000g盐1勺(15g)五香粉1勺(15……如何共享硬盘(怎么实现多台电脑硬盘共享)有不少深度技术的小伙伴在公司工作的时候,需要跟同事共享文件,用网络传输的话,比较慢,就会使用到共享磁盘来分享,但有一位新同事不知道该怎么设置。本文中深度小编以windows7正……北镇是哪里的(北镇市占地面积)中国历史中的五镇,与朱仙镇、景德镇等城廓不同,它是古代帝王认为山川有灵按方位封祭的几座名山,类似于人们熟知的五岳。相传舜时把全国分为十二州,每州各封一座山作为一州之镇山,……合肥的房价多少(合肥新房价格最新消息)合肥买房格局正在发生改变!随着2021年第一轮集中供地新盘的陆续入市,合肥各个区域的买房门槛也有了一定的提升。滨湖买房总价门槛接近400万今日,滨湖金融板块联发滨语听湖的……内阁制度(明朝的政治制度内阁制度)内阁制度(明朝的政治制度内阁制度)明朝内阁制度是在明朝永乐时期建立的。始明太祖为了进一步加强君主专制权力,先是于洪武十三年杀掉丞相胡惟庸,皇帝自己直接管六部。……普洱是什么茶(普洱茶的功效与作用百度百科)无论是唐代的银生茶,还是明清的普洱茶,都是普洱人的骄傲。普洱人对于茶的热爱由来已久,茶已经融进了他们的血液,成为身体的一部分茶因人而优,人因茶而养,茶与人一起谱写出一曲华美的乐……iPhone监视别人的微信(苹果微信监控)iPhone监视别人的微信(苹果微信监控)一月末的时候,一本黑发表了一篇《你的手机正在被人悄悄的监控,别人能看到屏幕显示的所有内容》的文章。文章主要讲述一款监控软件,只要……1996年出生的姑娘指挥火箭发射这两天关于1996年出生的姑娘指挥火箭发射在网上的热度是非常高的,很多网友们也都是非常关注1996年出生的姑娘指挥火箭发射这个事情,为此小编也是在网上进行了一番搜索查阅相关的信……linux空间(linux基础命令表)linux空间(linux基础命令表)一、问题描述accessok函数是什么原理?问题二、问题分析我们在内核空间和用户空间进行数据拷贝的时候必须判断用户……
教大家特别难受想哭的说说加入工会有什么好处(企业申请工会有什么好处)小米鼠标怎么样(小米无线鼠标怎么换电池)福建省考公告今日丽水猪肉价格,国内猪肉价格今日价名贵中草药种植(名贵药材有哪些?)财神生日是哪天(财神爷生日是哪一天呢)为什么痰咳不出来(咳不上痰是什么原因引起的)特洛伊木马(特洛伊木马神话故事)人死后为什么要盖住脸(死和睡觉一个感觉么)什么的老人(什么样的老人填形容词)错换人生28年案姚策方获赔逾百万仲夏日暮忆胡筠客金台产品介绍宝宝玩积木的好处有哪些绿豆为什么会生虫这样保存就没虫地震后的安全知识教育有哪些中国玩贸易战的老祖宗,手段之高无法想象动力电池的新趋势!龙头再发力图感情线断开上下两条代表什么为你揭开其中秘密CBA最新积分榜广东102110山西升至第9大学生暑假实习证明解析白领女性缓解疲劳的方法知道号码能查手机定位吗(手机电话怎么查定位)毛绒玩具需要检测吗

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找