科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件剖析Linux 2.6内核移植-内核设置篇 (1)

剖析Linux 2.6内核移植-内核设置篇 (1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

作为一个积极推进软件业革新的领头羊,Linux操作系统已成为开放系统运动的优秀代表。作为各种Linux发行版的共同核心,Linux内核多年来一直不间断地引进新技术进行革新,逐步提高自身的各种性能,例如可伸缩性、可用性和技术支持等。

作者:tangzhu 来源:赛迪网技术社区 2007年11月2日

关键字: Linux

  • 评论
  • 分享微博
  • 分享邮件
 

作为一个积极推进软件业革新的领头羊,Linux操作系统已成为开放系统运动的优秀代表。作为各种Linux发行版的共同核心,Linux内核多年来一直不间断地引进新技术进行革新,逐步提高自身的各种性能,例如可伸缩性、可用性和技术支持等。众多的改进都是围绕增加对其它架构、处理器、总线、端口和外设的支持而进行的。从Linux 2.2内核开始,因为每个新内核的诞生都要经过严格的检验和测试,所以其开发周期大约都保持在两年左右。

除了增加的新功能外,每个新版稳定的Linux内核都会对大量原有功能进行改进,对内部接口进行定制使其更加标准,提高与其它设备的兼容性,并简化对新设备和子系统的支持过程。这些改进中的一部分只与内核开发人员和硬件驱动程序编写者有关,而其它的则影响到系统启动、系统管理和应用软件设置等方面。

如果用户正在把现有的应用软件移植到一个基于2.6内核的Linux套件上,例如TimeSys Linux系统,那么也许不会花费多少功夫,原因是TimeSys Linux的性能已大大改进。此外还增加了对行业标准的支持,例如对POSIX的支持。然而,如果用户正在进行硬件驱动、定制系统级的应用软件或可定制的Linux根文件系统的移植,那么可以参考内核在内部构件、子系统、系统启动和系统管理上发生的基本变化。这会为用户节省许多开发时间,并大大减少用户在移植过程可能遇到的难题。

这里主要介绍如何将现有的硬件驱动、应用软件和嵌入式Linux组件移植到一个基于2.6内核的Linux套件中(我们以TimeSys Linux为例子)。并结合一些软件工具为用户提供所需的信息,帮助用户加快开发进程,控制软件转换和改进成本,甚至可以加快基于Linux系统的设备、系统和应用软件进入市场的速度。这里所列举的软件是TimeStorm Linux工具套件之类的工具软件。它们可以在开发、移植、调试和验证周期等方面为用户提供帮助。

基于2.6内核的设置

内核是Linux操作系统的核心。它管理着所有的系统线程、进程、资源和资源分配。与其它操作系统不同的是,Linux操作系统允许用户对内核进行重新设置。用户可以对内核进行“瘦身”,增加或消除对某些特定设备或子系统的支持。在开发嵌入式系统时,开发人员经常会减少系统对一些无用设备的支持,将节省下来的内存分配给各种应用软件。

Linux内核对各种硬件和端口的支持要靠各种硬件驱动程序来实现。这些驱动程序可以被直接写入内核,也可以针对某些特定硬件在需要时自动加载。通常情况下,可以被自动加载进内核的内核编码称为自动加载内核模块。

Linux内核的设置是通过内核设置编辑器完成的。内核设置编辑器可对每个内核设置变量进行描述,帮助用户决定哪些变量需要被清除,哪些需要写入内核,或者编成一个可加载内核模块在需要时进行加载。

建立新内核的第一步是对内核进行设置。当用户对内核进行设置时,必须先对内核和其它可加载内核模块进行编写和安装。如果用户要对原系统的内核进行构建设置,那么这一步是十分简单的。但如果用户要将原系统内核编译应用于其它目标系统,那么这一步就会变得相对困难一些。例如,当用户修改嵌入式系统的Linux内核时,很可能会先在一个桌面系统上对内核进行设置,然后再通过一套编译工具将其移植到嵌入式系统中。此类编译工具被称为交叉编译程序。

交叉编译程序在一类系统运行的同时会生产一系列二进制编码。这些编码是专门为另一类系统而设计的。两种系统有着完全不同的处理器或架构。在对内核或模块的编译过程中,用户必须通过多种多样的环境变量或Makefile设置来确定具体的交叉编译程序。用户还可以直接使用一个诸如TimeSys之类的集成开发环境来实现这一目标。TimeStorm可以帮助用户很容易地选择交叉编译程序。同样,当用户对Linux的内核和模块进行交叉编译使之应用于嵌入式系统时,如果没有TimeStorm之类的软件,那么用户必须通过额外的设置和Makefile手工修改,才能确定内核和模块的安装过程和安装位置。

基于Linux 2.6内核的设置较以往已经简便多了。Linux 2.6内核采用新的图形设置编辑器使内核的编译和设置变量的从属关系确定变得更加简单。过去基于2.x的内核为用户提供了四种基本的内核设置编辑器:

◆config 服务于内核设置的一个冗长的命令行界面;

◆oldconfig 一个文本模式的界面,主要包含一个已有设置文件,对用户所发现的内核资源中的设置变量进行排序;

◆menuconfig 一个基于光标控制库的终端导向编辑器,可提供文本模式的图形用户界面;

◆xconfig 一个图形内核设置编辑器,需要安装X-Window系统。

前三种编辑器在设置2.6内核时仍可使用,在运行“make xconfig”后,原有的界面被两个新的图形设置编辑器所代替。这需要具体的图形库和X-Window系统的支持。另外,用户还可以通过“make defconfig”命令,利用所有内核设置变量的缺省值自动建立一个内核设置文件。

用新图形编辑器设置内核

当用户运行“make xconfig”命令后,会产生一个更加健壮的新的图形编辑器。新的内核设置编辑器使用Trolltech公司的Qt工具套件。

当用户执行命令“make gconfig”时,屏幕会显示第二个图形设置编辑器。该设置编辑器最初显示一个由两个面板组成的图形界面,如图2所示。用户可以通过鼠标点击工具栏上的“Split”按钮,将gconfig改变成与xconfig界面类似的图形界面。该内核设置编辑器需要GTK2(GIMP Toolkit, Version 2)工具的支持。大多数桌面Linux都自带有GTK2工具。

通常情况下,由“make gconfig”命令调出的编辑器界面不如“make xconifg”命令调出的界面详尽和易用。除非用户拥有一些诸如TimeSys、 TimeStorm Linux开发套件之类的设置工具,不然建议用户使用“make xconfig”命令对内核进行设置。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章