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: 这个目录中包含了在配置和编译内核时要用到的脚本文件。
分区建议
(1)linux最新分区方案
我的服务器是500G。最重要的是/var分区一定要大(不论postfix邮件,还是LAMP的WEB 服务 器等)。
最好是400G以上。具体的/boot 只要100M就足够了。
下面是我的分区方案:
硬盘500G
服务器分区的方案:
分区类型 分区的实际大小
/ 1G-2G (最少要150–250MB)
/boot 32M-100M (启动分区,最多只要100M左右)
/opt 100M-1G (附加应用程序)
/tmp 40M-1000M (最大可以设为1G左右,如果加载ISO镜像文件就设为4G左右吧,一般不用那么多)
/home 2G-10G (每个用户100M左右,具体自定。用户目录。)
/usr 3G-10G (最耗用空间的部份。最少要500M左右,一般宽松的服务器要
分到4-6G)
/usr/local 3G-15G (自已安装程序安装在此)
/var >2G–硬盘余下全部空间 ( 最少300M-500M,一般2-3G,做服务器的话把上面余下
的空间都分给它)
(2)桌面分区方案
/ 1G
/boot 32M
/opt 100M
/tmp 50M
/home 1G-10G
/usr 3G-6G
/usr/local 3G-5G
/var 500M以上
(3)最节省的分区方案(服务器不推荐):
文件目录 最少 一般 安装后大小CentOS5.2
/ 150M-250M 500M-2G (378M)
/boot 32M-100M 64M (13M)
/opt 30M-100M 50M (19M)
/tmp 40-100M 50M (37M)
/home 100M-5G 1G (483M)
/usr >500M 4-6G 2.5G (2.0G)
/usr/local 500M 2-5G 2G (1.2G)
/var 300-500M 2-3G 500M (296M)
注意:/var目录,如果是服务器,就把依上面的把其他的分区分完之后的空间全部给/var
即分为最大的分区。http服务器目录/var/www,postfix服务器/var/mail.一般都在/var 目录里面.
附:
目录 存放内容
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、
电影),该预备更多的空间。
我的服务器的实际分法及实际使用的大小,还没有实际投入使用。所以/var目录没有用那么多。
/var/www 一般WEB存放网页的目录
postfix邮件的存放邮件的目录是在/var/mail
#df -TH
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/hdb2 ext3 11G 315M 9.4G 4% /
/dev/hdb10 ext3 10G 157M 9.3G 2% /opt
/dev/hdb9 ext3 11G 158M 9.5G 2% /home
/dev/hdb8 ext3 11G 158M 9.5G 2% /tmp
/dev/hdb7 ext3 11G 2.5G 7.3G 26% /usr
/dev/hdb6 ext3 16G 3.2G 12G 22% /usr/local
/dev/hdb5 ext3 417G 340M 395G 1% /var
/dev/hdb1 ext2 104M 7.3M 91M 8% /boot
tmpfs tmpfs 1.1G 0 1.1G 0% /dev/shm
所以实际的分法还是我在上面提到的方法比较好 !