文档章节

验证CPU是否支持sysenter和sysexit指令

yandong
 yandong
发布于 2015/11/22 10:56
字数 194
阅读 61
收藏 2

原文链接:http://yandong.org/?p=249

0x1 写个module

static int my_init_module(void){
	if (!boot_cpu_has(X86_FEATURE_SEP)) 
       {
                printk(KERN_ERR "NOT SUPPORT \n");
		return 0;
	}
	printk(KERN_ERR "SUPPORT \n");
        return 0;}

0x2 使用CPUID指令

unsigned int medx,mecx;  medx=1;mecx=0;  
 __asm__ __volatile__("mov %0, %%eax;cpuid;mov %%edx,%0;mov %%ecx,%1"::"m"(medx),"m"(mecx));  printf("%08x %08x\n",medx,mecx);  if(medx&(1<<11)) puts("fast int---sysenter!");

在调用 CPUID 指令之后,还需要查看 CPU 的 Family、Model、Stepping 属性来确认,因为据称 Pentium Pro 处理器会报告 SEP 但是却不支持 sysenter/sysexit 指令。只有 Family 大于等于 6,Model 大于等于 3,Stepping 大于等于 3 的时候,才能确认 CPU 支持 sysenter/sysexit 指令。

查看 cat /proc/cpuinfo 可以查看这些信息


© 著作权归作者所有

yandong
粉丝 8
博文 40
码字总数 39258
作品 0
海淀
私信 提问
kernel panic not syncing attempting to kill init

问题背景: 我使用Xen虚拟机,想拦截sysenter指令。我通过设置MSR_SYSENTER_CS为0,这样sysenter和sysexit执行的时候会产生一个#GP错误,我在xen里面拦截到这个错误。 获取VM的一些数据之后,...

yandong
2014/05/17
275
1
linux /proc/cpuinfo文件分析

基于不同指令集(ISA)的CPU产生的/proc/cpuinfo文件不一样,基于X86指令集CPU的/proc/cpuinfo文件包含如下内容: processor  : 0 vendorid  :GenuineIntel cpu family  :6 model ...

wulei163
2014/01/03
400
0
/proc/cpuinfo文件分析(查看CPU信息)

  在Linux系统中,提供了proc文件系统显示系统的软硬件信息。如果想了解系统中CPU的提供商和相关配置信息,则可以通过/proc/cpuinfo文件得到。本文章针对该文件进行简单的总结。   基于不...

zhiqiangw
2016/11/18
46
0
虚拟化技术简介(Virtualization Technology Introduction)

1、什么是虚拟化? 虚拟化(Virtualization)技术最早出现在 20 世纪 60 年代的 IBM 大型机系统,在70年代的 System 370 系列中逐渐流行起来,这些机器通过一种叫虚拟机监控器(Virtual Mac...

kevin19851228
2018/06/26
0
0
【第一章】操作系统的运行环境和体系环境

操作系统运行环境与运行机制 操作系统的主要工作包括程序的执行、完成与体系结构相关的工作、完成应用程序所需的共性任务。 操作系统的运行环境 1.CPU状态2.中断/异常机制 操作系统运行机制:...

qq_33414271
2018/03/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

开发中常用的正则表达式

为了能够更好地理解如何在C#环境中使用正则表达式,这里整理了一些常用的正则表达式: 罗马数字: string p1 = "^m*(d?c{0,3}|c[dm])" + "(l?x{0,3}|x[lc])(v?i{0,3}|i[vx])$";string t1 ......

木庄
35分钟前
4
0
【.NET程序打包】VS2019使用Installer Projects打包

C#—使用Installer Projects打包桌面应用程序 前言 打包桌面应用程序实在是一个不常使用的东西,偶尔使用起来经常会忘东忘西的耽误时间,因此,这篇文章多以图片记录过程,也是用于备忘。 下...

_Somuns
39分钟前
4
0
自定义注解,使用动态代理解决网站的字符集编码问题

第1章设置环境 安装操作系统,安装备份(镜像): JDK: 设置环境变量Eclipse:解压即可 Eclipse自身解压目录不包括中文 代码工作空间目录不包括中文Tomcat:解压不要包含中文目录M...

蓝来杯往
44分钟前
6
0
Solr中的字段类型field type

Solr含有多种字段类型,可用的字段类型基本都定义在了包org.apache.solr.schema中,列举如下: 类 说明 BinaryField 二进制数据 BoolField 布尔值,其中’t’/’T’/’1’都是true Collatio...

gantaos
57分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部