第七章 linux内核配置与文件系统制作
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七章 linux内核配置与文件系统制作
Linux内核的版本号
2.6.24 其中,2是主版本号,6是次版本号,24是修订版本号。 如果次版本号是偶数,说明是稳定版本。 如果次版本号是奇数,则是开发版本。 我们一般使用稳定版本。
第七章 linux内核配置与文件系统制作
Linux操作系统的发展
第七章 linux内核配置与文件系统制作
第七章 linux内核配置与文件系统制作
Linux内核的配置(6/6)
Makefile Linux内核源码的每个目录下都有一个Makefile,由 该Makefile对源代码的编译、链接等操作进行控制。 编译完成后,每个源代码目录下都会生成一个名叫 built-in.o的文件。这个文件由源代码目录下的所以源文 件编译后的目标文件链接而成;而不同的built-in.o 又被上层目录中的Makefile链接成更大的builtin.o,直 到最后链接成为一个内核vmlinux.o。
第七章 linux内核配置与文件系统制作
例:在内核配置中添加对USB输入设备的支持 1.Make menuconfig 进入配置菜单 2.添加Input core support
第七章 linux内核配置与文件系统制作
第七章 linux内核配置与文件系统制作
具体的每个内核配置选项的含义需要逐个研究 网络上下载视频学习 这里不再赘述
只读文件系统,可以放在ROM空间,也可以 在系统的RAM中
第七章 linux内核配置与文件系统制作
CRAMFS文件系统
CRAMFS中的数据已被压缩,属于只读性文件系 统,不能在闪存中修改。用户想获取数据时, CRAMFS先把数据送到RAM中,用户从RAM中 读取。一般CRAMFS的上层为RAMFS文件系统 ,经修改过的文件都保存在RAM中。 RAMFS和CRAMFS结合的缺陷在于,一旦出现 掉电等特殊情况,保存在RAMFS中的修改数据将 全部丢失。
第七章 linux内核配置与文件系统制作
基于图形界面的menuconfig 配置菜单
第七章 linux内核配置与文件系统制作
Linux内核的配置(3/6)
Kconfig •在进行make menuconfig时,目录的生成依赖于Kconfig文件。 •一般来说,每个源代码目录下都有一个Kconfig文件。 config DM9000 tristate "DM9000 support" depends on ARM || BLACKFIN || MIPS select CRC32 select MII ---help--Support for DM9000 chipset. To compile this driver as a module, choose M here. The module will be called dm9000.
Linux 之父:李纳斯· 托沃兹 (Linus Torvalds)
第七章 linux内核配置与文件系统制作
Linux基本体系结构
第七章 linux内核配置与文件系统制作
7.1 Linux简介 7.2 Linux内核配置 7.3 根文件系统
第七章 linux内核配置与文件系统制作
为什么重新编译内核
linux作为一个自由软件,在广大爱好者的支持下, 内核版本不断更新。新的内核增加了许多新的特性。 如果用户想要使用这些新特性,或想根据自己的系 统度身定制一个更高效,更稳定的内核,就需要重新编 译内核。
第七章 linux内核配置与文件系统制作
为什么要重新定制自己的内核?
一般主要有下面四个考虑: (1)尺寸小 自己定制编译的内核具有更少的代码,运行会更快 (2)节省内存 由于内核部分永远占用物理内存,定制内核可使系统 拥有更多的物理内存 (3) 减少漏洞 不需要的功能编译进入内核可能会增加被系统攻 击者利用的漏洞 (4) 动态加载模块 根据需要动态地加载或者卸载模块,可以节省系统内存
2012-12-1
2
第七章 linux内核配置与文件系统制作
内核:是一个操作系统的核心。 它负责管理系统的进程、内存、设备驱动程序、 文件和网络系统,决定着系统的性能和稳定性。 Linux 内核由5个主要的子系统组成: 进程调度(SCHED) 内存管理(MM) 虚拟文件系统(VFS) 网络接口(NET) 进程间通信(IPC)
第七章 linux内核配置与文件系统制作
第七章 linux内核配置与文件系统制作
第七章 linux内核配置与文件系统制作
目录与分区
任何一个分区都必须挂载到某个目录上。 目录是逻辑上的区分。分区是物理上的区分。 磁盘Linux分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作。 根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。 根本目的:把不同资料,分别放入不同分区中管理
第七章 linux内核配置与文件系统制作
进程调度: 控制着进程对CPU的访问。Linux 使用比较简单 的基于优先级的进程调度算法选择新的进程。 内存管理: 内存管理允许多个进程安全地共享主内存区域。 Linux 的内存管理支持虚拟内存,即在计算机中运行的 程序,其代码、数据和堆栈的总量可以超过实际内存的 大小,操作系统只将当前使用的程序块保存在内存中, 其余的程序块则保留在磁盘上。必要时,操作系统负责在 磁盘与内存之间交换程序块。
第七章 linux内核配置与文件系统制作
Ramdisk 文件系统
Ramdisk是通过将RAM 用作设备来创建和挂装文 件系统的一种机制,它通常用于无盘系统(当然 包括微型嵌入式设备,它只包含作为永久存储媒 质的闪存芯片)。
第七章 linux内核配置与文件系统制作
RomFS文件系统
uClinux系统多采用Romfs文件系统,Romfs是 一种相对简单、占用空间较少的文件系统。
2012-12-1
24
第七章 linux内核配置与文件系统制作
7.1 Linux简介 7.2 Linux内核配置 7.3 根文件系统
第七章 linux内核配置与文件系统制作
1.根文件系统的结构
根文件系统是Linux内核启动后第一个挂载的文件 系统。 在根文件系统中存放着内核镜像、各种系统配置 文件以及一些其他的重要文件(例如设备文件、 命令程序等)。 为了保证通用性,根文件系统的目录结构需要遵 守FHS(文件系统层次标准)标准(Filesystem Hierarchy Standard)。FHS标准定义了根文件系 统中每个目录名称及其作用的规则规范。
第七章 linux内核配置与文件系统制作
Linux内核的配置(2/6)
三种配置方式 ●make config 基于文本对话的配置方式,比较细致,但是浪 费时间。对专业的内核开发人员比较合适。 ●make xconfig 基于图形界面的配置方式。非常直观,但是需 要特殊的软件支持,一般不推荐。 ●make menuconfig 推荐的内核配置方式,采用目录的方式,直观, 容易使用。
第七章 linux内核配置与文件系统制作 1.4 内核编译模式
要增加对某部分功能的支持,比如:网络之类,可 以把相应部分编译到内核中(build-in),也可以把该 部分编译成模块(module),动态调用。 如果编译到内核中:
优点:
在内核启动时就可以自动支持相应部分的功能, 这样的优点是方便、速度快,机器一启动,你就可以 使用这部分功能了;
首先内核支持Romfs文件系统比支持ext2文件系统 需要更少的代码; 其次romfs文件系统相对简单,在建立文件系统超 级块(Superblock)需要更少的存储空间。 Romfs是只读的文件系统,禁止写操作,因此系统 同时需要虚拟盘(RAMDISK)支持临时文件和数 据文件的存储。
缺点:
会使内核变得庞大起来,不管你是否需要这部 分功能,它都会存在; 建议经常使用的部分直接编译到内核中,比如网卡。
第七章 linux内核配置与文件系统制作
Linux内核的配置(1/6)
.config文件 这是对linux编译时所依赖的文件。我们在配置内核 时所做的任何修改,最终都会在这个文件中体现出来。 它是Makefile对内核进行处理的重要依据。 一般来说,内核提供了芯片公司demo板的.config文 件,可找一个近似的进行修改。
30
2012-12-1
第七章 linux内核配置与文件系统制作
Linux对文件系统的要求:
要求文件系统在频繁的文件操作(例如,新建,删除,截断 )下能够保持较高的读写性能,要求低碎片化。 Linux下的日志文件系统(XFS,ReiserFS,Ext3等)能保持数 据的完整性,但消耗过多系统资源,的弱点使之不能成为嵌 入式系统中的主流应用。并且这些都是专门为硬盘这类的存 储设备优化,对于flash这类的存储介质并不适用。 因为现有的嵌入式文件系统的碎片化的问题,大部分的嵌入 式设备只给用户提供了只读文件系统,给用户带来不便。 嵌入式文件系统的载体是以Flash为主的存储介质,所以为 了延长Flash的使用寿命,应该尽量减少对Flash的写入操作 。 文件系统采用Direct I/O的话,使I/O效率明显降低,增加了 写入次数;但采用延时写的话,虽然能够降低碎片问题,如 果加入日志系统的话,有不能保证数据的安全性。这是一个 矛盾。
2012-12-1
29
第七章 linux内核配置与文件系统制作
2.嵌入式linux系统中常用的文件系统
基于FLASH的
Romfs Cramfs Jffs/jffs2 Yaffs 基于RAM的 Ramdisk Tmpfs
来自百度文库
用户可以根据可靠性、健壮性和/或增强的功能 的需求来选择文件系统的类型。
第七章 linux内核配置与文件系统制作
Linux内核的配置(5/6)
Kconfig对Makefile的影响: ……………………………………………………………….. obj-$(CONFIG_DM9000) += dm9000.o ……………………………… CONFIG_DM9000是tristate类型,有三个可能取值: y:编译进内核 m:编译成模块 n:不进行编译 若是bool类型,则只有两种可能,y或者n。
第七章 linux内核配置与文件系统制作
7.1 Linux简介 7.2 Linux内核配置 7.3 根文件系统
第七章 linux内核配置与文件系统制作
Linux介绍
桌面版本: 面向PC用户的桌面发行版本,常见的如 redhat、fedora、debian、Ubuntu、SUSE、红旗等 。 Linux内核 内核是所有linux系统的中心软件组件。嵌入式领域 所说的linux,一般是指linux内核。移植也是指的是 移植linux内核到目标平台。
第七章 linux内核配置与文件系统制作
Linux内核移植——交叉编译
关于交叉编译 由于我们的目标平台是ARM,而在x86平台上进行 开发,故必须进行交叉编译。 修改内核的顶层Makefile: ………………………………………………….. ARCH ?= arm CROSS_COMPILE ?= arm-linux…………………………………………………… 表示我们的目标平台是ARM构架的,而使用的交 叉编译器的前缀是arm-linux
第七章 linux内核配置与文件系统制作
Linux内核的配置(4/6)
Kconfig对.config文件的影响: …………………………………………… CONFIG_DM9000=y …………………………………………… make menuconfig 对 内 核 配 置 所 做 的 修 改 最 终 反 映 在.config文件中。 如上所示,在.config文件中 CONFIG_DM9000=y被定义为y。
第七章 linux内核配置与文件系统制作
虚拟文件系统: 它可以隐藏各种硬件的具体细节,为所有设备提供 统一的接口,VFS 还支持多达数十种不同的文件系统, 这也是Linux 较有特色的一部分。 网络接口: 提供对各种网络标准的存取和各种网络硬件的支持。 网络接口可分为网络协议和网络设备驱动程序两部分。 网络协议部分负责实现每一种可能的网络传输协议; 网络设备驱动程序负责与硬件设备进行通信; 进程间通信: 它的作用是支持进程间各种通信机制。