CN1713141A - 允许用户方式处理在特许执行方式下操作的方法和装置 - Google Patents

允许用户方式处理在特许执行方式下操作的方法和装置 Download PDF

Info

Publication number
CN1713141A
CN1713141A CNA2005100684806A CN200510068480A CN1713141A CN 1713141 A CN1713141 A CN 1713141A CN A2005100684806 A CNA2005100684806 A CN A2005100684806A CN 200510068480 A CN200510068480 A CN 200510068480A CN 1713141 A CN1713141 A CN 1713141A
Authority
CN
China
Prior art keywords
mode
user
special permission
string
under
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2005100684806A
Other languages
English (en)
Other versions
CN100412791C (zh
Inventor
斯蒂芬·L.·布里尼克
许宇程
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1713141A publication Critical patent/CN1713141A/zh
Application granted granted Critical
Publication of CN100412791C publication Critical patent/CN100412791C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

公开了一种允许用户方式处理在特许执行方式下进行操作的方法。申请人的方法提供了一种包括特许执行方式和非特许执行方式的操作系统、以及多个在非特许执行方式下操作的用户方式串。计算设备接收来自第一用户方式串的在特许执行方式下进行操作以执行一个或多个指定任务的请求。申请人的方法授权第一用户方式串在特许执行方式下进行操作,并且第一用户方式串使用特许执行方式执行上述一个或多个指定任务。申请人的方法继续允许第一用户方式串在完成上述一个或多个指定任务之后在特许执行方式下进行操作。

Description

允许用户方式处理在特许执行方式下 操作的方法和装置
技术领域
本发明涉及一种允许用户方式串、即用户方式处理、在特许执行模式下进行操作的方法和装置。
背景技术
计算机处理器和相关操作系统具有两种不同级别的资源和保护是经常的。一种级别称为非特许方式或用户方式,由各种操作系统组成部分、应用程序及其他所谓的“用户”处理或程序使用。在这一级别,操作系统和计算机处理器阻止执行线程执行某些安全性重要的操作。此外还阻止线程直接访问许多系统资源。非特许执行方式的目的是尽可能地隔离用户处理以便使它不会受到其他用户处理或操作系统功能的干扰。
用户方式驱动程序在其中执行包括受保护的子系统代码的其他应用程序代码的非特许处理器方式下运行。用户方式驱动程序除了通过进行系统调用(syscall)外不能访问系统数据,其中系统调用随后会调用系统服务。虽然用户处理自身可能崩溃,但是它应当不能使其他程序或操作系统崩溃。
另一执行级别称为特许方式、系统方式或内核方式。重要的操作系统组成部分在内核方式下实现。内核方式组成部分负责如虚拟内存管理、对中断和异常作出响应、调度执行线程、使多处理器的动作同步及其他重要或敏感功能之类的事情。这种从系统方式中执行的组成部分通常被统称为“内核”。
内核方式驱动程序运行作为操作系统的支持一个或多个受保护的子系统的可执行基础操作系统组成部分的一部分。用户方式和内核方式驱动程序具有不同的结构、不同的入口点和不同的系统接口。一台设备要求用户方式还是内核方式驱动程序取决于设备的类型和已经在操作系统中为它提供的支持。某些设备驱动程序能够完全或部分地在用户方式下运行。用户方式驱动程序具有无限的堆栈空间,可以访问一个或多个API,并且更容易调试。
大部分设备驱动程序在内核方式下运行。内核方式驱动程序能够执行某些受到保护的操作,并且能够访问用户方式驱动程序不能访问的系统结构。然而,增加的访问使得调试更加困难,并且造成系统恶化的可能性更大。当代码在特许内核方式环境下运行时,操作系统故意地对数据完整性和请求有效性执行较少的检查。
发明内容
申请人的发明包括一种允许用户方式处理在特许执行方式下进行操作的方法。申请人的方法提供了一种计算设备、一种包括特许执行方式和非特许执行方式的操作系统、以及多个在非特许执行方式下操作的用户方式串。
计算设备接收来自第一用户方式串的在特许执行方式下进行操作以执行一个或多个指定任务的请求。申请人的方法授权第一用户方式串在特许执行方式下进行操作,并且第一用户方式串使用特许执行方式执行上述一个或多个指定任务。申请人的方法继续允许第一用户方式串在完成上述一个或多个指定任务之后在特许执行方式下进行操作。
附图说明
通过阅读以下结合附图给出的详细说明,将会更好地理解本发明,在附图中类似的参考标识符用来表示类似的单元,并且其中:
图1是显示了申请人的信息存储和检索系统的一个实施例的方框图;
图2是概括了申请人的方法的步骤的流程图;
图3是显示了在用户方式操作系统组成部分和内核方式操作系统组成部分之间的关系的方框图。
具体实施方式
参见例图,类似的数字对应于图中描绘的类似部件。本发明将被描述为实现在一个包括两个或更多群集的信息存储和检索系统中,其中那些群集中的每一个都包括一个或多个处理器、一个或多个数据高速缓存、以及一个或多个非易失性存储设备。然而,对申请人的方法的下列描述并不意味着把申请人的发明限制到通常的数据处理系统或者包括多个群集的数据处理系统,这是因为本发明在此能够被应用于授权在计算设备中设置的操作系统中设置的串在特许执行方式下进行操作。
在图1所示的实施例中,申请人的信息存储和检索系统100包括第一群集101A和第二群集101B。每个群集分别包括一个处理器部分130/140和一个输入/输出部分160/170。每个群集中的内部PCI总线分别经由处理器部分130/140和设备I/O部分160/170之间的远程I/O电桥155/165进行连接。
信息存储和检索系统100进一步包括多个设置在四个主机架(host bays)101、106、111和116中的主机适配器102-105、107-110、112-115、和117-120。每个主机适配器可以包括一个或多个光纤信道端口、一个或多个FICON端口、一个或多个ESCON端口、或者一个或多个SCSI端口。每个主机适配器通过一条或多条公共平台互连总线121连接到两个群集,从而使每个群集能够处理来自任一主机适配器的I/O。
处理器部分130包括微代码131、处理器132、高速缓存134和操作系统135。在某些实施例中,处理器部分130进一步包括存储器133。在某些实施例中,存储器设备133包括随机存取存储器。在某些实施例中,存储器设备133包括非易失性存储器。
处理器部分140包括微代码141、处理器142、高速缓存144和操作系统145。在某些实施例中,处理器部分140进一步包括存储器143。在某些实施例中,存储器设备143包括随机存取存储器。在某些实施例中,存储器设备143包括非易失性存储器。
I/O部分160包括非易失性存储器(“NVS”)162和NVS电池164。I/O部分170包括NVS 172和NVS电池174。
I/O部分160进一步包括多个设备适配器,诸如设备适配器165、166、167和168,并且包括组织成两个阵列、即阵列“A”和阵列“B”的16个盘驱动器。图1所示的实施例显示了两个磁盘阵列。在其他实施例中,申请人的信息存储和检索系统包括大于两个的硬盘阵列。每个驱动器阵列对于主计算机来说看来像是一个或多个逻辑驱动器。
在某些实施例中,阵列“A”和“B”利用RAID协议。在某些实施例中,阵列“A”和“B”包括其中阵列不是依照RAID进行配置的并且有时被称作JBOD阵列、即“Just a Bunch Of Dish(仅仅是一串盘)”的阵列。如本领域技术人员将会理解的那样,RAID(独立盘冗余阵列,Redundant Array of Independent Disks)排列包括按盘驱动器阵列配置的独立的盘驱动器,以获得优于单个大驱动器的性能、容量和可靠性。
在图1所示的实施例中,磁盘阵列“A”包括盘驱动器181、182、183、191、192、193和194。磁盘阵列“B”包括盘驱动器185、186、187、188、196、197和198。
为了使信息存储和检索系统的微代码,例如微代码131(图1),访问硬件和直接管理数据结构与高速缓存,在执行那个微代码时需要特许执行方式访问。为了将系统的微代码编译为在Linux下运行的用户方式二进制应用程序,申请人已经修改了Linux内核的PowerPC分支,以允许具有根许可(UID 0)的用户方式应用程序利用处理器、诸如处理器132(图1)在特许执行方式下执行。
下面参见图2,在步骤210,申请人的方法提供了一种计算设备,它包括处理器、多个用户串、以及包括特许执行方式和非特许执行方式的操作系统。在某些实施例中,步骤210中的计算设备包括信息存储和检索系统、例如系统100。
在步骤220,多个用户串中的一个、即第一用户方式串请求在特许执行方式下进行操作以执行一个或多个指定任务。例如,用户串可以请求在特许执行方式下进行操作以在不允许系统中断时执行微代码。在某些实施例中,步骤220中的请求包括允许请求用户串在“priv_usermode”、即特许执行方式下进行操作的请求。
在某些实施例中,步骤220中的请求通过一个最优先的系统调用激活。在其他实施例中,申请人的“priv_usermode”机制通过一个设备驱动器接口激活。在某些实施例中,具有根级别访问的处理能够经由proc文件、例如“/proc/user_privmode”、设置/查询“user_privmode”状态。
在某些实施例中,申请人的方法从步骤220转到步骤250。在其他实施例中,申请人的方法从步骤220转到步骤230,在其中申请人的方法确定请求串是否被授权使用特许执行方式。在某些实施例中,系统的微代码、例如微代码131、包括一个查找表,它指示哪些用户方式串被授权在特许执行方式下进行操作。在某些实施例中,被授权在特许执行方式下操作的用户方式串包括一个这样指示的标志。
如果在步骤230中申请人的方法确定为请求串不被允许在特许执行方式下进行操作,则该方法从步骤230转到步骤240,在步骤240中该方法拒绝步骤220中的在特许执行方式下进行操作的请求。或者,如果在步骤230中申请人的方法确定为请求串被允许在特许执行方式下进行操作,则该方法从步骤230转到步骤250,在步骤250中该方法授权请求串在特许执行方式下进行操作。
在某些实施例中,请求用户串使用‘echo“1”>/proc/user_privmode’函数激活user_privmode机制。在处理向proc文件中的写入时,user_privmode内核模块修改位于processsestask_struct中的一个标志。这个标志最初被设置为0,以指示user_privmode机制未被激活。调用函数“current-is_priv_user”会将该标志设置为1。在把这个标志设置为1之后,该标志能够由返回到用户状态的内核异常代码进行检查。在某些实施例中,在把这个标志设置为1之后,该标志能够由用于设置监控位(supervisor bit)的内核异常/ret_to_user代码进行检查。
在步骤260,甚至在请求串已经完成步骤220中的一个或多个指定任务之后,申请人的方法继续允许步骤220中的请求串在特许执行方式下进行操作。在某些实施例中,直到计算设备、诸如信息存储和检索系统100被关闭时才撤销对请求串在特许执行方式下进行操作的授权。
在申请人的装置和方法的某些实施例中,申请人的计算设备、例如系统100、利用一个操作系统、例如操作系统135(图1)和/或145(图1)。在某些实施例中,该操作系统包括Linux的修改。如本领域技术人员将会认识到的那样,Linux是一种最初由Linus Torvalds在全世界开发者的帮助下创建的自由Unix型操作系统。在GNU公众许可下开发,用于Linux的源编码可自由地获得。
如本领域技术人员将进一步认识到的那样,并且下面参见图3,Linux包括多个在非特许执行方式下操作的操作系统组成部分,包括组成部分310。操作系统用户方式组成部分310包括例如各种用户方式串。操作系统用户方式组成部分310与多个应用程序、例如应用程序340、应用程序350、应用程序360等进行接口。
包括用户方式串的在非特许执行方式下操作的多个操作系统组成部分与包括内核方式串的在特许执行方式下操作的多个操作系统组成部分320进行通信。内核方式操作系统组成部分320尤其与一个或多个系统硬件设备330进行通信。如本领域技术人员将会认识到的那样,多个操作系统内核方式组成部分320有时被统称为“内核”。
PowerPC linux内核使用MSR寄存器中的MSP_PR位以确定被中断的处理是否正在内核或用户方式空间中执行。因此,如果用户方式处理在MSP_PR打开时执行,则内核可能不正确地假定代码实际上在内核中。为了避免这个问题,申请人的user_privmode代码在到内核的入口上执行,并且将会在内核代码返回到用户空间时执行。此时,检查隐藏在task_struct中的额外变量,并且必要时在任一内核代码检查正在执行的代码包括用户代码还是内核代码之前从SRR1、即用户上下文MSR中删除MSR_PR位。将额外变量添加到task_struct中,并且保存在8KB内核堆栈的末端。
表1描述了申请人的操作系统在linux/sched.h中包括的某些修改。
                            表1
u32 is_priv_user /*该处理是否被允许是priv_user*/
u32 priv_user_mode /*该处理当前是否为priv_user*/
/*priv_user=在监控方式打开时运行的用户方式代码*/
在到Linux内核中的任一入口上执行的代码位于包括在每个PowerPC异常之前的宏EXCEPTION_PROLOG中。表2描述了申请人的操作系统在linux/arc/ppc/kernel/head.S中包括的某些修改。
                             表2
mfsprr 21,SPRG3; /*task_struct中的Grab phys addr*/
lwz r20,IS PRIV USER OFFSET(r21)
cmpwi 0,r20,0;
beq lf; /*如果priv_user_mode没有打开,则跳过*/
mfspr SRR1,r20;
andi r20,r20(~MSR_PR); /*从被中断的处理MSR中删除MSR_PR位*/
mtspr SRR1,r20
1:
表3描述了对linux/arch/ppc/kernel/entry/S的修改,其中其代码在从Linux内核异常处理程序返回到用户方式时执行。
                                 表3
mfspr r21,SPRG3 /*task_struct中的Grab phys addr*/
lwz r20,IS_PRIV_USER_OFFSET(r21)
cmpwi 0.r20,0
beq lf /*如果priv user mode没有打开,则跳过*/
mfspr SRR1,r20
ori r20,r20 MSR_PR /*打开在用户处理中的MSR_PR以使它具有特
lir20,1
stw r20,IS_PRIV_MODE_OFFSET(r21) /*标记这个处理是具有priv的用户方式*/
mtspr SPR1,r20
1:
在某些实施例中,可以将图2中描述的各个步骤进行组合、删除或者重新排序。
在某些实施例中,申请人的发明包括驻留在存储器133(图1)中的指令,其中那些指令由处理器132(图1)执行以执行图2中描述的步骤220、230、240、250和260,其中步骤220包括接收来自用户方式串的请求。在其他实施例中,申请人的发明包括驻留在任何其他计算机程序产品中的指令,其中那些指令由系统100之外的或者在系统100内部的计算机执行以执行图2中描述的步骤220、230、240、250和260,其中步骤220包括接收来自用户方式串的请求。不论是哪种情况,上述指令都可以被编码在一个信息存储媒体、包括例如磁信息存储介质、光信息存储介质、电信息存储介质等中。通过“电子存储介质”,申请人是指例如诸如PROM、EPROM、EEPROM、FlashPROM、压缩闪存、灵巧介质等之类的设备。
虽然已经详细地举例说明了本发明的优选实施例,但是显然本领域技术人员可以在不背离下列权利要求所阐述的本发明的范围的情况下对那些实施例进行修改和改进。

Claims (46)

1.一种在包括处理器的计算设备中允许用户方式处理在特许执行方式下进行操作的方法,包括下列步骤:
提供一个包括特许执行方式和非特许执行方式的操作系统;
提供多个在非特许执行方式下操作的用户方式串;
由第一用户方式串请求在特许执行方式下进行操作以执行一个或多个指定任务;
授权所述第一用户方式串在特许执行方式下进行操作;
由所述第一用户方式串使用所述特许执行方式执行所述一个或多个指定任务;
允许所述第一用户方式串在完成所述一个或多个指定任务之后在所述特许执行方式下进行操作。
2.根据权利要求1的方法,其特征在于:所述操作系统包括一个内核,并且其中所述请求步骤、所述授权步骤和所述执行步骤不包括经由系统调用接口访问所述内核。
3.根据权利要求2的方法,其特征在于:所述请求步骤进一步包括:在启动所述数据存储和检索系统期间所述第一用户方式串请求在特许执行方式下进行操作。
4.根据权利要求3的方法,进一步包括在关闭所述计算设备时撤销对所述请求串在所述特许执行方式下进行操作的授权的步骤。
5.根据权利要求3的方法,进一步包括以下步骤:
在接收对在所述特许执行方式下进行操作的授权之后,由所述第一用户方式串禁止系统中断;
执行所述一个或多个指定任务;
在完成所述一个或多个指定任务之后由所述第一用户方式串允许系统中断。
6.根据权利要求1的方法,其特征在于:所述操作系统包括Linux。
7.根据权利要求6的方法,其特征在于:所述请求步骤进一步包括执行下列函数:
echo“1”>/proc/user_privmode。
8.根据权利要求7的方法,其特征在于:所述提供一个操作系统的步骤进一步包括提供一个包括一个包含标志的变量processestask_struct的操作系统的步骤,所述方法进一步包括设置所述标志为“1”的步骤。
9.根据权利要求8的方法,其特征在于:所述操作系统在linux/sched.h中包括下列代码:
u32 is_priv_user;以及
u32 priv_user_mode。
10.根据权利要求9的方法,其特征在于:所述操作系统在linux/arc/ppc/kernel/head.S中包括下列代码:
mfspr r21,SPRG3;
lwz r20,IS_PRIV_USER_OFFSET(r21);
cmpwi 0,r20,0;
beq lf;
mfspr SRR1,r20;
andi r20,r20(~MSR_PR);
mtspr SRR1,r20;
1:。
11.根据权利要求10的方法,其特征在于:所述操作系统在linux/arch/ppc/kernel/head.S中包括下列代码:
mfspr r21,SPRG3;
lwz r20,IS_PRIV_USER_OFFSET(r21);
cmpwi 0,r20,0
beq lf;
mfspr SRR1,r20;
ori r20,r20 MSR_PR;
li r20,1;
stw r20,IS_PRIV_MODE_OFFSET(r21);
mtspr SRR1,r20;
1:。
12.根据权利要求11的方法,其特征在于:所述计算设备包括一个信息存储和检索系统。
13.根据权利要求12的方法,其特征在于:所述信息存储和检索系统包括一个或多个主机适配器、一个数据高速缓存、一个或多个存储设备适配器和多个信息存储介质。
14.一种制造产品,包括处理器、包括特许执行方式和非特许执行方式的操作系统、多个在非特许执行方式下操作的用户方式串、以及其中配置有允许用户方式处理在特许执行方式下操作的计算机可读程序代码的计算机可用介质,其中计算机可读程序代码包括一系列执行下列步骤的计算机可读程序步骤:
接收来自第一用户方式串的在特许执行方式下进行操作以执行一个或多个指定任务的请求;
确定所述第一用户方式串是否被授权在特许执行方式下进行操作;
如果所述第一用户方式串被授权在特许执行方式下操作,则授权所述第一用户方式串在特许执行方式下进行操作;
允许所述第一用户方式串在完成所述一个或多个指定任务之后在所述特许执行方式下进行操作。
15.根据权利要求14的制造产品,其特征在于:所述操作系统包括一个内核,并且其中包括接收来自所述第一用户方式串的所述请求以及授权所述第一用户方式串在特许执行方式下操作的一系列计算机可读程序步骤的计算机可读程序代码不包括经由系统调用接口访问所述内核。
16.根据权利要求15的制造产品,其特征在于:包括接收所述请求的一系列计算机可读程序步骤的所述计算机可读程序代码进一步包括:包括在启动所述数据存储和检索系统期间接收在特许执行方式下进行操作的所述请求的一系列计算机可读程序步骤的计算机可读程序代码。
17.根据权利要求16的制造产品,所述计算机可读程序代码进一步包括:在关闭所述信息存储和检索系统时撤销对所述请求串在所述特许执行方式下操作的授权的一系列计算机可读程序步骤。
18.根据权利要求16的制造产品,所述计算机可读程序代码进一步包括一系列执行下列步骤的计算机可读程序步骤:
在接收对在所述特许执行方式下进行操作的授权之后,由所述第一用户方式串禁止系统中断;
执行所述一个或多个指定任务;
在完成所述一个或多个指定任务之后由所述第一用户方式串允许系统中断。
19.根据权利要求14的制造产品,其特征在于:所述操作系统包括Linux。
20.根据权利要求19的制造产品,所述计算机可读程序代码进一步包括一系列执行下列函数的计算机可读程序步骤:
          echo“1”>/proc/user_privmode。
21.根据权利要求20的制造产品,其特征在于:所述操作系统包括一个包含标志的变量processestask_struct,所述计算机可读程序代码进一步包括一系列将所述标志设置为“1”的计算机可读程序步骤。
22.根据权利要求21的制造产品,其特征在于:所述操作系统在linux/sched.h中包括下列代码:
u32 is_priv_user;以及
u32 priv_user_mode。
23.根据权利要求22的制造产品,其特征在于:所述操作系统在linux/arc/ppc/kernel/head.S中包括下列代码:
mfspr r21,SPRG3;
lwz r20,IS_PRIV_USER_OFFSET(r21);
cmpwi 0,r20,0;
beq lf;
mfspr SRR1,r20;
andi r20,r20(~MSR_PR);
mtspr SRR1,r20;
1:。
24.根据权利要求23的制造产品,其特征在于:所述操作系统在linux/arch/ppc/kernel/head.S中包括下列代码:
mfspr r21,SPRG3;
lwz r20,IS_PRIV_USER OFFSET(r21);
cmpwi 0,r20,0
beq lf;
mfspr SRR1,r20;
ori r20,r20 MSR_PR;
li r20,1;
stw r20,IS PRIV_MODE_OFFSET(r21);
mtspr SRR1,r20;
1:。
25.一种可与可编程计算机处理器一起使用的、并且其中包含有允许用户方式串在特许执行方式下操作的计算机可读程序代码的计算机程序产品,其中多个用户方式串以设置在一个包括处理器和操作系统的信息存储和检索系统中的微代码形式进行设置,其中操作系统包括特许执行方式和非特许执行方式,该计算机程序产品包括:
使所述可编程计算机处理器接收来自第一用户方式串的在特许执行方式下操作以执行一个或多个指定任务的请求的计算机可读程序代码;
使所述可编程计算机处理器确定所述第一用户方式串是否被授权在特许执行方式下进行操作的计算机可读程序代码;
如果所述第一用户方式串被授权在特许执行方式下进行操作则使所述可编程计算机处理器授权所述第一用户方式串在特许执行方式下进行操作的计算机可读程序代码;
使所述可编程计算机处理器允许所述第一用户方式串在完成所述一个或多个指定任务之后在所述特许执行方式下进行操作的计算机可读程序代码。
26.根据权利要求25的计算机程序产品,其特征在于:所述操作系统包括一个内核,并且其中使所述处理器接收来自所述第一用户方式串的所述请求以及授权所述第一用户方式串在特许执行方式下操作的计算机可读程序代码不包括产生访问所述内核的系统调用。
27.根据权利要求26的计算机程序产品,其特征在于:使所述处理器接收所述请求的所述计算机可读程序代码进一步包括在启动所述数据存储和检索系统期间使所述处理器接收所述在特许执行方式下进行操作的请求的计算机可读程序代码。
28.根据权利要求27的计算机程序产品,进一步包括在关闭所述信息存储和检索系统时使所述可编程计算机处理器撤销对所述请求串在所述特许执行方式下操作的授权的计算机可读程序代码。
29.根据权利要求27的计算机程序产品,进一步包括:
使所述可编程计算机处理器从所述第一用户方式串接收禁止系统中断的一条或多条命令的计算机可读程序代码;
使所述可编程计算机处理器从所述第一用户方式串接收在所述第一用户方式串完成所述一个或多个指定任务之后允许系统中断的一条或多条命令的计算机可读程序代码。
30.根据权利要求25的计算机程序产品,其特征在于:所述操作系统包括Linux。
31.根据权利要求32的计算机程序产品,进一步包括使所述可编程计算机处理器执行下列函数的计算机可读程序代码:
           echo“1”>/proc/user_privmode。
32.根据权利要求31的计算机程序产品,其中所述操作系统包括一个包含标志的变量processestask_struct,所述计算机程序产品进一步包括使所述可编程计算机处理器将所述标志设置为“1”的计算机可读程序代码。
33.根据权利要求32的计算机程序产品,其特征在于:所述操作系统在linux/sched.h中包括下列代码:
u32 is_priv_user;以及
u32 priv_user_mode。
34.根据权利要求33的计算机程序产品,其特征在于:所述操作系统在linux/arc/ppc/kernel/head.S中包括下列代码:
mfspr r21,SPRG3;
lwz r20,IS_PRIV_USER_OFFSET(r21);
cmpwi 0,r20,0;
beq lf;
mfspr SRR1,r20;
andi r20,r20(~MSR_PR);
mtspr SRR1,r20;
1:。
35.根据权利要求34的计算机程序产品,其特征在于:所述操作系统在linux/arch/ppc/kernel/head.S中包括下列代码:
mfspr r21,SPRG3;
lwz r20,IS_PRIV_USER_OFFSET(r21);
cmpwi 0,r20,0
beq lf;
mfspr SRR1,r20;
ori r20,r20 MSR_PR;
li r20,1;
stw r20,IS_PRIV_MODE_OFFSET(r21);
mtspr SRR1,r20;
1:。
36.一种允许用户方式处理在特许执行方式下进行操作的装置,该装置用于包括处理器、包括特许执行方式和非特许执行方式的操作系统、以及多个在非特许执行方式下操作的用户方式串的计算机设备中,包括:
用于由第一用户方式串请求在特许执行方式下进行操作以执行一个或多个指定任务的单元;
用于授权所述第一用户方式串在特许执行方式下进行操作的单元;
用于由所述第一用户方式串使用所述特许执行方式执行所述一个或多个指定任务的单元;
用于允许所述第一用户方式串在完成所述一个或多个指定任务之后在所述特许执行方式下进行操作的单元。
37.如权利要求36的装置,其特征在于:所述操作系统包括一个内核,并且其中所述用于接收来自所述第一用户方式串的所述请求的单元、以及所述用于授权所述第一用户方式串在特许执行方式下操作的单元不经由系统调用接口访问所述内核。
38.根据权利要求37的装置,其特征在于:所述用于接收所述请求的单元进一步包括:用于在启动所述数据存储和检索系统期间接收在特许执行方式下操作的所述请求的单元。
39.根据权利要求38的装置,进一步包括:用于在关闭所述信息存储和检索系统时撤销对所述请求串在所述特许执行方式下进行操作的授权的单元。
40.根据权利要求38的装置,进一步包括:
用于在接收对在所述特许执行方式下进行操作的授权之后由所述第一用户方式串禁止系统中断的单元;
用于执行所述一个或多个指定任务的单元;
用于在完成所述一个或多个指定任务之后由所述第一用户方式串允许系统中断的单元。
41.根据权利要求36的装置,其特征在于:所述操作系统包括Linux。
42.根据权利要求41的装置,进一步包括用于执行下列函数的单元:
echo“1”>/proc/user_privmode。
43.根据权利要求42的装置,其特征在于:所述操作系统包括一个包含标志的变量processestask_struct,所述装置进一步包括用于将所述标志设置为“1”的单元。
44.根据权利要求43的装置,其特征在于:所述操作系统在linux/sched.h中包括下列代码:
u32 is_priv_user;以及
u32 priv_user_mode。
45.根据权利要求44的装置,其特征在于:所述操作系统在linux/arc/ppc/kernel/head.S中包括下列代码:
mfspr r21,SPRG3;
lwz r20,IS_PRIV_USER_OFFSET(r21);
cmpwi 0,r20,0;
beq lf;
mfspr SRR1,r20;
andi r20,r20(~MSR_PR);
mtspr SRR1,r20;
1:。
46.根据权利要求45的装置,其特征在于:所述操作系统在linux/arch/ppc/kernel/head.S中包括下列代码:
mfspr r21,SPRG3;
lwz r20,IS_PRIV_USER_OFFSET(r21);
cmpwi 0,r20,0;
beq lf;
mfspr SRR1,r20;
ori r20,r20 MSR_PR;
li r20,1;
stw r20,IS_PRIV_MODE_OFFSET(r21);
mtspr SRR1,r20;
1:。
CNB2005100684806A 2004-06-24 2005-04-28 允许用户方式处理在特许执行方式下操作的方法和装置 Expired - Fee Related CN100412791C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/877,910 US7669050B2 (en) 2004-06-24 2004-06-24 Method to enable user mode process to operate in a privileged execution mode
US10/877,910 2004-06-24

Publications (2)

Publication Number Publication Date
CN1713141A true CN1713141A (zh) 2005-12-28
CN100412791C CN100412791C (zh) 2008-08-20

Family

ID=35507617

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100684806A Expired - Fee Related CN100412791C (zh) 2004-06-24 2005-04-28 允许用户方式处理在特许执行方式下操作的方法和装置

Country Status (3)

Country Link
US (1) US7669050B2 (zh)
JP (1) JP4898155B2 (zh)
CN (1) CN100412791C (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100915803B1 (ko) * 2006-12-05 2009-09-07 한국전자통신연구원 임베디드 리눅스 커널의 보안성 강화를 위한 응용 프로그램구동 방법 및 시스템
US20080271122A1 (en) * 2007-04-27 2008-10-30 John Edward Nolan Granulated hardware resource protection in an electronic system
US7950022B1 (en) * 2007-06-29 2011-05-24 Emc Corporation Techniques for use with device drivers in a common software environment
US7950025B1 (en) * 2007-06-29 2011-05-24 Emc Corporation Common software environment
CN101978352B (zh) * 2007-12-13 2017-11-03 先进微装置公司 用于具有多重图形子系统、减少的功率消耗模式的计算装置的驱动程序架构、软件和方法
US8321874B2 (en) * 2008-09-30 2012-11-27 Microsoft Corporation Intelligent context migration for user mode scheduling
US8473964B2 (en) 2008-09-30 2013-06-25 Microsoft Corporation Transparent user mode scheduling on traditional threading systems
CN102812431A (zh) 2010-03-22 2012-12-05 Lrdc系统有限公司 用于识别与保护一组源数据的完整性的方法
GB2483907A (en) 2010-09-24 2012-03-28 Advanced Risc Mach Ltd Privilege level switching for data processing circuitry when in a debug mode
US8782380B2 (en) 2010-12-14 2014-07-15 International Business Machines Corporation Fine-grained privilege escalation
US9405682B2 (en) 2012-06-23 2016-08-02 Microsoft Technology Licensing, Llc Storage device access using unprivileged software code
US9785783B2 (en) * 2015-07-23 2017-10-10 Ca, Inc. Executing privileged code in a process
US10325116B2 (en) * 2017-06-30 2019-06-18 Vmware, Inc. Dynamic privilege management in a computer system
US11675902B2 (en) 2018-12-05 2023-06-13 Vmware, Inc. Security detection system with privilege management

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07120286B2 (ja) * 1987-04-02 1995-12-20 株式会社日立製作所 浮動小数点関数擬似命令処理方法
JPS63298447A (ja) * 1987-05-29 1988-12-06 Hitachi Ltd マルチオペレ−ティングシステムコンソ−ル制御方式
JPH04156617A (ja) * 1990-10-19 1992-05-29 Nec Corp 割込み・例外制御方式
US5485409A (en) * 1992-04-30 1996-01-16 International Business Machines Corporation Automated penetration analysis system and method
EP0610677A3 (en) * 1993-02-12 1995-08-02 Ibm Communication device management module operating in two modes.
JPH086819A (ja) * 1994-06-17 1996-01-12 Hitachi Ltd デバイスドライバプログラムのテスト装置およびその方法
US5864683A (en) * 1994-10-12 1999-01-26 Secure Computing Corporartion System for providing secure internetwork by connecting type enforcing secure computers to external network for limiting access to data based on user and process access rights
US5764969A (en) * 1995-02-10 1998-06-09 International Business Machines Corporation Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization
US7124302B2 (en) * 1995-02-13 2006-10-17 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5764889A (en) * 1996-09-26 1998-06-09 International Business Machines Corporation Method and apparatus for creating a security environment for a user task in a client/server system
JPH10187265A (ja) * 1996-12-20 1998-07-14 Nec Shizuoka Ltd 情報処理装置の起動方法
US5893166A (en) * 1997-05-01 1999-04-06 Oracle Corporation Addressing method and system for sharing a large memory address space using a system space global memory section
US6226725B1 (en) * 1998-04-21 2001-05-01 Ibm Method and system in a data processing system for the dedication of memory storage locations
US6598169B1 (en) * 1999-07-26 2003-07-22 Microsoft Corporation System and method for accessing information made available by a kernel mode driver
AU2001243176A1 (en) * 2000-02-16 2001-08-27 Watchguard Technologies, Inc. Computer security using dual functional security contexts
US7475398B2 (en) * 2000-08-01 2009-01-06 Wind River Systems, Inc. System and method for implementing a smart system call
US7003775B2 (en) * 2001-08-17 2006-02-21 Hewlett-Packard Development Company, L.P. Hardware implementation of an application-level watchdog timer
US7024672B2 (en) * 2002-06-26 2006-04-04 Microsoft Corporation Process-mode independent driver model
US7383587B2 (en) * 2002-11-18 2008-06-03 Arm Limited Exception handling control in a secure processing system
US7120794B2 (en) * 2003-10-29 2006-10-10 Qualcomm Inc. System for invoking a privileged function in a device
US7076637B2 (en) * 2003-10-29 2006-07-11 Qualcomm Inc. System for providing transitions between operating modes of a device
JP4246672B2 (ja) * 2004-06-03 2009-04-02 株式会社リコー 画像形成装置および画像形成装置制御方法

Also Published As

Publication number Publication date
JP2006012170A (ja) 2006-01-12
JP4898155B2 (ja) 2012-03-14
US7669050B2 (en) 2010-02-23
CN100412791C (zh) 2008-08-20
US20050289545A1 (en) 2005-12-29

Similar Documents

Publication Publication Date Title
CN1713141A (zh) 允许用户方式处理在特许执行方式下操作的方法和装置
US7594111B2 (en) Secure execution of a computer program
US7603704B2 (en) Secure execution of a computer program using a code cache
US9058492B1 (en) Techniques for reducing executable code vulnerability
CN101578589A (zh) 用户空间虚拟化系统
US8613077B2 (en) Provisional administrator privileges
US20080059726A1 (en) Dynamic measurement of an operating system in a virtualized system
CN1723465A (zh) 加载可信操作系统的方法和装置
WO2017112248A1 (en) Trusted launch of secure enclaves in virtualized environments
CN1760884A (zh) 用于限制安全执行环境的硬件失败信息泄漏的系统和方法
US8316414B2 (en) Reconfiguring a secure system
WO2020097179A1 (en) Systems and methods for stalling host processor
RU2527738C1 (ru) Способ обезвреживания вредоносных программ, блокирующих работу пк, с использованием отдельного устройства для активации пользователем процедуры противодействия вредоносному программному обеспечению
CN1818876A (zh) 在微处理器实现的设备上执行进程的系统和方法
US7950057B1 (en) Driver load manager and method
US20080028141A1 (en) System and Method for Implementing Hard Disk Drive Data Clear and Purge
US20180089440A1 (en) Method and system for runtime instrumentation of software methods
US7536694B2 (en) Exception handling in a multiprocessor system
US7774758B2 (en) Systems and methods for secure debugging and profiling of a computer system
WO2006119233A2 (en) Method for securing computers from malicious code attacks
US8165847B2 (en) Implementing a programmable DMA master with write inconsistency determination
WO2019237864A1 (zh) 一种安全用户架构及权限控制方法
Roessler et al. SCALPEL: Exploring the Limits of Tag-enforced Compartmentalization
US20230367564A1 (en) Rules processing systems and methods with just-in-time compilation for endpoint protection in kernel mode
Huang Software defined memory ownership system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080820

Termination date: 20150428

EXPY Termination of patent right or utility model