uclinux目录结构解析
扫描二维码
随时随地手机看文章
随着现代计算机技术的飞速发展和互联网技术的广泛应用,从PC时代过渡到了以个人数字助理、手持个人电脑和信息家电为代表的3C(计算机、通信、消费电子)一体的后PC时代。后PC时代里,嵌入式系统扮演了越来越重要的角色,被广泛应用于信息电器、移动设备、网络设备和工控仿真等领域。
从20世纪80年代起,国际上就有一些IT组织、公司,云鼎娱乐场开始进行商用嵌入式操作系统和专用操作系统的研发。这其中涌现了一些着名的嵌入式操作系统,如Microsoft公司的WinCE和WindRiver System公司的VxWorks就分别是非实时和实时嵌入式操作系统的代表。但是商用产品的造价都十分昂贵,用于一般用途会提高产品成本从而失去竞争力。
uClinux 的源代码组织成以下列结构:根目录是uClinux-xxx( 例如: uClinux-Samsung)。 其中,内核放在linux-xxx 下,(xxx 是版本号,2.0.x 或2.4.x)。 一些应用程序放在user 目录下,根文件系统放在romfs 下, 预编译好的linux映像放在images 下,包括在RAM 和ROM中运行的映像。 系统的启动代码放在boot 目录下。 下面重点描述一下内核的组织结构:
arch/armnommu : 与架构和平台相关的代码都放在arch 目录下, 针对ARM的uClinux, 有一个子目录和它相对应—armnommu 。如果你要把uClinux移植到另外一个ARM板子, 大
部分的工作就是修改这个目录下的一些文件,例如kernel/head-arm-atmel.S ,kernel/setup.c
drivers: 这个目录下包含了所有的设备驱动程序。 驱动程序又被分成’block’, ’char’, ‘net’等几种类型,
fs: 这里有支持多种文件系统的源代码,几乎一个目录就是一个文件系统,如MSDOS,VFAT, proc,ext2等。虚拟文件系统(VFS)给所有各式各样的文件系统提供了一个统一的接口。文件系统是放在块设备上的,这些块设备由块设备驱动程序来提供支持。
include:相关的头文件。他们被分成通用和平台专用两部分。 目录‘asm-$(ARCH)’包含了平台相关的头文件,在它下面进一步分成‘arch-$(MACHINE)’,’arch-$(PROCESSOR)’等子目录。与板子相关的头文件放在arch-$(MACHINE)’下,与CPU相关的头文件放在’arch-$(PROCESSOR)’下。例如,对于ARM7TDMI ,‘proc-armv’ 子目录就会被用到。对于EV40,应为用的是Atmel40800,所以‘arch-atmel’用来存放硬件相关的定义。
init: 含一些启动kernel所需做的所有初始化动作,里面有一个main.c针对kernel 作初始化动作,设置一些参数等,对外围设备初始化。
ipc: 提供近程间通讯机制的源代码,如信号量,消息队列,管道等。
kernel: 包含进程调度算法的源代码,以及与内和相关的处理程序,例如系统调用。
mmnommu: 在标准linux中有一个mm目录,用来存放内存管理的源代码,包括MMU。 而这个目录是来替换mm的, 仅仅包含简单的内存分页管理的源代码。
net: 支持网络相关的协议源代码。
lib: 包含内核要用到的一些常用函数。例如,字符串操作,格式化输出等。
script: 这个目录中包含了在配置和编译内核时要用到的脚本文件。
附:
目录 存放内容
bin 基本命令执行文件
boot boot loader 的静态链接文件
dev 设备文件
etc 主机特定的系统配置
home 用户目录
lib 基本共享库以及内核模块
media 用于移动介质的挂载点
mnt 用于临时挂载文件系统
proc 系统信息的虚拟目录(2.4 和 2.6 内核)
root root 用户的目录
sbin 基本系统命令执行文件
sys 系统信息的虚拟目录(2.6 内核)
tmp 临时文件
usr 第二级目录
var 不断变化的数据
srv 系统提供的用于 service 的数据
opt 附加的应用程序软件包
根分区/ 必须总是物理地包含 /etc、/bin、/sbin、/lib 和 /dev,否则您将不能启动系统。典型的根分区/需要 150–250MB 大小空间。
/usr:包含所有的用户程序(/usr/bin),库文件(/usr/lib),文档(/usr/share/doc),等等。这是文件系统中耗费空间最多的部分。您需要提供至少 500MB 磁盘空间。总容量会依据您要安装的软件包数量和类型增长。宽松的工作站或服务器安装应该需要 4–6GB。
/var:所有的可变数据,如新闻组文章、电子邮件、网站、数据库、软件包系统的缓存等等,将被放入这个目录。 这个目录的大小取决于您计算机的用途,但是对大多数人来说,将主要用于软件包系统的管理工具。如果您准备一次性地做一个全面的安装,包含Debian 提供的所有程序, /var下面 2~3GB 的空间应该够用。如果您准备逐个安装(也就是说,安装服务程序和工具,然后是文本处理工具,然后是 X,…),您准备 300–500 MB 就行。要是硬盘空间很紧张,并且不准备做主版本的系统升级,可以为其准备 30 或 40MB 大小。
/tmp: 程序创建的临时数据大都存到这个目录。通常 40–100 MB 应该足够。一些应用程序 (包括归档处理程序、CD/DVD 制作工具和多媒体软件)可能会使用 /tmp 临时保存映像文件。如果要使用这些程序,应该相应地调整 /tmp 目录的大小。
/home:每个用户将放置他的私有数据到这个目录的子目录下。其大小取决于将有多少用户使用系统,以及有什么样文件放在他们的目录下。根据规划的用途,应该为每个用户准备 100MB 空间,不过应该按您的需求调整。假如您在 home 目录下计划保存大量的多媒体文件(图片、MP3、电影),该预备更多的空间。