嵌入式linux系统开发概述之二----内核(Kernel)

2  Linux内核

    Linux 的源代码组织非常复杂,幸好我们不用将它们完全弄懂,现在我们需要的是知道各个部分的大致功能,然后再在以后开发过程中,针对不同的系统需求,修改内核中特定的某个部分就可以了。下面首先来看看是linux源码文件的组织结构:
kernel/                         linux 内核(非常小)
lib/                                各种内核需要使用的库文件
MAINTAINERS               内核各部分的维护者
mm/                              内存管理单元
net/                              网络系统
README                       readme 文件
REPORTING_BUGS        报告bug的指导
scripts/                         一些脚本
security/                       安全模式的实现                                   
sound/                          声卡支持和驱动
usr/                              工具
arch/                            硬件相关代码
COPYING                     linux 拷贝条件(GNU GPL)
CREDITS               l      inux 的主要贡献者
crypto/                         密码库
Documentation/           内核文档
drivers/                        驱动程序
fs/                               文件系统
include/                       内核头文件
include/asm-<arch>    硬件相关的头文件
include/linux                内核核心的头文件
init                              linux 初始化代码
ipc/                              进程间通讯
    Linux  社区正积极地为新硬件添加功能部件和支持、在内核中修正错误并且及时地进行常规改进 , 这 也是 导致 目前内核源代码越来越庞大的原因。 大约每  6  个月(或  6  个月不到)就有一个稳定的  l inux  树的新发行版。不同的维护者维护针对特定体系结构的不同内核树和补丁。当为一个项目选择了一个内核时,您需要评估最新发行版的稳定性如何、它是否符合项目要求和硬件平台、从编程角度来看它的舒适程度以及其它难以确定的方面。还有一点也非常重要:找到需要应用于基本内核的所有补丁,以便为特定的体系结构调整内核。
内核布局分为特定于体系结构的部分和与体系结构无关的部分。内核中特定于体系结构的部分首先执行,设置硬件寄存器、配置内存映射、执行特定于体系结构的初始化,然后将控制转给内核中与体系结构无关的部分。系统的其余部分在这第二个阶段期间进行初始化。内核树下的目录  arch/  由不同的子目录组成,每个子目录用于一个不同的体系结构( MIPS 、 ARM 、 i386 、 SPARC 、 PPC  等)。每一个这样的子目录都包含  kernel/  和  mm/  子目录,它们包含特定于体系结构的代码来完成象初始化内存、设置  IRQ 、启用高速缓存、设置内核页面表等操作。一旦装入内核并给予其控制,就首先调用这些函数,然后初始化系统的其余部分。
    根据可用的系统资源和引导装载程序的功能,内核可以编译成 vmlinux 、 Image  或 zImage 。 vmlinux 和 zImage 之间的主要区别在于 vmlinux 是实际的(未压缩的)可执行文件,而 zImage 是或多或少包含相同信息的自解压压缩文件— -- 只是压缩它以处理(通常是  Intel  强制的) 640 KB  引导时间的限制。有关所有这些的权威性解释,请参阅  Linux Magazine  的文章“ Kernel Configuration: dealing with the unexpected ” 。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值