菜鸟成长手册:路由器技术深入剖解

时间:2007-05-22 02:51:14  来源:站长资讯收集整理  作者:twoturen

  不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞。

  将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些。

  在此需要补充说明的是内核编译的目的是为了创建一个能够放置在flash上支持flash读取的完成要求功能的内核,同时也是flash读取步骤其中一步。对uCLinux的内核进行配置和创建要对uCLinux内核的版本进行选择:uCLinux内核的版本号有三种:主号、次号、修订号。以2.4.10为例一般来说,主号如目前的2是很稳定的。主号的变动说明了操作系统发生了很大的变动。次号如目前的.4,用来说明内核的稳定性。当次号为偶数号((0,2, 4, 6) 时,表明现在的内核的稳定性强,而当次号为奇数号(1,3, 5) 时,表明现在的内核处于测试的阶段,其稳定性值得考虑,如果你使用次号为奇数号的内核进行配置和创建时、就值得三思而行了。而修订号的发表比较的频繁,它主要是用来对前面的版本进行修补。开发新的版本和修改以前的版本是同时进行的,很有可能修改的修订版本在新的版本出来之后。

  依次执行以下命令完成uClinux的编译过程:

  cd/usr/local/src/uclinux=dist

  make dep

  make clean

  make lib_only

  make user_only

  make romfs

  make image

  最终在image目录下生成2个文件:

  zImage——uClinux内核2.4.x的压缩方式可执行映象文件;

  romfs——文件系统的映象文件。

  这就是我们要用来烧录到硬件板内的最终文件了。具体烧写可以通过使用专用的烧写工具来实现,烧写过程一定要参照烧写工具的说明要求来进行。

  其中zImage已经包含了文件系统映象文件,通常直接烧写到Flash文件上即可执行了。当然在这之前要进行BootLoader的烧录, BootLoader其实就是一个引导程序,主要作用就是初始化系统,进而来引导操作系统。在嵌入式系统中,处理器上电后首先执行的一段代码就是BootLoader,BootLoader与硬件密切相关,其代码主要用C和汇编语言写成,不同的系统中,BootLoader的功能有所不同,但主要作用还是差不多的,主要有下面几点:

  初始化微控制器MCU运行的时钟频率;

  初始化Flash和内存的数据宽度,读/写访问周期和刷新周期;

  初始化中断系统;

  初始化系统中各种片内、片外设备和I/O端口设备;

  初始化系统各种运行模式下的寄存器和堆栈;

  加载和引导操作系统;

  BLOb是BootLoaderObject的缩写,它是一个功能强大、源代码公开的自由软件,它已经实现了对多种处理器芯片的Linux 引导支持。对ARM7等核心的BootLoader支持版本可以到专业网站上进行下载,并稍微做适当修改来满足开发应用中的硬件环境要求即可,在此我们不做过多讲述。

  上面所讲述的内核编译过程只是比较宽泛的、笼统的操作过程,也就是说只是基本的操作过程,而在真正的路由功能实现过程中,还要对内核进行多种设置编译,比如说对硬件系统中设计到的部件进行驱动配置安装等,当然,这些并不是特别难的操作技术,再比如我们下面就要讲到的内容,这可就是很有挑战性的核心技术了,这些都是针对内核进行技术性操作来实现特定的网络功能。

文章评论

共有 位CH网友发表了评论 查看完整内容