《博创嵌入式培训》PPT课件.ppt_第1页
《博创嵌入式培训》PPT课件.ppt_第2页
《博创嵌入式培训》PPT课件.ppt_第3页
《博创嵌入式培训》PPT课件.ppt_第4页
《博创嵌入式培训》PPT课件.ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章 嵌入式Linux内核文件 系统与存储,第三章 嵌入式Linux内核文件 系统与存储,主要内容 第一节 Linux内核定制、裁剪和添加 第二节 嵌入式引导系统(BootLoader)技术 第三节 文件系统的构建,学习方法与建议,本章主要介绍了三个部分,分别是嵌入式linux内核、引导系统介绍和文件系统等相关内容。该章节详细介绍了关于嵌入式系统如何构建以及内核部分的应用操作等内容,可以更好的帮助理解嵌入式系统的相关内容,具有一定的应用价值。,1,内容: 一、概述 二、内核目录介绍 三、配置文件和配置工具 四、内核的编译命令,第一节 Linux内核定制、裁剪和添加,2,第一节 Linux内核定制、裁剪和添加 一、概述,操作系统结构 操作系统(Operating System,OS)是一组能够管理电脑软硬件资源的程序,它能够管理内存、决定系统资源分配、控制输入输出设备以及管理网络文件等。作为计算机软硬件之间的纽带,操作系统能够使计算机系统资源得到最大限度的利用。利用运行在某台计算机(宿主机)上的编译器编译某个源程序,生成在另一台机器(目标机)上运行的目标代码的过程。 操作系统是一套复杂的管理控制程序,包括五个方面的管理功能:进程与处理机管理、存储管理、设备管理、文件管理与用户管理。一般来说,操作系统具有四个共同特征:并发性(concurrence)、共享性(sharing)、虚拟性(virtual)和不确定性(asynchronism)。其中,并发是指两个或者多个事件在同一时间间隔之内发生;共享指系统中的资源能够供多个用户(用户程序)共同使用;虚拟指通过某种技术把一个物理上的实体映射为若干个逻辑上的对应;而不确定性则指内存中的多个进程均按照各自独立的方式执行,其执行速度由于受到操作系统的自动控制,因此是无法预知的。,3,一个操作系统至少具有如下图所示的结构。 引导系统就是在操作系统内核运行之前运行的一段小程序,其作用是初始化硬件设备、建立内存空间的映射图,并且为最终调用操作系统内核准备好正确的环境;内核是一个操作系统的核心,负责管理系统的进程、存储、设备和文件等,它决定着系统的性能和稳定性;根文件系统并不是一个具体的文件类型,而是一个理论性的概念,它作为VFS(Virtual Filesystem Switcher)的根节点,可以帮助后者管理文件系统。VFS是内核中提供的一种软件机制,能够提供实际各个文件系统的挂载点。,4,第一节 Linux内核定制、裁剪和添加 一、概述,内核源码安装 将ARM Linux 系统内核源码安装到操作系统之中不仅可以方便学习内核的相应内容,而且具有帮助编译驱动程序等功能。完整的内核一般规模较大,可以从官方网站下载。下载的内核一般是tar.gz或者是.bz2压缩文件,使用时需要解压。在编译内核注意需要root权限。以下为内核源码的安装步骤: 1)将需要升级的内核拷贝到/usr/src/下: #cp linux-2.4.18.tar.gz /usr/src 2)解压下载的源程序文件,命令如下所示: #tar -zxvf linux-2.4.18.tar.gz 3)文件将解压到/usr/src/linux目录中,建立链接: #ln -s linux-2.4.18 linux,5,第一节 Linux内核定制、裁剪和添加 一、概述,第一节 Linux内核定制、裁剪和添加 一、概述,内核版本号说明 可以使用uname a命令或者cat /proc/version命令来查看系统的内核版本号,如下图所示。 该系统内核版本号为2.4.20-8。其中第一个数字为主版本号,第二个数字为次版本号,第三个数字为修订号。如果次版本号为偶数,则表明是该版本是稳定发行版本;如果次版本号是奇数,则说明该系统内核仍在开发中。,6,现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等几个功能模块组成 。Linux内核源码的各个目录大致与此相对应,如下图所示。,第一节 Linux内核定制、裁剪和添加 二、内核目录介绍,7,内核源码目录说明,8,第一节 Linux内核定制、裁剪和添加 二、内核目录介绍,1配置文件 给用户提供配置选择的功能,主要包括如下配置文件,9,第一节 Linux内核定制、裁剪和添加 三、配置文件和配置工具,2配置工具 用来进行相关配置的工具,包括配置命令解释器,其中配置用户界面如下: (1)基于字符的界面 使用命令: Make config 该方法简单且不需要调用Xwindows,不过操作麻烦,用户界面不友好。,10,第一节 Linux内核定制、裁剪和添加 三、配置文件和配置工具,(2)基于Ncurses的文本模式图形用户界面 使用命令: make menuconfig 该方法简单且不需要调用Xwindows,而且操作简单,用户界面友好后面的实验就使用该方法进行内核的相关配置。,11,第一节 Linux内核定制、裁剪和添加 三、配置文件和配置工具,(3)基于Xwindows图形界面的用户配置界面 使用命令: Make xconfig,12,第一节 Linux内核定制、裁剪和添加 三、配置文件和配置工具,1在该级目录下的Config.in中添加对该模块的编译条件,该变量可以设置为三种状态 Y -将该功能模块编译进内核 N -不将该功能模块编译进内核 M -将该功能编译成模块方式,可以在需要时动态插入到内核中的模块,13,第一节 Linux内核定制、裁剪和添加 四、内核的编译命令,2内核的编译操作 下面给出了用于内核编译的主要命令: # make menuconfig -配置编译选项 # make dep -提供变量依赖关系信息. # make clean -删除生成的模块和目标文件. # make zImage -编译内核生成压缩的映象. # make modules -编译模块. # make modules_install -安装编译完成的模块. 编译完成之后最终生成的压缩内核映象的路径为arch/arm/boot/zImage,之后拷贝新内核文件zImage到启动目录,并改为合适的名字,即可启动新完成的内核镜像。,14,第一节 Linux内核定制、裁剪和添加 四、内核的编译命令,内容: 一、引导系统概述 简单介绍引导系统的概念和模式 二、Linux的Bootloader vivi与uboot vivi和uboot作为ARM平台常用的引导程序,具有结构简单但是功能强大的特点,第二节 嵌入式引导系统(BootLoader)技术,15,1引导系统介绍 所谓的引导程序(BootLoader),即系统加电后运行的第一段软件代码。一般来说嵌入式系统的Bootloader负责加载整个启动任务。整个过程包括初始化硬件设备、建立内存空间的映射图、配置合适的软硬件环境以便能够调用操作系统的内核。,第二节 嵌入式引导系统(BootLoader)技术 一、引导系统概述,16,2引导系统的操作模式 大多数引导系统都包含两种不同的操作模式: 启动加载模式 下载模式 1)启动加载模式 启动加载模式也称为“自主”(autonomous)模式。引导系统从目标机上的某个固态存储设备中将操作系统加载到 RAM 中运行。这种模式是引导系统的正常工作模式。 2)下载模式 在下载模式下,目标机上的引导系统将通过串口连接或网络连接等通信手段从主机下载文件。从主机下载的文件通常首先被引导系统保存到目标机的RAM中,然后再被引导系统写到目标机上的FLASH类固态存储设备中。这种模式通常在第一次安装内核与根文件系统时使用;此外,以后的系统更新也会使用引导系统的这种工作模式。,第二节 嵌入式引导系统(BootLoader)技术 一、引导系统概述,17,3. 引导系统的主要任务与典型结构框架 大多数引导系统都分为 stage1 和 stage2 两大部分。依赖于处理器体系结构和板级初始化的代码通常都放在 stage1 中,用汇编实现;而 stage2 则通常用C语言来实现,这样可以实现更复杂的功能,同时代码具有更好的可读性和可移植性。,第二节 嵌入式引导系统(BootLoader)技术 一、引导系统概述,18,引导系统的 stage1: 1)硬件设备初始化。 2)为加载引导系统的 stage2 准备 RAM 空间。 3)拷贝引导系统的 stage2 到 RAM 空间中。 4)设置好堆栈。 5)跳转到 stage2 的 C 入口点,引导系统的 stage2 : 1)初始化本阶段要用到的硬件设备。 2)检测系统内存映射(memory map)。 3)将内核映像和根文件系统映像从 flash 上读到 RAM 空间中。 4)为内核设置启动参数。 5)调用内核。,1vivi的常用命令 帮助命令 vivi help 显示启动参数 vivi param show 启动参数帮助 vivi param help 设置参数 vivi param set boot_delay 10000000 Change boot_delay value. 0x00989680(10000000) to 0x00989680(10000000) vivi param save,第二节 嵌入式引导系统(BootLoader)技术 二、 Linux的Bootloader vivi与uboot,19,1vivi的常用命令 显示分区帮助 vivi part help 显示分区 vivi part show 存储器分区 vivi bon help 引导帮助 vivi boot help 启动操作系统 vivi boot,第二节 嵌入式引导系统(BootLoader)技术 二、 Linux的Bootloader vivi与uboot,20,2Uboot 的常用命令 1)protect:protect命令用于对Flash进行写保护,可以使能和解除写保护。 2)erase:erase命令可以擦除Flash。 3)setenv:setenv命令可以设置环境变量。 4)printenv:printenv命令可以打印全部环境变量,也可以只打印参数中列出的环境变量。 5)tftpboot:tftpboot命令能够使用TFTP协议通过网络下载二进制格式的文档。另外,使用这个命令,必须配置好相关的环境变量。例如serverip和ipaddr。其命令格式为: tftpboot loadAddress bootfilename 6)bootm: bootm命令可以引导启动存储在内存中的程序映像。这些内存包括RAM和可以永久保存的Flash。其命令格式为: bootm addr arg .,第二节 嵌入式引导系统(BootLoader)技术 二、 Linux的Bootloader vivi与uboot,21,2Uboot 的常用命令 6)bootm: bootm命令可以引导启动存储在内存中的程序映像。这些内存包括RAM和可以永久保存的Flash。其命令格式为: bootm addr arg . 7)go:go命令能够执行应用程序。其命令格式为: go addr arg . 8)loadb:loadb命令能够通过串口线下载二进制格式的文档。其命令格式为: loadb off baud 9)loads:loads命令可以通过串口线下载S-Record格式的文件。 10)flinfo:flinfo命令打印全部Flash组的信息,也可以只打印其中某个组的信息。一般嵌入式系统的Flash只有一个组。 11)cp:cp命令可以在内存中复制数据块,包括对Flash的读写操作。,第二节 嵌入式引导系统(BootLoader)技术 二、 Linux的Bootloader vivi与uboot,22,2Uboot 的常用命令 12)cmp:cmp命令可以比较两块内存中的内容。.b表示以字节为单位;.w表示以字为单位;.l表示以长字为单位。 13)mw:mw命令可以按照字节、字、长字写内存,.b ,w,l的用法与cp命令相同。 14)nfs:nfs命令可以使用NFS网络协议通过网络启动映像。 15)nm:nm命令用于修改内存,可以按照字节、字、长字操作。 16)run:run命令可以执行环境变量中的命令,后面参数可以是几个环境变量名。 17)sleep:sleep命令可以延迟N秒钟执行,N为十进制数。,第二节 嵌入式引导系统(BootLoader)技术 二、 Linux的Bootloader vivi与uboot,23,内容: 一、文件系统概述 包括根文件系统的概述以及根文件系统的目录结构 二、BusyBox BusyBox的介绍以及相关命令,第三节 文件系统的构建,24,1根文件系统描述 Linux引导启动时,默认使用的文件系统是根文件系统。装载根文件系统也是引导系统启动过程的最后一个步骤。 文件系统包含两大类:根文件系统和附加文件系统。 根文件系统是操作系统至少应该引导的一个文件系统,它包含了构建整个操作系统的基本程序和相关目录 附加文件系统则是除了根文件系统之外的所有文件系统,本身无法直接使用,需要挂载到根文件系统的某个目录下方可使用。,第三节 文件系统的构建 一、文件系统概述,25,第三节 文件系统的构建 一、文件系统概述,26,2根文件系统目录结构 根文件系统呈倒挂树状层次结构,一般包括如下几个目录:/etc、 /dev、/usr、/bin、 /var等。 如下图所示:,第三节 文件系统的构建 一、文件系统概述,27,各目录功能如下:,1BusyBox介绍 BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete environment for any small or embedded system. 事实上,BusyBox提供了相当多的工具。从最简单的显示工具到最强大的搜索工具,BusyBox把这些工具存放在/bin和/sbin目录之下,并且建立一个能够使用这些工具的链接。,第三节 文件系统的构建 二、BusyBox,28,2. BusyBox的相关命令 BusyBox的相关配置和编译内核类似,需要首先使用make menuconfig命令进行手工配置。敲下make menuconfig命令之后,进入如下界面:,第三节 文件系统的构建 二、BusyBox,29,2. BusyBox的相关命令 BusyBox其他命令包括: help 显示 make 选项的完整列表 defconfig 启用默认的(通用)配置

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论