linux内核配置和编译
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
安装ARM交叉编译器
#tar xzvf crass-3.3.2.tgz
把解开的目录的bin/目录的绝对路径增加到环境变量$PATH中
www.gdemb.com
B R T
Linux 2.6内核配置与编译
电子系统设计
安装ARM
Linux 2.6源码包 #tar xzvf gec_linux-2.6.8.1.tgz
www.gdemb.com
B R T
Linux 2.6内核配置与编译
电子系统设计
配置的注意选项
Code maturity level options ---> 应该 选择
[*] Prompt for development and/or incomplete code/drivers 这将会在设置界面中显示还在开发或者还没有 完成的代码与驱动. 因为有许多设备可能必需 选择这个选项才能进行配置,实际上它是安全 的。
记录进程的信息,进程控制块
www.gdemb.com
B R T
内存管理 电子系统设计
内存是系统资源的一种
SRAM, SDRAM, FB, Registers, 外设片上内存 物理内存的管理 虚拟内存的管理,内核空间与用户空间 内核与用户内存的分配 内存碎片的产生和避免
内存的分类
如果有不明白的地方,按 [shift]+?的组合键来查看说明
www.gdemb.com
B R T
Linux 2.6内核配置与编译
电子系统设计
配置的原则
1)大部分选项可以使用其缺省值或者BSP选用缺省值 ,只有小部分需要根据用户不同的需要选择。 2)将与内核其它部分关系较远且不经常使用的部分功 能代码编译成为可加载模块。
www.gdemb.com
B R T
Linux 2.6内核配置与编译
电子系统设计
cd到ARM #make
Linux 2.6的安装目录中
在当前目录中将产生vmlinux即为内核文 件 #make modules #make modules_install 将产生在内核代码树中以模块方式编译 的模块
www.gdemb.com
B R T
电子系统设计 Linux 2.6内核配置与编译
配置工作过程:
当用户执行配置命令,Makefile调用配置工具mconf, mconf从arch/$(ARCH)/Kconfig开始搜索各目录中的 Kconfig文件,并根据这些文件形成图形化的配置界面, 给用户进行配置 Kconfig文件是产生.config文件的输入文件,也就是说 .config中的选项是由Kconfig决定的 这是Linux2.6内核独有的配置系统 用户可以根据需要增加和修改其中的配置选项
www.gdemb.com
B R T
Linux 2.6内核配置与编译
电子系统设计
配置的注意选项
3 Loadable module support --->
[*] Enable loadable module support 应该选择 这个选项可以让你的内核支持模块。一般一些不常用到的 驱动或特性可以编译为模块以减少内核的体积。 [*] Module unloading 应该选择 这个选项可以让你卸载不再使用的模块,如果不选的话你 将不能卸载任何模块 [*] Forced module unloading 强行卸载模块,可以把正在使用中的模快卸载掉。做内核 开发或者驱动开发的时候,有一定的好处。但一般用户不 应该选择。
www.gdemb.com
B R T
fread()文件的执行举例
电子系统设计
用户进程在用户空间,使用C库fread()读文件 Fread()调用read()系统调用,进入系统空间,执行系 统代码 系统根据文件对存储设备进行数据请求,在数据没准 备就绪是让出CPU使其他进程运行。 存储设备数据准备就绪,向CPU发出中断请求,CPU 响应进入中断上下文,并唤醒该文件的读进程 在某时刻,读文件的进程再次运行,取到数据,返回 用户空间
www.gdemb.com
B R T
Linux kernel的特点
电子系统设计
类Unix,遵循POSIX标准 支持很多的体系结构,如X86,Arm,Mips等等,有极强的平台可伸缩 性 Open Source(GNU GPL) 单内核,开放可扩展 真正的多任务多用户 具有强大的网络功能 ,尤其对Tcp/ip支持 开发功能强,开发环境免费 设备独立性, 系统把所有外部设备统一当作成文件来看待及操作 可靠的系统安全 ……
www.gdemb.com
B R T
Linux 2.6内核配置与编译
电子系统设计
选择相应的配置时,有三种选择,它们分别代表的含 义如下:
Y--将该功能编译进内核 N--不将该功能编译进内核 M--将该功能编译成模块,可以在需要时动态插入到内核中
make xconfig,使用鼠标就可以选择对应的选项。 make menuconfig,则需要使用空格键进行选取。
www.gdemb.com
B R T
Linux 2.6内核配置与编译
电子系统设计
配置的注意选项
4 Executable file formats --->
[*] Kernel support for ELF binaries 一定要选 5 Device Drivers ---> Memory Technology Devices (MTD) ---> 存储设备层,大部分的flash芯片驱动都基于MTD。用于 嵌入式系統。 Block devices
<M> Loopback device support 可以将一个文件挂成一个文件系统。mount iso文件
www.gdemb.com
B R T
Linux 2.6内核配置与编译
电子系统设计
配置的注意选项
6 file systems --->
必须将根文件系统直接编译到内核中。并且在 这里选择系统支持的文件系统。
www.gdemb.com
B R T
Linux系统软件层次结构
电子系统设计
www.gdemb.com
B R T
Linux中处理器的运行
电子系统设计
Hale Waihona Puke Baidu
Linux
Kernel初始化完毕后,程序运行在 以下的上下文空间中: 1)运行于用户空间,执行用户程序 2)运行于内核空间,处于当前进程的 上下文 3)运行于中断,处于中断上下文,与 进程无关,因为中断的不可预知
这些命令产生的配置选项给用户,用户选择->退出->保存后产生 .config 文件,文件中包含有各种选择了的配置选项,以供Makefile 使用,Makefile在会根据.config的选项来产生 autoconf.h, autoconf.h是以C语言的形式定义的各编译选项,供kernel的源文 件include
嵌入式微处理器及应用
许参 10-537 xs2015@yeah.net 15990184183
Linux Kernel架构
黄松 青
B R T
操作系统 (OS)的概念 电子系统设计
一个系统管理程序,管理计算机的资源
,给用户一个使用这些资源的平台 一个服务程序,操作系统都是为用户应 用程序服务的,服务的方式是通过系统 调用 system call Linux是一个多任务,跨平台的现代操作 系统
www.gdemb.com
B R T
Linux 2.6内核配置与编译
电子系统设计
内核配置系统:
配置命令 #make config(基于文本的最为传统的配置界面,不推荐使用) #make menuconfig(基于文本菜单的配置界面,字符终端下推荐使用) #make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使) #make gconfig(基于gtk的图形配置界面)
开放性的理念
设备的驱动
系统要记录和管理设备的存在
安全使用设备
设备是一种特殊的文件 进程如何使用设备,open/close,
read/write, ioctl
www.gdemb.com
B R T
电子系统设计 kernel历史 Linux
1991年由当时的芬兰学生linus
torvalds 编写并以GNU GPL的方式发布到Internet 上,称为0.11版 1994年,出1.0.0版本 1996年,出2.0版本 1999年,出2.2版本 2001年,出2.4版本 2003年,出2.6版本,至今都稳定在该版本
www.gdemb.com
B R T
Linux 2.6内核源码目录结构
电子系统设计
www.gdemb.com
B R T
Linux 2.6内核配置与编译
电子系统设计
交叉编译器:
运行在一种体系的CPU(通常是X86)的编译器,对其编译的程序产 生另外一种体系(如ARM/MIPS)的指令的编译器叫交叉编译器
操作系统的组成
电子系统设计
进程管理模块 内存管理模块
文件系统管理模块
设备管理模块 异常和中断管理模块 网络协议模块 …
…
www.gdemb.com
B R T
进程管理 电子系统设计
进程(process)的概念 系统的第一个进程Init 用户进程如何运行和退出
PCB 系统调度,不同的系统有不同的策略 用户进程进入系统的唯一途径, system call
有利于减小内核的长度,减小内核消耗的内存;
3)不需要的功能就不要选; 4)与内核关心紧密而且经常使用的部分功能代码直接 编译到内核中。
www.gdemb.com
B R T
Linux 2.6内核配置与编译
电子系统设计
配置工作过程: Makefile
分布在 Linux 内核源代码中的 Makefile,定义 Linux 内核的 编译规则; 顶层目录的Makefile管理整个Linux内核的配置编译。 配置工具 不同的内核配置方式,通过不同的配置工具完成。script目录 下提供了这些配置工具。如menuconfig目标使用mconf。 Kconfig文件 2.6内核引入的配置文件,是内核配置选项的源文件。 arch/$(ARCH)/Kconfig文件是主Kconfig文件,主Kconfig文件 调用其他目录的Kconfig文件。 这些Kconfig文件形成树状关系-->树状菜单。
www.gdemb.com
B R T
文件系统管理
永久性存储设备,disk,
电子系统设计
flash, sd, cf
分区、格式化及文件
一个简单的文件系统的例子 系统看存储地址是线性 进程看待文件的统一化和抽象化
www.gdemb.com
B R T
设备管理 电子系统设计
HAL层的概念,
www.gdemb.com
B R T
获取Linux内核源代码
从官方网站获取:www.kernel.org,主要
电子系统设计
是X86平台的版本 以BSP包的方式获取,主要在嵌入式的平 台上用的方式 补丁,从版本2.6.20升级到2.6.21 #cd 到2.6.20 linux 目录 #patch –p1 < patch-2.6.21
B R T
为什么要有操作系统
电子系统设计
多任务的要求 统一的服务接口,合理使用资源,如内存 管理并发时对资源使用冲突 减少开发的难度 安全性的要求 网络(TCP/IP)的使用 GUI的使用要求 应用程序移植性的要求 用户操作的方便性
www.gdemb.com
B R T
www.gdemb.com
B R T
Linux 2.6内核配置与编译
电子系统设计
配置的注意选项
2 General setup --->
大部分保持默认
[*] Support for paging of anonymous memory (swap) 应 该选择这个选项将使你的内核支持虚拟内存。Pc上应该选 择,而嵌入式上一般不选 [*] System V IPC 应该选择 为进程提供通信机制。有些程序只有在选Y的情况下才能 运行,这里一定要选。 [*] POSIX Message Queues POSIX的消息队列,它同样是一种IPC,应该选择 [*] Support for hot-pluggable devices 支持热插拔的,若 是为普通电脑配置内核,则最好选择