Linux中国  设为主页
 收藏本站
 
当前位置: > 首页 ->Linux技术 ->Linux程序设计 ->内核设计篇
  相关分类: 
入门与提高
系统管理
网络应用
嵌入式系统
内核研究
服务器相关
发行版专区
Linux程序设计
Linux安全
BSD相关
桌面应用
  站内搜索: 
热门文章排行
热门文章排行 Linux系统下C语言编程 基础知识介绍 (05-01)
快速编辑Shell命令行(06-04)
Linux系统环境下的Socket编程详细解(04-19)
Awk 实例(一) (04-22)
基于libmad 的简单MP3流媒体播放器的(04-22)
精采文章排行
精采文章排行 快速编辑Shell命令行(06-04)
从2.4到2.6内核发展中的改进(06-04)
两个很详细的shell实例(06-04)
内核设计篇(06-04)
shell技巧(06-04)
  ·从2.4到2.6内核发展中的改进·两个很详细的shell实例·内核设计篇·shell技巧·批量添加用户·HowtoCreatingandBootingaNewKernelWitha·利用ip_conntrack表实现封ip的shell脚本,·30分钟搞定BASH脚本编程!·Shell初学者的入门知识

内核设计篇

作者:Webmaster   来源:Linuxdby.com   点击:   日期:2007-06-04 [收藏] [投稿]

  IE是否经常中毒?推荐您

如何定制2.6内核更容易

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

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

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

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

基于2.6内核的设置

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

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

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

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

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

基于Linux2.6内核的设置较以往已经简便多了。Linux2.6内核采用新的图形设置编辑器使内核的编译和设置变量的从属关系确定变得更加简单。过去基于2.x的内核为用户提供了四种基本的内核设置编辑器:
◆config服务于内核设置的一个冗长的命令行界面;
◆oldconfig一个文本模式的界面,主要包含一个已有设置文件,对用户所发现的内核资源中的设置变量进行排序;
◆menuconfig一个基于光标控制库的终端导向编辑器,可提供文本模式的图形用户界面;
◆xconfig一个图形内核设置编辑器,需要安装X-Window系统。

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

用新图形编辑器设置内核

当用户运行“makexconfig”命令后,会产生一个更加健壮的新的图形编辑器。新的内核设置编辑器使用Trolltech公司的Qt工具套件。许多Linux系统并没有集成Qt工具套件,但是用户可以从http://www.trolltech.com的网站上免费下载它。图1展示了新的内核设置界面。

如图1所示,内核设置编辑器是一个由三个面板组成的图形界面,左侧面板可展开的树状结构显示有效的内核设置选项,右上面板显示左侧面板选择项的具体设置信息,右下面板显示所选设置选项的相关帮助信息。

图12.6内核设置界面


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页12 下一页

上一篇:shell技巧   下一篇:两个很详细的shell实例
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论

   相关文章:
·快速编辑Shell命令行

   文章评论:(1条)
  
 请留名: 匿名评论   点击查看所有评论 论坛讨论
 

 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。