CN104461617B - 一种实时操作系统VxWorks的剪裁方法 - Google Patents
一种实时操作系统VxWorks的剪裁方法 Download PDFInfo
- Publication number
- CN104461617B CN104461617B CN201410681907.9A CN201410681907A CN104461617B CN 104461617 B CN104461617 B CN 104461617B CN 201410681907 A CN201410681907 A CN 201410681907A CN 104461617 B CN104461617 B CN 104461617B
- Authority
- CN
- China
- Prior art keywords
- operating system
- function
- cut out
- vxworks
- level
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种实时操作系统VxWorks的剪裁方法,包括:一、组件级剪裁,利用操作系统工具,对操作系统不需要的组件进行剪裁;二、文件级剪裁,梳理Makefile文件,将不需要保留的文件及未被编译的文件进行剪裁;三、函数级剪裁,分析每个函数的调用与被调用关系,将未被调用的函数进行剪裁;四、语句级剪裁,通过代码走查和分析,将不需要的代码进行剪裁。本发明能够解决操作系统剪裁不完全,有冗余代码产生的问题,同时还能提高系统的安全性和可靠性。
Description
技术领域
本发明涉及一种实时操作系统VxWorks的剪裁方法,属于实时操作系统应用领域。
背景技术
操作系统VxWorks是美国WindRiver公司推出的一种嵌入式实时操作系统。VxWorks的微内核Wind是一个具有较高性能的、标准的嵌入式实时操作系统内核,具有快速多任务切换、抢占式任务调度、任务间通信手段多样化等主要特点,使其拥有了任务间切换时间短、中断延迟小、网络流量大等优点,与其它嵌入式实时操作系统相比具有一定的优势。
VxWorks系统具有较好的可裁剪能力,开发者可以通过交叉开发环境对操作系统的功能、大小进行增减,从而可调节应用程序的系统资源。
现有的剪裁方法大多通过开发工具的组件管理界面进行剪裁,但该方法在删除组件时,依赖检查不完全,只能简单的删除明确被选中的组件,而其它依赖于它的组件被保留,在工程中成为遗留的无用垃圾组件,这些组件成为冗余代码,占用着大部分存储空间。在深层嵌入式应用中,操作系统往往只有几十兆的存储空间,冗余代码的存在,使应用程序的存储资源受限。另一个方面,对于高安全和高可靠的安全关键性系统,操作系统中未剪裁的功能可能会给系统带来一些潜在的风险。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提出一种实时操作系统VxWorks的剪裁方法,该方法能够解决操作系统VxWorks剪裁不完全、有冗余代码产生的问题,同时能够提高系统的安全性和可靠性。
本发明的技术解决方案:一种实时操作系统VxWorks的剪裁方法,步骤如下:
步骤一:对操作系统VxWorks进行组件级剪裁:
(1.1)根据操作系统VxWorks要求实现的功能得到需要保留的组件;
(1.2)通过分析操作系统VxWorks组件间的依赖关系,得到与需要保留的组件有依赖关系的组件;
(1.3)通过操作系统VxWorks自带的剪裁软件将操作系统VxWorks中除(1.1)和(1.2)以外的组件进行剪裁;
步骤二:对经过组件级剪裁后的操作系统VxWorks进行文件级剪裁:
(2.1)根据步骤一得到的需要保留的组件和与需要保留的组件有依赖关系的组件,对Makefile文件进行梳理,得到所有需要保留的文件清单;
(2.2)对步骤一剪裁后的操作系统进行编译,根据梳理后得到的文件清单,在Makefile文件中将不需要保留的文件及未被编译的文件进行剪裁;
步骤三:对经过文件级剪裁后的操作系统VxWorks进行函数级剪裁:
(3.1)根据应用程序和操作系统VxWorks之间需要调用的函数接口,在步骤二得到的保留文件中分析各个函数与所述函数接口之间的调用与被调用关系;
(3.2)根据函数的调用与被调用关系,对未被调用的函数进行剪裁;
步骤四:对函数级剪裁后的操作系统VxWorks进行语句级剪裁:
对步骤三得到的操作系统VxWorks的函数源码进行代码走查和分析,找出应用程序不需要的语句以及函数源码中为了与其它组件进行通讯的针对性扩展功能语句,对上述语句进行剪裁,从而完成VxWorks实时操作系统的剪裁。
所述步骤三中的函数接口包括:
板级支持包代码需要调用的操作系统VxWorks提供的应用程序编程接口;
系统框架或用户应用程序需要调用的操作系统VxWorks提供的应用程序编程接口;
操作系统VxWorks内部需要调用的应用程序编程接口。
本发明与现有技术相比具有如下有益效果:
(1)传统的VxWorks的剪裁仅局限于利用VxWorks自身的剪裁软件进行组件级剪裁,属于浅层次剪裁,系统冗余较多,同时占用大量资源;本发明通过采用可分层VxWorks的剪裁方法,经过组件级、文件级、函数级和代码级四个层次的剪裁,将冗余功能组件及无用代码彻底剪裁,实现了对VxWorks源码最大程度的剪裁;
(2)本发明在实现最大程度剪裁的同时,保留了应用程序及操作系统可运行所需的功能组件,节省程序存储器和数据存储器内存空间的同时,提高了操作系统的安全性和可靠性。
附图说明
图1为本发明方法流程图。
具体实施方式
本发明提出一种实时操作系统VxWorks的剪裁方法,如图1所示,包含组件级剪裁、文件级剪裁、函数级剪裁和语句级剪裁四个部分,具体如下:
一、对原始的操作系统VxWorks进行组件级剪裁
(1.1)根据操作系统VxWorks要求实现的功能得到需要保留的组件;
(1.2)通过分析操作系统VxWorks组件间的依赖关系,得到与需要保留的组件有依赖关系的组件;
(1.3)通过操作系统VxWorks自带的剪裁软件将操作系统VxWorks中除(1.1)和(1.2)以外的组件进行剪裁;
例如,经过分析,操作系统中的banner组件、网络组件、串口组件、WDB组件不属于需要保留的组件,且与需要保留的组件没有依赖关系,则可以通过系统软件自带的剪裁软件,如Tornado或Workbench,将上述组件删除。
二、对组件级剪裁后的代码进行文件级剪裁
(2.1)根据步骤一得到的需要保留的组件和与需要保留的组件有依赖关系的组件,对Makefile文件进行梳理,得到所有需要保留的文件清单;
对Makefile文件的内容进行分析,该Makefile文件中包含了当前目录下所有需要编译文件的列表清单,根据需要保留的组件和与需要保留的组件有依赖关系的组件,梳理出需要保留的文件列表清单;
(2.2)对步骤一剪裁后的操作系统进行编译,编译通过后,根据梳理后得到的文件清单,在Makefile文件中将不需要保留的文件及未被编译的文件进行剪裁;
对于未被编译的文件,可以直接在Makefile文件中剪裁;同时根据梳理出的文件清单,对于不需要保留的文件,可以在Makefile文件中去除不需要保留文件对应的.o目标文件;
三、对文件级剪裁后的代码进行函数级剪裁
(3.1)根据应用程序和操作系统VxWorks之间需要调用的函数接口,在步骤二得到的保留文件中分析各个函数与所述函数接口之间的调用与被调用关系;
对于文件级剪裁后保留的每个函数,对该函数与其它功能组件及其函数的相关性进行分析。应用程序和操作系统VxWorks之间需要调用的函数接口主要包括:板级支持包代码(BSP)需要调用的操作系统VxWorks提供的应用程序编程接口;系统框架或用户应用程序需要调用的操作系统VxWorks提供的应用程序编程接口,操作系统VxWorks内部需要调用的应用程序编程接口。凡是应用程序需要保留的功能,其接口所调用的所有函数需要保留,其它函数若被保留的函数所调用,则予以保留;
(3.2)根据函数的调用与被调用关系,将未被调用的函数进行剪裁;
根据(3.1)中分析出的调用关系,将不会对应用程序所使用的应用程序编程接口造成影响的函数进行剪裁;
四、对函数级剪裁后的代码进行语句级剪裁
(4.1)通过代码走查,分析函数源码中应用程序不需要的语句,以及函数源码中为了与其它组件进行通讯的针对性扩展功能语句;
对代码进行分析,其中剪裁的对象可分为:保留函数中,依赖于被剪裁功能组件的代码和变量以及应用程序不需要的功能语句;函数源码中为了与其它组件进行通讯的针对性扩展功能语句(例如内核针对WindView进行的扩展的语句);
(4.2)根据函数源码分析的结果,将不需要的代码进行剪裁。
代码剪裁使用预编译宏进行控制,预编译宏在VxWorks.h头文件中定义为TRUE。如果想恢复为VxWorks剪裁前的代码,只需将预编译宏设置为FALSE。如果剪裁涉及到功能组件库、应用程序接口或者VxWorks内核内部使用的接口,则依次使用具有不同名称的预编译宏进行条件控制编译。
本发明未详细描述内容为本领域技术人员公知技术。
Claims (1)
1.一种实时操作系统VxWorks的剪裁方法,其特征在于步骤如下:
步骤一:对操作系统VxWorks进行组件级剪裁:
(1.1)根据操作系统VxWorks要求实现的功能得到需要保留的组件;
(1.2)通过分析操作系统VxWorks组件间的依赖关系,得到与需要保留的组件有依赖关系的组件;
(1.3)通过操作系统VxWorks自带的剪裁软件将操作系统VxWorks中除(1.1)和(1.2)以外的组件进行剪裁;
步骤二:对经过组件级剪裁后的操作系统VxWorks进行文件级剪裁:
(2.1)根据步骤一得到的需要保留的组件和与需要保留的组件有依赖关系的组件,对Makefile文件进行梳理,得到所有需要保留的文件清单;
(2.2)对步骤一剪裁后的操作系统进行编译,根据梳理后得到的文件清单,在Makefile文件中将不需要保留的文件及未被编译的文件进行剪裁;
步骤三:对经过文件级剪裁后的操作系统VxWorks进行函数级剪裁:
(3.1)根据应用程序和操作系统VxWorks之间需要调用的函数接口,在步骤二得到的保留文件中分析各个函数与所述函数接口之间的调用与被调用关系;
对于文件级剪裁后保留的每个函数,对该函数与其它功能组件及其函数的相关性进行分析; 应用程序和操作系统VxWorks之间需要调用的函数接口主要包括:板级支持包代码需要调用的操作系统VxWorks提供的应用程序编程接口;系统框架或用户应用程序需要调用的操作系统VxWorks提供的应用程序编程接口,操作系统VxWorks内部需要调用的应用程序编程接口; 凡是应用程序需要保留的功能,其接口所调用的所有函数需要保留,其它函数若被保留的函数所调用,则予以保留;
(3.2)根据函数的调用与被调用关系,对未被调用的函数进行剪裁;
根据(3.1)中分析出的调用关系,将不会对应用程序所使用的应用程序编程接口造成影响的函数进行剪裁;
步骤四:对函数级剪裁后的操作系统VxWorks进行语句级剪裁:
对步骤三得到的操作系统VxWorks的函数源码进行代码走查和分析,找出应用程序不需要的语句以及函数源码中为了与其它组件进行通讯的针对性扩展功能语句,对上述语句进行剪裁,从而完成VxWorks实时操作系统的剪裁。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410681907.9A CN104461617B (zh) | 2014-11-24 | 2014-11-24 | 一种实时操作系统VxWorks的剪裁方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410681907.9A CN104461617B (zh) | 2014-11-24 | 2014-11-24 | 一种实时操作系统VxWorks的剪裁方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461617A CN104461617A (zh) | 2015-03-25 |
CN104461617B true CN104461617B (zh) | 2018-01-05 |
Family
ID=52907722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410681907.9A Active CN104461617B (zh) | 2014-11-24 | 2014-11-24 | 一种实时操作系统VxWorks的剪裁方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461617B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132790B (zh) * | 2017-12-22 | 2020-11-03 | 广州酷狗计算机科技有限公司 | 检测无用代码的方法、装置及计算机存储介质 |
CN109345902A (zh) * | 2018-12-07 | 2019-02-15 | 江西洪都航空工业集团有限责任公司 | 一种飞行模拟器飞机仿真系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102056022A (zh) * | 2010-10-26 | 2011-05-11 | 深圳创维-Rgb电子有限公司 | 一种操作系统在机顶盒中的应用方法、装置及机顶盒 |
CN102360305A (zh) * | 2011-10-09 | 2012-02-22 | 中国航天科技集团公司第五研究院第五一三研究所 | 用于航天计算机的VxWorks操作系统裁剪定制方法 |
CN103970532A (zh) * | 2014-04-09 | 2014-08-06 | 国家电网公司 | 一种用于IEC61850协议转换设备的VxWorks操作系统的设计方法 |
-
2014
- 2014-11-24 CN CN201410681907.9A patent/CN104461617B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102056022A (zh) * | 2010-10-26 | 2011-05-11 | 深圳创维-Rgb电子有限公司 | 一种操作系统在机顶盒中的应用方法、装置及机顶盒 |
CN102360305A (zh) * | 2011-10-09 | 2012-02-22 | 中国航天科技集团公司第五研究院第五一三研究所 | 用于航天计算机的VxWorks操作系统裁剪定制方法 |
CN103970532A (zh) * | 2014-04-09 | 2014-08-06 | 国家电网公司 | 一种用于IEC61850协议转换设备的VxWorks操作系统的设计方法 |
Non-Patent Citations (1)
Title |
---|
实时嵌入式操作系统VxWorks结构分析和剪裁;孙凤丽等;《软件产业与工程》;20130313;第33-36页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104461617A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019114833A1 (en) | Method, device, terminal and storage medium for processing application | |
AU2014388153B2 (en) | Client intent in integrated search environment | |
AU2018206821A1 (en) | Intelligent cloud engineering platform | |
JP2021515950A (ja) | クラウドコンピューティングのためのシステム及び方法 | |
US11087090B2 (en) | System for focused conversation context management in a reasoning agent/behavior engine of an agent automation system | |
CN103699389A (zh) | 一种基于编译选项的Linux内核模块关系提取方法 | |
US9519537B2 (en) | Apparatus, system and method for application log data processing | |
Prehofer et al. | From internet of things mashups to model-based development | |
CN103595769B (zh) | Sdk实现文件上传的方法与装置 | |
CN104461617B (zh) | 一种实时操作系统VxWorks的剪裁方法 | |
CN104166701A (zh) | 机器学习方法及系统 | |
US20210012237A1 (en) | De-identifying machine learning models trained on sensitive data | |
CN110413286A (zh) | 一种应用部署方法、装置及设备 | |
CN105718307A (zh) | 进程管理方法及进程管理装置 | |
CN110955434B (zh) | 软件开发包处理方法、装置、计算机设备和存储介质 | |
CN109902487A (zh) | 基于应用行为的Android应用恶意性检测方法 | |
CN105159668B (zh) | PaaS系统中的类加载实现方法及装置 | |
GB2521637A (en) | Messaging digest | |
US20200117711A1 (en) | Methods and systems for processing language with standardization of source data | |
US11740995B2 (en) | Source quality check service | |
CN111427770B (zh) | 一种资源测试方法及相关设备 | |
Xiaobing et al. | An insight into traffic safety management system platform based on cloud computing | |
CN106406857B (zh) | 一种动态链接库的内存复用方法和装置 | |
CN110516263A (zh) | 一种文本翻译方法及装置 | |
CN114385175A (zh) | 一种代码生成方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20161021 Address after: 100048 Haidian District, Beijing Fu Cheng Road, No. 16 Applicant after: China Academy of Aerospace Systems Science and Engineering Address before: 100048, Fu Cheng Road, Beijing, Haidian District, No. 14 Applicant before: Beijing information is controlled research institute |
|
GR01 | Patent grant | ||
GR01 | Patent grant |