CN105912393A - 禁止bios系统部分功能的方法、装置及计算机 - Google Patents
禁止bios系统部分功能的方法、装置及计算机 Download PDFInfo
- Publication number
- CN105912393A CN105912393A CN201610229039.XA CN201610229039A CN105912393A CN 105912393 A CN105912393 A CN 105912393A CN 201610229039 A CN201610229039 A CN 201610229039A CN 105912393 A CN105912393 A CN 105912393A
- Authority
- CN
- China
- Prior art keywords
- function
- bios
- driver
- bios system
- guid
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Abstract
本发明公开了一种禁止BIOS系统部分功能的方法、装置及计算机,所述方法包括:在预初始化阶段,将BIOS系统的需要禁止的功能的驱动程序对应的全局唯一标识符赋值给变量;在驱动执行阶段,在对BIOS系统的各功能对应的驱动程序进行调度时,跳过对与所述变量中的全局唯一标识符对应的驱动程序的调度,以禁止所述BIOS系统的所述需要禁止的功能。与本发明的技术方案通过将BIOS系统的需要禁止的功能驱动程序的全局唯一标识符赋值给变量,在执行驱动阶段进行调度时,不调度与所述变量中的该全局唯一标识符对应的驱动程序,以禁止BIOS系统的需要禁止的功能,从而避免了额外编写代码来禁止BIOS系统的繁琐,提高了研发效率。
Description
技术领域
本发明涉及终端安全技术领域,特别涉及一种禁止BIOS系统部分功能的方法、装置及计算机。
背景技术
计算机基本输入输出系统(Basic Input Output System,BIOS)程序是加载在计算机硬件系统上的最基本的软件代码。BIOS程序的主要功能是为计算机提供最底层的、最直接的硬件设置和控制。它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。
在BIO研发阶段,为了提高研发效率,需要禁止BIOS的一些功能,等出厂的时候再打开这些功能。此时,为了关闭BIOS的一些功能,通常需要编写额外的功能代码,增加了开发人员的工作量,如此反而降低了研发的效率。
发明内容
有鉴于此,本发明的目的是提供一种能够提高研发效率的禁止BIOS系统部分功能的方法、装置及计算机。
为了实现上述目的,本发明提供了一种禁止BIOS系统部分功能的方法,包括:
在预初始化阶段,将BIOS系统的需要禁止的功能的驱动程序对应的全局唯一标识符赋值给变量;
在驱动执行阶段,在对BIOS系统的各功能对应的驱动程序进行调度时,跳过对与所述变量中的全局唯一标识符对应的驱动程序的调度,以禁止所述BIOS系统的所述需要禁止的功能。
优选地,将BIOS系统的需要禁止的功能的驱动程序对应的全局唯一标识符赋值给变量,包括:
使用壳工具将所述BIOS系统的所述需要禁止的功能的驱动程序所对应的全局唯一标识符赋值给所述变量。
优选地,预初始化阶段之前,包括:
开发所述BIOS系统的各功能对应的驱动程序,并使所述驱动程序与全局唯一标识符一一对应。
本发明还提供一种禁止BIOS系统部分功能的装置,包括:
赋值模块,配置为在预初始化阶段,将BIOS系统的需要禁止的功能的驱动程序对应的全局唯一标识符赋值给变量;
执行模块,配置为在驱动执行阶段,在对BIOS系统的各功能对应的驱动程序进行调度时,跳过对与所述变量中的全局唯一标识符对应的驱动程序的调度,以禁止所述BIOS系统的所述需要禁止的功能。
优选地,所述赋值模块包括壳工具模块,其配置为:
将所述BIOS系统的所述需要禁止的功能的驱动程序所对应的全局唯一标识符赋值给所述变量。
优选地,所述装置还包括:
开发模块,配置为开发所述BIOS系统的各功能对应的驱动程序,并使所述驱动程序与全局唯一标识符一一对应。
本发明还提供一种计算机,包括如权利要求4-6任一项所述的禁止BIOS系统部分功能的装置。
与现有技术相比,本发明具有以下有益效果:本发明的技术方案通过将BIOS系统的需要禁止的功能驱动程序的全局唯一标识符赋值给变量,在执行驱动阶段进行调度时,不调度与所述变量中的该全局唯一标识符对应的驱动程序,以禁止BIOS系统的需要禁止的功能,从而避免了额外编写代码来禁止BIOS系统的繁琐,实现了提高研发效率的技术效果。
附图说明
图1为本发明的禁止BIOS系统部分功能的方法的实施例一的流程图;
图2为本发明的禁止BIOS系统部分功能的方法的实施例二的流程图;
图3为本发明的禁止BIOS系统部分功能的装置的实施例一的示意图;
图4为本发明的禁止BIOS系统部分功能的装置的实施例二的示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本发明基于最新发展的统一可扩展固件接口(Unified ExtensibleFirmware Interface,UEFI)而实现。与传统的BIOS相比,UEFI具有以下优势:一改传统的BIOS系统所采用的中断、硬件端口操作的方法,而采用了驱动/协议(Driver/protocol)的方式进行操作,操作系统启动不需要调用中断,而是直接利用协议/设备路径(protocol/device Path);UEFI便于对第三方的开发。
目前UEFI主要由这几部分构成:UEFI初始化模块、UEFI驱动执行环境、UEFI驱动程序、兼容性支持模块、UEFI高层应用和GUID磁盘分区组成。UEFI初始化模块和驱动执行环境通常被集成在一个只读存储器(ReadOnly Memory,ROM)中。UEFI初始化程序在系统开机的时候最先得到执行,它负责最初的CPU、北桥、南桥及存储器的初始化工作,当这部分设备就绪后,紧接着它就载入UEFI驱动执行环境(Driver ExecutionEnvironment,简称DXE)。当DXE被载入时,系统就可以加载硬件设备的UEFI驱动程序了。DXE使用了枚举的方式加载各种总线及设备驱动,UEFI驱动程序可以放置于系统的任何位置,只要保证它可以按顺序被正确枚举。因此,用户可以把众多设备的驱动放置在磁盘的UEFI专用分区中,当系统正确加载这个磁盘后,这些驱动程序就可以被读取并应用了。在这个特性的作用下,即使新设备再多,UEFI也可以轻松地一一支持,由此克服了传统BIOS捉襟见肘的情形。UEFI能支持网络设备并轻松联网,原因就在于此。
本发明的设计思想正是源于UEFI模块化的设计思想,具体实施例如下:
图1为本发明的禁止BIOS系统部分功能的方法的实施例一的流程图,如图1所示,本实施例的禁止BIOS系统部分功能的方法,具体可以包括如下步骤:
S101,在预初始化阶段,将BIOS系统的需要禁止的功能的驱动程序对应的全局唯一标识符(Globally Unique Identifier,GUID)赋值给变量。
具体地,UEFI框架下的BIOS主要包含两个阶段:一是PEI阶段;另一部分是DXE阶段。PEI阶段主要是用来检测启动模式、加载主存储器初始化模块、检测和加载驱动执行环境核心。DXE阶段是设备初始化的主要环节,它提供了设备驱动和协议接口环境界面。
在计算机研发阶段,BIOS系统的某些功能是不需要的,如果执行了该功能所对应的驱动,还会占用CPU的使用率。因此,为提高研发效率,往往将BIOS系统中的某些功能禁止。由于UEFI的研发是模块化的设计思想,每个功能对应着一段驱动程序,只要禁止执行该功能所对应的驱动程序,也就禁止了该功能的执行。
在计算机技术领域中常常用到的一个工具就是全局唯一标识符,GUID是一种由算法生成的二进制长度为128位的数字标识符。在理想情况下,GUID是唯一的,所以,GUID对于以后的数据导入很方便。
例如,联想笔记本电脑的BIOS系统具有BIOS锁(lock)功能,该功能是用来锁定用户只能更换联想所支持的无线网卡,这个功能就是由一个独立的UEFI驱动程序来实现的。在本实施例中,在对联想笔记本的BIOS系统进行研发的过程中,将BIOS lock功能所对应的UEFI驱动程序所对应的GUID写入到一个变量中,再对变量进行操作来控制该UEFI驱动程序,达到禁止BIOS系统部分功能的目的。
需要说明的是,当需要禁止的BIOS系统的功能为多项功能的情况下,则将该多项功能所对应的驱动程序的GUID列表写入一个变量中。则通过控制该变量,即可控制该多项驱动程序,从而达到禁止该多项功能的目的。
S102,在驱动执行阶段,在BIOS系统进行调度时,跳过对与变量中的全局唯一标识符对应的驱动程序的调度,以禁止BIOS系统的需要禁止的功能。
具体地,在DXE阶段,BIOS系统将执行BIOS系统下的每项功能所对应的驱动程序,具体是由DXE环境下的调度器(dispatcher)来调度驱动程序。再以禁止联想笔记本电脑的BIOS系统中的BIOS lock功能为例,将BIOS lock功能的驱动程序对应的GUID写入变量,在DXE阶段时,dispatcher在调度驱动程序时,检查变量中的GUID,将不会调度GUID所对应的BIOS lock功能的驱动程序。当变量所赋的值为GUID列表时,dispatcher在调度变量时,检查变量中的GUID,将变量中的GUID列表中的所有GUID对应的驱动程序都将不予调度,从而达到禁止GUID列表中所有GUID对应的功能。
本实施例的技术方案通过将需要禁止的BIOS系统的功能驱动程序的全局唯一标识符赋值给变量,在执行驱动阶段进行调度时,不调度与变量中的全局唯一标识符对应的驱动程序,以禁止BIOS系统的需要禁止的功能,从而避免了额外编写代码来禁止BIOS系统的功能,实现了提高研发效率的技术效果。
图2为本发明的禁止BIOS系统部分功能的方法的实施例二的流程图,本实施例的禁止BIOS系统部分功能的方法在上述实施例一的基础上,进一步更加详细地介绍本发明的技术方案。如图2所示,本实施例的禁止BIOS系统部分功能的方法,具体可以包括如下步骤:
S201,开发BIOS系统的各功能对应的驱动程序,并使驱动程序与全局唯一标识符一一对应。
具体地,本实施例的BIOS系统指的是基于UEFI技术的BIOS系统。基于模块化的设计思想,本实施例的BIOS系统具有多个功能模块,每个功能模块对应着一个驱动程序,启动该功能的过程实际就是执行该功能对应的驱动程序的过程,禁止该功能实际就是不执行该功能对应的驱动程序。根据上文对GUID的介绍,可知驱动程序与GUID是唯一对应的。
S202,在预初始化阶段,使用壳工具将BIOS系统需要禁止的功能的驱动程序的全局唯一标识符赋值给变量。
在计算机技术中,壳(shell),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe。它接收用户的命令,然后调用相应的应用程序。同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
例如,联想笔记本电脑的BIOS系统具有BIOS锁(lock)功能,该功能是用来锁定用户只能更换联想所支持的无线网卡,这个功能就是由一个独立的UEFI驱动程序来实现的。在本实施例中,在对联想笔记本的BIOS系统进行研发的过程中,采用shell工具,将BIOS lock功能所对应的UEFI驱动程序所对应的GUID写入到一个变量中,再对变量进行操作来控制该UEFI驱动程序,达到禁止BIOS系统部分功能的目的。
S203,在驱动执行阶段,在对BIOS系统的各功能对应的驱动程序进行调度时,跳过对与变量中的全局唯一标识符对应的驱动程序的调度,以禁止BIOS系统的需要禁止的功能。
具体地,在DXE阶段,BIOS系统将执行BIOS系统下的每项功能所对应的驱动程序,具体是由DXE环境下的dispatcher来调度驱动程序。再以禁止联想笔记本电脑的BIOS系统中的BIOS lock功能为例,将BIOS lock功能的驱动程序对应的GUID写入变量,在DXE阶段时,dispatcher在调度驱动程序时,检查变量中的GUID,将不会调度GUID所对应的BIOS lock功能的驱动程序。当变量所赋的值为GUID列表时,dispatcher在调度变量时,检查变量中的GUID,将变量中的GUID列表中的所有GUID对应的驱动程序都将不予调度,从而达到禁止GUID列表中所有GUID对应的功能。
本实施例的技术方案通过使用系统的壳工具将BIOS系统需要禁止的功能的驱动程序的全局唯一标识符赋值给变量,非常易于实现;同时在执行驱动阶段进行调度时,不调度与变量中的全局唯一标识符对应的驱动程序,以禁止BIOS系统的需要禁止的功能,从而避免了额外编写代码来禁止BIOS系统的功能,实现了提高研发效率的技术效果。
图3为本发明的禁止BIOS系统部分功能的装置的实施例一的示意图,如图3所示,本实施例的禁止BIOS系统部分功能的装置,具体可以包括赋值模块31和执行模块32。
具体地,赋值模块31,配置为在预初始化阶段,将BIOS系统的需要禁止的功能的驱动程序对应的全局唯一标识符赋值给变量。
执行模块32,配置为在驱动执行阶段,在对BIOS系统的各功能对应的驱动程序进行调度时,跳过对与变量中的全局唯一标识符对应的驱动程序的调度,以禁止BIOS系统的需要禁止的功能。
本实施例的禁止BIOS系统部分功能的装置,通过采用上述模块禁止BIOS系统的功能的实现机制与上述图1所示实施例的禁止BIOS系统部分功能的方法的实现机制相同,详细可以参考上述图1所示实施例的记载,在此不再赘述。
图4为本发明的禁止BIOS系统部分功能的装置的实施例二的示意图,本实施例的禁止BIOS系统部分功能的装置在如图1所示的实施例一的基础上,进一步更加详细地介绍本发明的技术方案。如图4所示,本实施例的禁止BIOS系统部分功能的装置,进一步可以包括如下。
赋值模块31可包括壳工具模块,其具体配置为将BIOS系统的需要禁止的功能的驱动程序对应的全局唯一标识符赋值给变量。
进一步地,本实施例的装置还包括:
开发模块41,配置为开发BIOS系统的各功能对应的驱动程序,并使驱动程序与全局唯一标识符一一对应。
本实施例的禁止BIOS系统部分功能的装置,通过采用上述模块禁止BIOS系统的功能的实现机制与上述图2所示实施例的禁止BIOS系统部分功能的方法的实现机制相同,详细可以参考上述图2所示实施例的记载,在此不再赘述。
本发明还提供一种计算机,该计算机包括如图3或图4所示的禁止BIOS系统部分功能的装置,能够实现如图1或图2所示的实施例的方法。
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。
Claims (7)
1.一种禁止BIOS系统部分功能的方法,其特征在于,包括:
在预初始化阶段,将BIOS系统的需要禁止的功能的驱动程序对应的全局唯一标识符赋值给变量;
在驱动执行阶段,在对BIOS系统的各功能对应的驱动程序进行调度时,跳过对与所述变量中的全局唯一标识符对应的驱动程序的调度,以禁止所述BIOS系统的所述需要禁止的功能。
2.根据权利要求1所述的禁止BIOS系统部分功能的方法,其特征在于,将BIOS系统的需要禁止的功能的驱动程序对应的全局唯一标识符赋值给变量,包括:
使用壳工具将所述BIOS系统的所述需要禁止的功能的驱动程序所对应的全局唯一标识符赋值给所述变量。
3.根据权利要求1或2所述的禁止BIOS系统部分功能的方法,其特征在于,预初始化阶段之前,包括:
开发所述BIOS系统的各功能对应的驱动程序,并使所述驱动程序与全局唯一标识符一一对应。
4.一种禁止BIOS系统部分功能的装置,其特征在于,包括:
赋值模块,配置为在预初始化阶段,将BIOS系统的需要禁止的功能的驱动程序对应的全局唯一标识符赋值给变量;
执行模块,配置为在驱动执行阶段,在对BIOS系统的各功能对应的驱动程序进行调度时,跳过对与所述变量中的全局唯一标识符对应的驱动程序的调度,以禁止所述BIOS系统的所述需要禁止的功能。
5.根据权利要求4所述的禁止BIOS系统部分功能的装置,其特征在于,所述赋值模块包括壳工具模块,其配置为将所述BIOS系统的所述需要禁止的功能的驱动程序所对应的全局唯一标识符赋值给所述变量。
6.根据权利要求4或5所述的禁止BIOS系统部分功能的装置,其特征在于,所述装置还包括:
开发模块,配置为开发所述BIOS系统的各功能对应的驱动程序,并使所述驱动程序与全局唯一标识符一一对应。
7.一种计算机,其特征在于,包括如权利要求4-6任一项所述的禁止BIOS系统部分功能的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610229039.XA CN105912393A (zh) | 2016-04-12 | 2016-04-12 | 禁止bios系统部分功能的方法、装置及计算机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610229039.XA CN105912393A (zh) | 2016-04-12 | 2016-04-12 | 禁止bios系统部分功能的方法、装置及计算机 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105912393A true CN105912393A (zh) | 2016-08-31 |
Family
ID=56746976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610229039.XA Pending CN105912393A (zh) | 2016-04-12 | 2016-04-12 | 禁止bios系统部分功能的方法、装置及计算机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105912393A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107368715A (zh) * | 2017-09-14 | 2017-11-21 | 南京百敖软件有限公司 | 一种限制软件使用权限的方法 |
CN108804144A (zh) * | 2018-05-22 | 2018-11-13 | 中国科学院上海高等研究院 | 操作系统启动的控制方法/系统、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526904A (zh) * | 2009-04-16 | 2009-09-09 | 江苏科技大学 | 基于系统bios实现计算机正常与限时开机的切换方法 |
US20090271599A1 (en) * | 2008-04-29 | 2009-10-29 | Inventec Corporation | Method for setting to enable or disable software function |
CN102779050A (zh) * | 2011-04-29 | 2012-11-14 | 联想(新加坡)私人有限公司 | 提供加速的引导性能的系统和方法 |
US20140325665A1 (en) * | 2012-05-11 | 2014-10-30 | Frederick J. Duca | Computer system for preventing the disabling of content blocking software functionality therein, and method therefor |
CN105159810A (zh) * | 2015-10-16 | 2015-12-16 | 合肥联宝信息技术有限公司 | 对计算机系统的bios进行测试的方法及装置 |
-
2016
- 2016-04-12 CN CN201610229039.XA patent/CN105912393A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090271599A1 (en) * | 2008-04-29 | 2009-10-29 | Inventec Corporation | Method for setting to enable or disable software function |
CN101526904A (zh) * | 2009-04-16 | 2009-09-09 | 江苏科技大学 | 基于系统bios实现计算机正常与限时开机的切换方法 |
CN102779050A (zh) * | 2011-04-29 | 2012-11-14 | 联想(新加坡)私人有限公司 | 提供加速的引导性能的系统和方法 |
US20140325665A1 (en) * | 2012-05-11 | 2014-10-30 | Frederick J. Duca | Computer system for preventing the disabling of content blocking software functionality therein, and method therefor |
CN105159810A (zh) * | 2015-10-16 | 2015-12-16 | 合肥联宝信息技术有限公司 | 对计算机系统的bios进行测试的方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107368715A (zh) * | 2017-09-14 | 2017-11-21 | 南京百敖软件有限公司 | 一种限制软件使用权限的方法 |
CN108804144A (zh) * | 2018-05-22 | 2018-11-13 | 中国科学院上海高等研究院 | 操作系统启动的控制方法/系统、存储介质及电子设备 |
CN108804144B (zh) * | 2018-05-22 | 2021-04-27 | 中国科学院上海高等研究院 | 操作系统启动的控制方法/系统、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11307833B2 (en) | Data driven embedded application building and configuration | |
CN103186460A (zh) | 一种生成测试用例脚本的方法、装置及系统 | |
TWI715762B (zh) | 虛擬機器創建方法和裝置 | |
CN106980597B (zh) | 片上系统验证方法及验证系统 | |
US20110252409A1 (en) | Methods and systems to implement non-abi conforming features across unseen interfaces | |
US8448151B2 (en) | Method for binarizing initial script on operating system and operating method of binary script | |
US8869123B2 (en) | System and method for applying a sequence of operations code to program configurable logic circuitry | |
US20170102924A1 (en) | Software architecture for embedded systems | |
CN103853586A (zh) | 一种在uefi层实现无线网卡驱动的方法 | |
CN105975816A (zh) | 移动终端下基于虚拟技术的代码保护方法及系统 | |
WO2018032653A1 (zh) | 一种Java卡应用的功能实现方法及装置 | |
CN109388430A (zh) | 实现微处理器对外设硬件控制的方法 | |
CN106598647A (zh) | 一种智能装置开发平台 | |
CN105912393A (zh) | 禁止bios系统部分功能的方法、装置及计算机 | |
US20060184924A1 (en) | Intelligent platform management interface firmware architecture and method of building the same | |
CN100375029C (zh) | 存储器配置系统与方法 | |
US7412597B2 (en) | Computer system and booting method thereof | |
CN103186388B (zh) | 软件安装方法及装置 | |
CN109086070A (zh) | 一种基于自由逻辑定义的工控行业库封装方法及系统 | |
CN108089854A (zh) | 一种linux系统下pci设备驱动开发系统 | |
CN108399068A (zh) | 函数程序持久化的方法、电子设备及存储介质 | |
CN112416444A (zh) | 一种板卡切换控制方法、装置、设备及介质 | |
CN114866451B (zh) | iOS端路由通信改进方法、装置、存储介质和设备 | |
US6785806B1 (en) | Bios having macro/effector pairs for hardware initialization | |
CN110262833B (zh) | 一种配置应用程序功能的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160831 |
|
RJ01 | Rejection of invention patent application after publication |