CN104216721A - 一种在操作系统启动之前下发配置的方法 - Google Patents
一种在操作系统启动之前下发配置的方法 Download PDFInfo
- Publication number
- CN104216721A CN104216721A CN201310211105.7A CN201310211105A CN104216721A CN 104216721 A CN104216721 A CN 104216721A CN 201310211105 A CN201310211105 A CN 201310211105A CN 104216721 A CN104216721 A CN 104216721A
- Authority
- CN
- China
- Prior art keywords
- configuration
- configuration file
- starting
- operating system
- boot loader
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种在操作系统启动之前下发配置的方法,其在操作系统引导程序Boot Loader(操作系统内核运行之前运行的一段小程序,通过这段小程序,将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境)启动完成后,读取配置文件以便能为操作系统初始化时使用这些参数,即构建Boot Loader和操作系统之间一个信息交换机制,Boot Loader中读取配置,供操作系统启动过程中使用这些参数。该方法能够灵活的配置操作系统启动前需要初始化的参数。
Description
技术领域
本发明涉及一种操作系统配置技术,具体涉及操作系统中的配置文件。
背景技术
用户配置文件就是在用户登录电脑时,或是用户在使用软件时。软件系统为用户所要加载所需环境的设置和文件的集合。它包括所有用户专用的配置设置,如程序项目、屏幕颜色、网络连接、打印机连接、鼠标设置及窗口的大小和位置等。
现有配置方法主要是操作系统起来后,读取解析配置文件,但有许多参数需要在系统起来前就配置好,大部分解决方案把这些值设置成常量,这种方法虽然简单可靠,但当环境发生变化,比如设备需要调试或满足某类应用必须调整前期设置的参数时,只能重新生成映像文件或需要专业人员进行支持,显示上述方案的局限性。
发明内容
本发明针对现有采用操作系统起来后进行配置的方案所存在的问题,而提供一种在操作系统启动之前下发配置的方法。该方法能够灵活的配置操作系统启动前需要初始化的参数。
为了达到上述目的,本发明采用如下的技术方案:
一种在操作系统启动之前下发配置的方法,所述方法在操作系统引导程序Boot Loader(操作系统内核运行之前运行的一段小程序,通过这段小程序,将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境)启动完成后,读取配置文件以便能为操作系统初始化时使用这些参数,即构建Boot Loader和操作系统之间一个信息交换机制,BootLoader中读取配置,供操作系统启动过程中使用这些参数。
在本发明的优选方案中,所述方法包括如下步骤:
(1)通过配置文件生成工具或设备的命令行生成配置文件;
(2)在Boot Loader启动时,把配置文件内容读到特定的内存位置;
(3)操作系统启动前,按照语法解析存放在特定位置的配置,生成可供查询的配置数据库;
(4)操作系统启动时,查询数据库,获得需要的配置参数,如果找不到相应的配置,则使用缺省配置参数;
(5)操作系统启动后,可以通过命令修改配置文件;
(6)重新启动设备,使新的配置文件生效。
进一步的,所述配置文件由4字节校验和、配置文件长度、配置文件数据三部分组成,所述校验和用来检验配置文件是否被破坏,配置文件长度表明了配置文件数据的长度,配置文件数据是由相同长度的多条配置命令组成,所述配置命令的格式为:[关键字:值]。
进一步的,所述步骤(2)的具体实现步骤如下:在Boot Loader启动时,检查到存在配置文件,通过文件的校验和检查配置文件的有效性,如果检查到是合法的配置文件,则以字符串的形式把配置文件拷贝到预保留内存区域,否则跳出处理过程。
进一步的,所述步骤(3)在操作系统启动前,解析配置文件,并把配置文件数据中每条配置命令以关键字为哈希值,插入到配置文件哈希表中,生成配置数据库,创建哈希表使用的内存从预定义的内存中分配。
使用本方法后,可方便的修改操作系统启动过程中设置的参数,通过修改这些参数扩大了映像文件使用范围,增强了设备在单一应用环境下的极限能力。
附图说明
以下结合附图和具体实施方式来进一步说明本发明。
图1为本发明的实施流程图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
在配置操作前,本发明首先在映像文件的数据段预分配一块区域,可通过定义一个字符数组来实现,比如charconfig_buff[VOS_CONFIG_MEM_SIZE],数组的大小可按照需要保存的命令多少来估算,比如规定配置文件中配置命令的长度为N,可允许配置的最大命令数为M,则可以定义VOS_CONFIG_MEM_SIZE值为M*N+8+12*M,其中M*N用来存放配置,8个字节用来存放配置文件的校验和和长度,每个哈希节点需要12个字节,用来保存关键字key,数据value,下一个哈希节点next,12*M用来存放每条命令的哈希节点。从config_buff开始低地址到高地址存放配置文件,从config_buff+VOS_CONFIG_MEM_SIZE高地址到低地址用来分配解析文件过程中分配哈希节点时使用到的内存。
由此,本发明在操作系统启动之前下发配置的具体实施过程如下(参见图1):
1、通过配置文件生成工具或设备的命令行生成配置文件。
该步骤中生成的配置文件由4字节校验和、配置文件长度、配置文件数据三部分组成。校验和用来检验配置文件是否被破坏,配置文件长度表明了配置文件数据的长度,配置文件数据是由相同长度的多条配置命令组成。配置命令的格式定义为:[关键字:值]。
2、在Boot Loader启动时,把配置文件内容读到特定的内存位置。
该步骤具体实现时,在Boot Loader启动时,检查到存在配置文件,通过配置文件中的4字节校验和检查配置文件的有效性,如果检查到是合法的配置文件,则以字符串的形式把配置文件拷贝到预保留内存config_buff区域,否则跳出处理过程。
3、操作系统启动前,按照配置文件的语法格式解析存放在config_buff中的配置,生成可供查询的配置数据库。
在操作系统启动前,解析配置文件,从config_buff+8开始为第一条配置命令,从配置命令中解析到关键字和值,生成哈希节点,并把该节点插入到哈希表,依次解析配置文件中每条命令,并插入哈希表,这样所有配置命令组成一个哈希表数据库。
4、操作系统启动时,以关键字为索引查询数据库,获得需要的配置参数,如果找不到相应的配置,则使用缺省配置参数。
该步骤进行查询数据库时,以配置关键字查找步骤3中形成的哈希表,并以返回的值设置相对应的系统配置参数。
5、操作系统启动后,以设置的参数运行。如果用户希望以新的系统配置参数运行,可以通过命令行修改配置文件,新设置的参数不会立刻生效,需要重新启动设备才能生效。
6、重新启动设备,使新的配置文件生效。
在上述的具体实施过程中,在所有系统参数设置时都要进行合法性检查,以避免错误参数导致系统启动失败或运行错误。
通过上述方案可知,本发明提供的方案能够有效的解决Boot Loader读到配置文件后的存放地点和解析配置文件时机以及解析配置文件时使用到内存操作等方面的问题,实现在Boot Loader启动完成后,读取配置文件以便能为操作系统初始化时使用这些参数,即构建Boot Loader和操作系统之间一个信息交换机制,Boot Loader中读取配置,供操作系统启动过程中使用这些参数。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (5)
1.一种在操作系统启动之前下发配置的方法,其特征在于,所述方法在Boot Loader启动完成后,读取配置文件以便能为操作系统初始化时使用这些参数,即构建Boot Loader和操作系统之间一个信息交换机制,Boot Loader中读取配置,供操作系统启动过程中使用这些参数。
2.根据权利要求1所述的一种在操作系统启动之前下发配置的方法,其特征在于,所述方法包括如下步骤:
(1)通过配置文件生成工具或设备的命令行生成配置文件;
(2)在Boot Loader启动时,把配置文件内容读到特定的内存位置;
(3)操作系统启动前,按照语法解析存放在特定位置的配置,生成可供查询的配置数据库;
(4)操作系统启动时,查询数据库,获得需要的配置参数,如果找不到相应的配置,则使用缺省配置参数;
(5)操作系统启动后,可以通过命令修改配置文件;
(6)重新启动设备,使新的配置文件生效。
3.根据权利要求2所述的一种在操作系统启动之前下发配置的方法,其特征在于,所述配置文件由4字节校验和、配置文件长度、配置文件数据三部分组成,所述校验和用来检验配置文件是否被破坏,配置文件长度表明了配置文件数据的长度,配置文件数据是由相同长度的多条配置命令组成,所述配置命令的格式为:[关键字:值]。
4.根据权利要求2所述的一种在操作系统启动之前下发配置的方法,其特征在于,所述步骤(2)的具体实现步骤如下:在Boot Loader启动时,检查到存在配置文件,通过文件的校验和检查配置文件的有效性,如果检查到是合法的配置文件,则以字符串的形式把配置文件拷贝到预保留内存区域,否则跳出处理过程。
5.根据权利要求2所述的一种在操作系统启动之前下发配置的方法,其特征在于,所述步骤(3)在操作系统启动前,解析配置文件,并把配置文件数据中每条配置命令以关键字为哈希值,插入到配置文件哈希表中,生成配置数据库,创建哈希表使用的内存从预定义的内存中分配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310211105.7A CN104216721A (zh) | 2013-05-31 | 2013-05-31 | 一种在操作系统启动之前下发配置的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310211105.7A CN104216721A (zh) | 2013-05-31 | 2013-05-31 | 一种在操作系统启动之前下发配置的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104216721A true CN104216721A (zh) | 2014-12-17 |
Family
ID=52098257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310211105.7A Pending CN104216721A (zh) | 2013-05-31 | 2013-05-31 | 一种在操作系统启动之前下发配置的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104216721A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105204995A (zh) * | 2015-09-21 | 2015-12-30 | 上海斐讯数据通信技术有限公司 | 一种基于手机平台的动态调试关键参数的方法及系统 |
CN105630562A (zh) * | 2016-01-07 | 2016-06-01 | 东莞钜威新能源有限公司 | 一种电池管理系统初始化的方法和装置 |
CN106020892A (zh) * | 2016-05-26 | 2016-10-12 | 深圳创维数字技术有限公司 | 一种非linux系统软件boot参数传递方法及系统 |
CN106550272A (zh) * | 2015-09-17 | 2017-03-29 | 青岛海信宽带多媒体技术有限公司 | 一种机顶盒的启动方法及机顶盒 |
CN108984219A (zh) * | 2018-08-29 | 2018-12-11 | 迈普通信技术股份有限公司 | 内存参数配置方法及电子设备 |
CN109165023A (zh) * | 2018-07-20 | 2019-01-08 | 紫光华山信息技术有限公司 | 修改iso镜像文件的方法、装置和设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1916846A (zh) * | 2005-08-17 | 2007-02-21 | 联想(北京)有限公司 | 操作系统的自动部署方法 |
CN101866293A (zh) * | 2009-04-20 | 2010-10-20 | 英特尔公司 | 利用预读技术引导系统的操作系统 |
CN102262546A (zh) * | 2010-05-28 | 2011-11-30 | 鸿富锦精密工业(深圳)有限公司 | 无盘启动操作系统的方法及电子装置与服务器 |
US20120005586A1 (en) * | 2010-07-02 | 2012-01-05 | Nokia Corporation | Method and apparatus for dynamic network device start up |
CN102541572A (zh) * | 2010-12-08 | 2012-07-04 | 中兴通讯股份有限公司 | 一种实现操作系统内核引导的方法、系统及装置 |
CN102662717A (zh) * | 2012-04-27 | 2012-09-12 | 深圳市掌讯通讯设备有限公司 | 一种嵌入式系统自引导启动方法 |
-
2013
- 2013-05-31 CN CN201310211105.7A patent/CN104216721A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1916846A (zh) * | 2005-08-17 | 2007-02-21 | 联想(北京)有限公司 | 操作系统的自动部署方法 |
CN101866293A (zh) * | 2009-04-20 | 2010-10-20 | 英特尔公司 | 利用预读技术引导系统的操作系统 |
CN102262546A (zh) * | 2010-05-28 | 2011-11-30 | 鸿富锦精密工业(深圳)有限公司 | 无盘启动操作系统的方法及电子装置与服务器 |
US20120005586A1 (en) * | 2010-07-02 | 2012-01-05 | Nokia Corporation | Method and apparatus for dynamic network device start up |
CN102541572A (zh) * | 2010-12-08 | 2012-07-04 | 中兴通讯股份有限公司 | 一种实现操作系统内核引导的方法、系统及装置 |
CN102662717A (zh) * | 2012-04-27 | 2012-09-12 | 深圳市掌讯通讯设备有限公司 | 一种嵌入式系统自引导启动方法 |
Non-Patent Citations (1)
Title |
---|
张宏波 等: "配置文件在无操作系统保护装置中的应用", 《水电自动化与大坝监测》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106550272A (zh) * | 2015-09-17 | 2017-03-29 | 青岛海信宽带多媒体技术有限公司 | 一种机顶盒的启动方法及机顶盒 |
CN105204995A (zh) * | 2015-09-21 | 2015-12-30 | 上海斐讯数据通信技术有限公司 | 一种基于手机平台的动态调试关键参数的方法及系统 |
CN105204995B (zh) * | 2015-09-21 | 2017-12-22 | 上海斐讯数据通信技术有限公司 | 一种基于手机平台的动态调试关键参数的方法及系统 |
CN105630562A (zh) * | 2016-01-07 | 2016-06-01 | 东莞钜威新能源有限公司 | 一种电池管理系统初始化的方法和装置 |
CN106020892A (zh) * | 2016-05-26 | 2016-10-12 | 深圳创维数字技术有限公司 | 一种非linux系统软件boot参数传递方法及系统 |
CN109165023A (zh) * | 2018-07-20 | 2019-01-08 | 紫光华山信息技术有限公司 | 修改iso镜像文件的方法、装置和设备 |
CN109165023B (zh) * | 2018-07-20 | 2022-02-11 | 新华三信息技术有限公司 | 修改iso镜像文件的方法、装置和设备 |
CN108984219A (zh) * | 2018-08-29 | 2018-12-11 | 迈普通信技术股份有限公司 | 内存参数配置方法及电子设备 |
CN108984219B (zh) * | 2018-08-29 | 2021-03-26 | 迈普通信技术股份有限公司 | 内存参数配置方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107577427B (zh) | 用于区块链系统的数据迁移方法、设备和存储介质 | |
US10324909B2 (en) | Omega names: name generation and derivation utilizing nested three or more attributes | |
EP2966566B1 (en) | Driver program loading method and embedded device | |
CN104216721A (zh) | 一种在操作系统启动之前下发配置的方法 | |
CN106599104B (zh) | 一种基于redis集群的海量数据关联方法 | |
US20130054531A1 (en) | Database cloning | |
US11182365B2 (en) | Systems and methods for distributed storage of data across multiple hash tables | |
CN107977396B (zh) | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 | |
US9483508B1 (en) | Omega names: name generation and derivation | |
CN110019111B (zh) | 数据处理方法、装置、存储介质以及处理器 | |
WO2017045491A1 (zh) | 一种对 sqlite3 型嵌入式数据库进行升级的方法及系统 | |
US9513762B1 (en) | Static content updates | |
US20160048385A1 (en) | Method and apparatus for configuring a software application | |
EP3107010B1 (en) | Data integration pipeline | |
CN106990974B (zh) | 一种app应用更新方法、装置及电子设备 | |
CN105389180A (zh) | 一种基于Android平台的USB端口可配置化方法 | |
CN111163060B (zh) | 一种基于应用组的转发方法、设备以及系统 | |
WO2021114902A1 (zh) | 程序初始化方法、程序初始化装置、终端设备及存储介质 | |
JP2003248635A (ja) | ネットワーク管理プロトコールにおける管理情報ベースのデータベースアクセス方法及びシステム | |
WO2022223038A1 (zh) | 一种键名称生成方法、装置和计算机可读存储介质 | |
CN109947435A (zh) | 服务器集群软件环境的部署方法及系统 | |
US20150100888A1 (en) | Providing a common interface for accessing and presenting component configuration settings | |
US9471587B2 (en) | Remote enumeration of a directory | |
CN113486025A (zh) | 数据存储方法、数据查询方法及装置 | |
WO2013189177A1 (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141217 |