Linux 操作系统内核配置与裁剪研究

摘要:作为开放源码的自由操作系统Linux系统的应用也日渐广泛。本文将从Linux系统的内核结构展开阐述,并从配置与剪裁方式上实现对嵌入式系统设计的目标linux系统怎么查看硬件配置,并就剪裁的目的及具体的系统编译过程进行描述,以突显Linux操作系统的开放性、稳定性、可更改性等优势。

关键词:Linux内核剪裁交叉编译

Linux系统内核具有特别好的网路适应性和开发自由度,并在嵌入式系统应用中愈发深入和广泛。嵌入式Linux系统是对于原Linux操作系统剪裁后的系统,目前常用在媒体播放、移动电话及工业控制等领域。作为对Linux操作系统内核的剪裁,常常是嵌入式系统开发的关键,因此,本文将从Linux系统内核结构着手,就其剪裁原则及编译方式进行探讨,以实现对嵌入式Linux操作系统的优化。

一、Linux系统剪裁研究

从操作系统的应用来看,大部份操作系统都是不支持嵌入式设计,而面对不同领域的具体应用及环境配置须要,改建操作系统以适应软件功能的开发,常常是当前操作系统裁切的常见应用。对于Linux操作系统来说,其自由开发的源码内核,才能结合特定功能须要来适当剪裁其容积要求,由此带来的软硬件平台及功能的降低,使其规模更加紧凑,代码运行愈发精简。对操作系统进行剪裁,须要遵守通常流程:首先获取原操作系统的内核源码,并从具体应用中对源码进行适当的环境配置,对多余的或不用的模块给与摈除,对于特殊的功能需求须要从程序代码的编撰上来降低相应驱动程序,以建立其适应于目标平台的新操作系统。对于操作系统的剪裁是整个系统整修的关键环节,也是与整个系统进行交叉编译和稳定链接的重要步骤。对操作系统进行订制,首先须要剖析操作系统的内核及版本特性,对于商业化的操作系统,如Windows须要缴纳软件许可证费用,而对于源码开放的操作系统则可以自由使用。当前Linux操作系统支持内核更改,但是其稳定的性能,丰富的开发工具及模块结构,更便于剪裁嵌入式环境。因而在应用中多以Linux为对象来进行剪裁。作为Linux操作系统,在进行剪裁时须要遵守一定的原则:一是大型化,即对嵌入式系统来说以最小的容积为宜;二是功能适当化,从应用上以满足需求为主,对于多余的应用只须要保留对应的系统支持即可;三是系统结构的稳定性及可靠性,对于裁切后的操作系统应当满足功能及结构的可靠性和完整性。操作系统的编译及安装是最后阶段,一般在宿主机上建立环境,并从操作系统内核及应用程序的调试上来满足宿主机与目标机的有效联接。如以并口、OCD形式进行联接等。

二、Linux操作系统的内核特性及结构模块

作为稳定性、可更改性较强的Linux内核结构,在进行内核访问时只需通过调试来保障操作系统的基本功能。在Linux系统中,通过模块机制来启动所须要的内核模块,如设备驱动程序、文字子系统等,并可以在动态加载及卸载上确保对系统内核空间资源的有效借助。从结构上来看,Linux系统内核分为五部份,这种子系统在进程调度下实现对CPU的访问,以满足内核各子系统的有序执行。对于显存管理来说,以页式储存机制为主,并结合硬件结构来灵活分配显存组织形式,确保各硬件对系统资源的共享与合理借助;同时,显存管理还支持虚拟显存管理,致使Linux进程拥有更多的显存容量;在逻辑文件系统中,Linux支撑硬件控制器对相关设备的驱动,因而实现对外部设备的有效驱动和管理;进程间通讯主要是满足进程的信息交换;网路插口系统以网路合同和网路驱动为主,提供对网路通讯服务的支持。源码是Linux系统开发的基础,在Linux系统内核剖析上,其源码主要包括以下内容:/arch主要包括与当前处理器的彰显结构相关的源代码,如ARM、PowerPC、I386等,另外还包括boot、lib、math-emu等目录,以满足系统裁切的须要;/init主要包含系统初始化源码,如main.c和version.c等文件;/block主要包含相关的驱动代码;/fs主要包含Linux系统所支持的文件系统;/inchude主要包含系统编译时须要的头文件,如.h文件;/mm主要包含与体系结构无关的显存管理源码;/kemel主要包含内核文件,如进程调度kerel/sched.c,创建进程kernel/fork.c,撤消进程源码kernel/exit.c等;/scripts主要包含系统配置源码,如makemenuconfig等配置内核指令源码。

三、对Linux系统内核进行配置与剪裁

Linux系统在内核剪裁上主要有两种方式:一是通过配置工具来实现对配置文件.config和autoconf.h的更改,而对原内核代码不更改;二是直接对配置信息保存到.config和autoconf.h两个配置文件中,编译后手动修配置文件。我们以第一种方式为例来阐述对Linux系统内核进行模块功能配置的过程及剪裁方式。一是借助tar指令来解压内核源码到制订目录,并借助makermproper指令来消除制订目录下的配置文件及其他中间文件;二是对Linux内核进行配置,借助配置完善来实现对相关指令的执行。如$makeoldconfig,对原有内核配置文件进行直接更改;$makeconfig基于文本形式来进行配置;$makexconfig基于窗口形式来进行配置;在makexconfig交互配置中,主要有三种选择查看linux是什么系统,Y表示将该功能编译进内核;N表示不将该功能编译进内核;M表示为将该功能编译成可以在须要时动态插入到内核中的模块。因而在使用配置工具进行内核配置时,对于大多数指令都可以使用缺省值,只有部份指令须要指定参数选择。在具体内涵配置中,对于不须要的功能尽量不要linux系统怎么查看硬件配置,对于与内核相关的紧密功能代码须要直接编译到内核中;对于与内核核心关系较远且不时常使用的功能代码编译成可加载模块,因而实现对系统内核的有效简化。

以Linux2.4系统来配置PDA嵌入式内核为例来阐述其具体剪裁方式。对于PDA系统内核来说红旗linux桌面版,在无线传输上有红外及蓝牙插口,须要通过Wi-Fi与GPS进行通讯,而对于进程调度及文件系统的支持相对单一,因而在配置中须要掌握以下几点:一是在网路配置上要支持网路更新功能,即借助[Y]Networkingsupport以满足对网路设备的直接支持;[Y]TCP/IPnetworking直接对TCP/IP合同的支持;[Y]Bluetoothsubsystemsupport对蓝牙的支持;二是在可执行文件格式配置上,[Y]KernelsupportforELFbinaries[Y]CompileasELFCifyourGCCisELF-GCC可以支持ELF文件系统;[Y]AdvancedPowerManagerBiossupport支持电源管理BIOS;Blockdevices支持对硬件等设备驱动程序;三是在系统内核的编译上,借助makechean对后面文件进行删掉;借助makedep指令读取配置文件,并创建对应的依赖关系树;借助makemodules进行模块编译;借助makezImage来实现完全编译内核;四是通过安装新内核来实现对目标平台内核的安装,如借助RS-232插口或USB插口将内核映像传送给目标机器。

参考文献

[1]石秀民,魏红兴.嵌入式系统原理与应用[M].上海:上海民航航天学院出版社,2007.

[2]冷乐山,钟将.基于ARM的嵌入式Linux系统建立[J].计算机系统应用.2010(11).

[3]林继民,吴怡,林萧.基于Linux嵌入式系统开发平台的建立及应用[J].现代电子技术.2010(18).

本文原创地址:https://www.linuxprobe.com/qrslczxtnhjg.html编辑:刘遄,审核员:暂无