CN104199713A - 一种嵌入式Linux操作系统裁剪定制方法 - Google Patents
一种嵌入式Linux操作系统裁剪定制方法 Download PDFInfo
- Publication number
- CN104199713A CN104199713A CN201410421290.7A CN201410421290A CN104199713A CN 104199713 A CN104199713 A CN 104199713A CN 201410421290 A CN201410421290 A CN 201410421290A CN 104199713 A CN104199713 A CN 104199713A
- Authority
- CN
- China
- Prior art keywords
- operating system
- built
- file
- linux operating
- powerpc
- 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
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种嵌入式Linux操作系统裁剪定制方法,属于操作系统裁剪技术领域,本发明要解决目前基于PowerPC硬件架构的嵌入式Linux操作系统代码量过于庞大、冗余模块过多、不易阅读和修改的问题。技术方案为:对基于PowerPC硬件架构的嵌入式Linux操作系统进行裁剪定制,包括如下步骤:对PowerPC硬件架构中的嵌入式Linux操作系统进行源码文件级裁剪;对PowerPC硬件架构中的嵌入式Linux操作系统进行源码代码级裁剪;对裁剪后的嵌入式Linux操作系统源码进行完整编译,生成嵌入式Linux操作系统内核文件;使用编译完成的嵌入式Linux操作系统内核文件,烧写到PowerPC硬件架构中的主板的存储器中,然后进行综合性测试,验证裁剪后的嵌入式Linux操作系统功能或性能是否正常。
Description
技术领域
本发明涉及一种操作系统裁剪技术领域,具体地说是一种嵌入式Linux操作系统裁剪定制方法。
背景技术
PowerPC是一种RISC架构的CPU,PowerPC 处理器有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量。PowerPC 处理器有 32 个(32 位或 64 位)GPR(通用寄存器)以及诸如 PC(程序计数器,也称为 IAR/指令地址寄存器或 NIP/下一指令指针)、LR(链接寄存器)、CR(条件寄存器)等各种其它寄存器,还有 32 个 64 位 FPR(浮点寄存器)。
Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。Linux操作系统是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
随着基于PowerPC硬件架构的硬件产品在网络安全、数据存储等领域应用日益广泛,对基于PowerPC硬件架构的嵌入式Linux操作系统提出了越来越高的要求,而目前基于PowerPC硬件架构的嵌入式Linux操作系统代码量过于庞大、冗余模块过多、不易进行阅读和修改,因此需要对操作系统进行有针对性的裁剪和定制。现有操作系统的裁剪定制方式,一般采用操作系统自带开发工具进行选择性编译,即只对所需要的部分进行编译,但是不需要的部分仍然作为冗余代码存在,当应用软件发生异常,可能进入冗余代码区域,从而引起系统异常。
发明内容
本发明的技术任务是针对以上不足之处,提供一种能够保证嵌入式Linux操作系统的自主性、可控性,从而满足各种嵌入式领域的应用的一种嵌入式Linux操作系统裁剪定制方法。
本发明解决其技术问题所采用的技术方案是:
一种嵌入式Linux操作系统裁剪定制方法,对基于Power PC硬件架构的嵌入式Linux操作系统进行裁剪定制,包括如下步骤:
步骤一、对PowerPC硬件架构中的嵌入式Linux操作系统进行源码文件级裁剪;
步骤二、对PowerPC硬件架构中的嵌入式Linux操作系统进行源码代码级裁剪;
步骤三、对裁剪后的嵌入式Linux操作系统源码进行完整编译,生成嵌入式Linux操作系统内核文件;
步骤四、使用编译完成的嵌入式Linux操作系统内核文件,烧写到PowerPC硬件架构中的主板的存储器中,然后进行综合性测试,验证裁剪后的嵌入式Linux操作系统功能或性能是否正常。
步骤一具体包括如下步骤:
(1)、在PowerPC硬件架构中的SDK源码目录下,将与具体所采用的PowerPC处理器体系结构无关的内核源码目录裁剪掉;
(2)、在PowerPC硬件架构中的SDK源码目录下,将与具体所采用的PowerPC处理器所需应用不相关的操作系统模块对应的源码文件裁剪掉;
(3)、根据Bit Bake bb文件中的源码编译设置,将bb文件指定的不被编译的源码文件裁剪掉。
步骤二具体包括如下步骤:
(1)、通过分析被裁剪的嵌入式Linux操作系统模块,将内核源码中被嵌入式Linux操作系统模块调用的代码删除;
(2)、在头文件中将被删除代码相关的变量声明删除;
(3)、将保留的头文件和源文件中与PowerPC处理器体系结构不相关的条件编译删除。
步骤四中的综合性测试包括单元测试、整体测试。
本发明的一种嵌入式Linux操作系统裁剪定制方法和现有技术相比,能够解决目前基于PowerPC硬件架构的嵌入式Linux操作系统代码量过于庞大、冗余模块过多、不易阅读和修改等问题,能够保证嵌入式Linux操作系统的自主性、可控性,从而满足各种嵌入式领域的应用。
附图说明
下面结合附图对本发明进一步说明。
附图1为一种嵌入式Linux操作系统裁剪定制方法的流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
实施例1:
本发明的一种嵌入式Linux操作系统裁剪定制方法,对基于Power PC硬件架构的嵌入式Linux操作系统进行裁剪定制,包括如下步骤:
步骤一、对PowerPC硬件架构中的嵌入式Linux操作系统进行源码文件级裁剪;
步骤二、对PowerPC硬件架构中的嵌入式Linux操作系统进行源码代码级裁剪;
步骤三、对裁剪后的嵌入式Linux操作系统源码进行完整编译,生成嵌入式Linux操作系统内核文件;
步骤四、使用编译完成的嵌入式Linux操作系统内核文件,烧写到PowerPC硬件架构中的主板的存储器中,然后进行综合性测试,验证裁剪后的嵌入式Linux操作系统功能或性能是否正常。
步骤一具体包括如下步骤:
(1)、在PowerPC硬件架构中的SDK源码目录下,将与具体所采用的PowerPC处理器体系结构无关的内核源码目录裁剪掉;
(2)、在PowerPC硬件架构中的SDK源码目录下,将与具体所采用的PowerPC处理器所需应用不相关的操作系统模块对应的源码文件裁剪掉;
(3)、根据Bit Bake bb文件中的源码编译设置,将bb文件指定的不被编译的源码文件裁剪掉。
步骤二具体包括如下步骤:
(1)、通过分析被裁剪的嵌入式Linux操作系统模块,将内核源码中被嵌入式Linux操作系统模块调用的代码删除;
(2)、在头文件中将被删除代码相关的变量声明删除;
(3)、将保留的头文件和源文件中与PowerPC处理器体系结构不相关的条件编译删除。
步骤四中的综合性测试包括单元测试、整体测试。
实施例2:
本发明的一种嵌入式Linux操作系统裁剪定制方法,对基于Power PC硬件架构的嵌入式Linux操作系统进行裁剪定制,包括如下步骤:
步骤一、对原有的PowerPC硬件架构中的嵌入式Linux操作系统进行源码文件级裁剪:
1)根据采用PowerPC处理器的体系结构和具体应用需求,确定所需操作系统模块,这些操作系统模块被保留;通过分析各操作系统模块和操作系统内核源码之间的对应关系,确定被保留操作系统模块对应的内核源码。
2)开始裁剪后,包括A)内核源码文件夹即内核源码目录的剪裁,以及B)源码文件的剪裁。
A、首先进行内核源码文件夹裁剪,即在开发环境提供的源码目录下,裁剪掉与所采用的处理器的体系结构无关的内核源码目录以及与应用不相关的内核源码目录,如多媒体、蓝牙模块等,这些内容以独立的文件夹存储。
因为上述这些模块和源文件在最终的操作系统映像文件中不会用到,所以进行了完全裁剪。
B、在开发环境提供的源码目录src下,将与具体应用所需不相关的操作系统模块的源码文件裁剪掉。例如在实际中不会用到的一些设备驱动文件,如marvell.c、ste10Xp.c、dp83640.c、at91_ether.c等文件。
3)根据BitBake bb文件中的源码编译设置,将bb文件指定的不被编译的源码文件裁剪掉。
基于PowerPC硬件架构的嵌入式Linux操作系统通过BitBake进行编译,BitBake通过相应bb文件定义编译规则,bb文件指定哪些源文件被编译,哪些不被编译,在针对PowerPC硬件架构进行操作系统内核编译时,某些文件将不被编译,因此需要将此类不被编译文件进行裁剪,进一步精简操作系统源码。
步骤二、对原有的PowerPC硬件架构中的嵌入式Linux操作系统进行源码代码级裁剪:
1)通过对操作系统应用程序的分析,删除内核源码中不会被应用程序调用的函数。
2)在头文件目录include下,对于被裁剪的嵌入式Linux操作系统应用程序,将被裁剪的操作系统应用程序头文件删除,只保留与裁剪后内核源码相对应的头文件。对于被裁剪的函数,在头文件中将被裁剪的函数及其相应的变量声明删除,只保留内核中包含的函数和变量声明。
3)条件编译更改:将保留的头文件和源文件中与处理器体系结构不相关的条件编译进行删除。
头文件和源文件中具有关于各种体系结构的条件编译,只保留与PowerPC硬件架构相关的条件编译的代码,其他如arm、x86、mips、m68k进行删除。
步骤三、对裁剪后的嵌入式Linux操作系统源码进行完整编译,生成操作系统内核文件:
经过裁剪并编译后的嵌入式Linux操作系统内核文件为3.1MB;未经裁剪的操作系统内核文件为3.74MB。可见,经过剪裁的操作系统经编译后形成的内核文件得到了精简。
步骤四、对裁剪定制后的嵌入式Linux操作系统进行综合性测试:
使用裁剪定制后的操作系统内核文件,烧写到PowerPC主板的存储器中,然后进行单元测试、整体测试等综合性测试,验证裁剪后的操作系统功能和性能是否正常。
为了保证测试能够做到全面覆盖各种应用场景,构建了一系列自动化测试python脚本,并使用testlink对测试用例全面管理,以及使用JIRA对测试产生的bug进行全面跟踪,保证了测试的全面性和有效性。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种嵌入式Linux操作系统裁剪定制方法的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
Claims (4)
1.一种嵌入式Linux操作系统裁剪定制方法,其特征在于对基于Power PC硬件架构的嵌入式Linux操作系统进行裁剪定制,包括如下步骤:
步骤一、对PowerPC硬件架构中的嵌入式Linux操作系统进行源码文件级裁剪;
步骤二、对PowerPC硬件架构中的嵌入式Linux操作系统进行源码代码级裁剪;
步骤三、对裁剪后的嵌入式Linux操作系统源码进行完整编译,生成嵌入式Linux操作系统内核文件;
步骤四、使用编译完成的嵌入式Linux操作系统内核文件,烧写到PowerPC硬件架构中的主板的存储器中,然后进行综合性测试,验证裁剪后的嵌入式Linux操作系统功能或性能是否正常。
2.根据权利要求1所述的一种嵌入式Linux操作系统裁剪定制方法,其特征在于步骤一具体包括如下步骤:
(1)、在PowerPC硬件架构中的SDK源码目录下,将与具体所采用的PowerPC处理器体系结构无关的内核源码目录裁剪掉;
(2)、在PowerPC硬件架构中的SDK源码目录下,将与具体所采用的PowerPC处理器所需应用不相关的操作系统模块对应的源码文件裁剪掉;
(3)、根据Bit Bake bb文件中的源码编译设置,将bb文件指定的不被编译的源码文件裁剪掉。
3.根据权利要求1所述的一种嵌入式Linux操作系统裁剪定制方法,其特征在于步骤二具体包括如下步骤:
(1)、通过分析被裁剪的嵌入式Linux操作系统模块,将内核源码中被嵌入式Linux操作系统模块调用的代码删除;
(2)、在头文件中将被删除代码相关的变量声明删除;
(3)、将保留的头文件和源文件中与PowerPC处理器体系结构不相关的条件编译删除。
4.根据权利要求1所述的一种嵌入式Linux操作系统裁剪定制方法,其特征在于步骤四中的综合性测试包括单元测试、整体测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410421290.7A CN104199713A (zh) | 2014-08-25 | 2014-08-25 | 一种嵌入式Linux操作系统裁剪定制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410421290.7A CN104199713A (zh) | 2014-08-25 | 2014-08-25 | 一种嵌入式Linux操作系统裁剪定制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104199713A true CN104199713A (zh) | 2014-12-10 |
Family
ID=52085010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410421290.7A Pending CN104199713A (zh) | 2014-08-25 | 2014-08-25 | 一种嵌入式Linux操作系统裁剪定制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104199713A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109976750A (zh) * | 2019-03-28 | 2019-07-05 | 深圳市创联时代科技有限公司 | 一种基于嵌入式开发系统的组件源码配置和组件裁剪方法 |
CN111190623A (zh) * | 2019-12-25 | 2020-05-22 | 北京中科晶上超媒体信息技术有限公司 | 一种嵌入式操作系统的远程更新方法 |
CN111897440A (zh) * | 2020-06-18 | 2020-11-06 | 许昌许继软件技术有限公司 | 一种用于嵌入式Linux系统的中文拼音输入法 |
CN112256622A (zh) * | 2020-10-10 | 2021-01-22 | 天津大学 | 一种基于可编程逻辑阵列实现安全传输的方法 |
CN113127077A (zh) * | 2021-03-29 | 2021-07-16 | 中科信安(深圳)信息技术有限公司 | 一种基于服务器的微内核操作系统部署方法及操作系统 |
CN116166322A (zh) * | 2023-04-24 | 2023-05-26 | 麒麟软件有限公司 | 一种移植Linux内核的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360305A (zh) * | 2011-10-09 | 2012-02-22 | 中国航天科技集团公司第五研究院第五一三研究所 | 用于航天计算机的VxWorks操作系统裁剪定制方法 |
-
2014
- 2014-08-25 CN CN201410421290.7A patent/CN104199713A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360305A (zh) * | 2011-10-09 | 2012-02-22 | 中国航天科技集团公司第五研究院第五一三研究所 | 用于航天计算机的VxWorks操作系统裁剪定制方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109976750A (zh) * | 2019-03-28 | 2019-07-05 | 深圳市创联时代科技有限公司 | 一种基于嵌入式开发系统的组件源码配置和组件裁剪方法 |
CN111190623A (zh) * | 2019-12-25 | 2020-05-22 | 北京中科晶上超媒体信息技术有限公司 | 一种嵌入式操作系统的远程更新方法 |
CN111897440A (zh) * | 2020-06-18 | 2020-11-06 | 许昌许继软件技术有限公司 | 一种用于嵌入式Linux系统的中文拼音输入法 |
CN112256622A (zh) * | 2020-10-10 | 2021-01-22 | 天津大学 | 一种基于可编程逻辑阵列实现安全传输的方法 |
CN113127077A (zh) * | 2021-03-29 | 2021-07-16 | 中科信安(深圳)信息技术有限公司 | 一种基于服务器的微内核操作系统部署方法及操作系统 |
CN116166322A (zh) * | 2023-04-24 | 2023-05-26 | 麒麟软件有限公司 | 一种移植Linux内核的方法 |
CN116166322B (zh) * | 2023-04-24 | 2023-07-04 | 麒麟软件有限公司 | 一种移植Linux内核的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA3097791C (en) | Programmatic container monitoring | |
CN104199713A (zh) | 一种嵌入式Linux操作系统裁剪定制方法 | |
CN105718251B (zh) | 多语言sdk自动化实现方法及系统 | |
US10255086B2 (en) | Determining optimal methods for creating virtual machines | |
CN103123605B (zh) | 一种Android平台自动化集成测试方法和装置 | |
Xu et al. | Towards developing high performance RISC-V processors using agile methodology | |
Kothari et al. | Deriving state machines from TinyOS programs using symbolic execution | |
CN108197026A (zh) | 风力发电机组仿真软件测试方法、装置、设备及存储介质 | |
US8789033B2 (en) | Reducing application startup time by optimizing spatial locality of instructions in executables | |
CN104850411A (zh) | 存储系统基准评测程序生成方法及装置 | |
Gu et al. | Deepprof: Performance analysis for deep learning applications via mining gpu execution patterns | |
CN106293687B (zh) | 一种打包流程的控制方法,及装置 | |
CN102968372A (zh) | 具有程序分析功能的程序调试系统 | |
Blackham et al. | Sequoll: a framework for model checking binaries | |
Chen et al. | A framework for practical dynamic software updating | |
CN103176903B (zh) | MapReduce分布式系统程序的测试方法及设备 | |
US20200272555A1 (en) | Automatic software behavior identification using execution record | |
Baumann et al. | Better avionics software reliability by code verification | |
Jiang et al. | Revealing Performance Issues in Server-side WebAssembly Runtimes via Differential Testing | |
Ribeiro | Micro-containerization in Microcontrollers for the IoT | |
Iwanicki et al. | Bringing modern unit testing techniques to sensornets | |
Wienke et al. | Continuous regression testing for component resource utilization | |
US20110191395A1 (en) | Reducing Image Footprints | |
US11327723B1 (en) | Development environment integrated with failure detection system | |
Sampaio et al. | Formal testing from natural language in an industrial context |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141210 |