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

下载本文档

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

文档简介

1、第第3章章 嵌入式嵌入式Linux内核文件内核文件系统与存储系统与存储第三章第三章 嵌入式嵌入式LinuxLinux内核文件内核文件系统与存储系统与存储主要内容主要内容 第一节第一节 LinuxLinux内核定制、裁剪和添加内核定制、裁剪和添加 第二节第二节 嵌入式引导系统嵌入式引导系统BootLoaderBootLoader技术技术 第三节第三节 文件系统的构建文件系统的构建 学习方法与建议学习方法与建议本章主要介绍了三个部分,分别是嵌入式linux内核、引导系统介绍和文件系统等相关内容。该章节详细介绍了关于嵌入式系统如何构建以及内核部分的应用操作等内容,可以更好的帮助理解嵌入式系统的相关内

2、容,具有一定的应用价值。 内容:内容:一、概述一、概述 二、内核目录介绍二、内核目录介绍 三、配置文件和配置工具三、配置文件和配置工具 四、内核的编译命令四、内核的编译命令 第一节第一节 Linux内核定制、裁剪和添加内核定制、裁剪和添加 第一节第一节 Linux内核定制、裁剪和添加内核定制、裁剪和添加 一、概述一、概述 操作系统结构操作系统结构操作系统操作系统Operating System,OS是一组能够管理电脑软硬件资源的程是一组能够管理电脑软硬件资源的程序,它能够管理内存、决定系统资源分配、控制输入输出设备以及管理序,它能够管理内存、决定系统资源分配、控制输入输出设备以及管理网络文件等

3、。作为计算机软硬件之间的纽带,操作系统能够使计算机系网络文件等。作为计算机软硬件之间的纽带,操作系统能够使计算机系统资源得到最大限度的利用。利用运行在某台计算机宿主机上的编统资源得到最大限度的利用。利用运行在某台计算机宿主机上的编译器编译某个源程序,生成在另一台机器目标机上运行的目标代码译器编译某个源程序,生成在另一台机器目标机上运行的目标代码的过程。的过程。操作系统是一套复杂的管理控制程序,包括五个方面的管理功能:进程与处操作系统是一套复杂的管理控制程序,包括五个方面的管理功能:进程与处理机管理、存储管理、设备管理、文件管理与用户管理。一般来说,操理机管理、存储管理、设备管理、文件管理与用户

4、管理。一般来说,操作系统具有四个共同特征:并发性作系统具有四个共同特征:并发性concurrence)、共享性)、共享性sharing)、虚拟性)、虚拟性(virtual)和不确定性和不确定性asynchronism)。其中)。其中,并发是指两个或者多个事件在同一时间间隔之内发生;共享指系统中的并发是指两个或者多个事件在同一时间间隔之内发生;共享指系统中的资源能够供多个用户用户程序共同使用;虚拟指通过某种技术把一资源能够供多个用户用户程序共同使用;虚拟指通过某种技术把一个物理上的实体映射为若干个逻辑上的对应;而不确定性则指内存中的个物理上的实体映射为若干个逻辑上的对应;而不确定性则指内存中的多

5、个进程均按照各自独立的方式执行,其执行速度由于受到操作系统的多个进程均按照各自独立的方式执行,其执行速度由于受到操作系统的自动控制,因此是无法预知的。自动控制,因此是无法预知的。 一个操作系统至少具有如下图所示的结构。引导系统就是在操作系统内核运行之前运行的一段小程序,其作用是初始化硬件设备、建立内存空间的映射图,并且为最终调用操作系统内核准备好正确的环境;内核是一个操作系统的核心,负责管理系统的进程、存储、设备和文件等,它决定着系统的性能和稳定性;根文件系统并不是一个具体的文件类型,而是一个理论性的概念,它作为VFSVirtual Filesystem Switcher的根节点,可以帮助后者

6、管理文件系统。VFS是内核中提供的一种软件机制,能够提供实际各个文件系统的挂载点。 引导系统BootLoader内核Kernel根文件系统Rootfs第一节第一节 Linux内核定制、裁剪和添加内核定制、裁剪和添加 一、概述一、概述 内核源码安装内核源码安装 将将ARM Linux 系统内核源码安装到操作系统之中不仅可以方便学习内核的相系统内核源码安装到操作系统之中不仅可以方便学习内核的相应内容,而且具有帮助编译驱动程序等功能。完整的内核一般规模较大,应内容,而且具有帮助编译驱动程序等功能。完整的内核一般规模较大,可以从官方网站可以从官方网站下载。下载的内核一般是下载。下载

7、的内核一般是tar.gz或者是或者是.bz2压缩文件,使用时需要解压。在编译内核注意需要压缩文件,使用时需要解压。在编译内核注意需要root权限。以下为内权限。以下为内核源码的安装步骤:核源码的安装步骤:1将需要升级的内核拷贝到将需要升级的内核拷贝到/usr/src/下:下:#cp linux-2.4.18.tar.gz /usr/src2解压下载的源程序文件,命令如下所示:解压下载的源程序文件,命令如下所示:#tar -zxvf linux-2.4.18.tar.gz3文件将解压到文件将解压到/usr/src/linux目录中,建立链接:目录中,建立链接:#ln -s linux-2.4.1

8、8 linux第一节第一节 Linux内核定制、裁剪和添加内核定制、裁剪和添加 一、概述一、概述 第一节第一节 Linux内核定制、裁剪和添加内核定制、裁剪和添加 一、概述一、概述 内核版本号说明内核版本号说明 可以使用可以使用uname a命令或者命令或者cat /proc/version命令来查看系统的内核版本号,命令来查看系统的内核版本号,如下图所示。如下图所示。该系统内核版本号为该系统内核版本号为2.4.20-8。其中第一个数字为主版本号,第二个数字为次。其中第一个数字为主版本号,第二个数字为次版本号,第三个数字为修订号。如果次版本号为偶数,则表明是该版本版本号,第三个数字为修订号。如

9、果次版本号为偶数,则表明是该版本是稳定发行版本;如果次版本号是奇数,则说明该系统内核仍在开发中。是稳定发行版本;如果次版本号是奇数,则说明该系统内核仍在开发中。 现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等几个功能模块组成 。Linux内核源码的各个目录大致与此相对应,如下图所示。第一节第一节 Linux内核定制、裁剪和添加内核定制、裁剪和添加 二、内核目录介绍二、内核目录介绍 内核源码目录说明 目录名称目录功能arch包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构。include包括编译内核所需要的大部分头文件。init包含内

10、核的初始化代码(不是系统的引导代码mm包含所有的内存管理代码。drivers包含系统中所有的设备驱动程序。ipc包含核心进程间的通信代码。fs存放Linux支持的文件系统代码。kernel包含内核管理的核心代码。net内核的网络部分代码。lib包含核心的库代码。scripts包含用于配置核心的脚本文件。Documentation一些文档,是对每个目录作用的具体说明。第一节第一节 Linux内核定制、裁剪和添加内核定制、裁剪和添加 二、内核目录介绍二、内核目录介绍 1配置文件给用户提供配置选择的功能,主要包括如下配置文件第一节第一节 Linux内核定制、裁剪和添加内核定制、裁剪和添加 三、配置文

11、件和配置工具三、配置文件和配置工具 配置文件名配置文件名功能各级各级Makefile和和.depend文件文件各级目录的make文件和依赖工具.config内核配置文件,保存配置结果Rules.make规则文件2配置工具用来进行相关配置的工具,包括配置命令解释器,其中配置用户界面如下: (1基于字符的界面 使用命令: Make config 该方法简单且不需要调用Xwindows,不过操作麻烦,用户界面不友好。 第一节第一节 Linux内核定制、裁剪和添加内核定制、裁剪和添加 三、配置文件和配置工具三、配置文件和配置工具 (2基于Ncurses的文本模式图形用户界面使用命令: make men

12、uconfig 该方法简单且不需要调用Xwindows,而且操作简单,用户界面友好后面的实验就使用该方法进行内核的相关配置。第一节第一节 Linux内核定制、裁剪和添加内核定制、裁剪和添加 三、配置文件和配置工具三、配置文件和配置工具 (3基于Xwindows图形界面的用户配置界面使用命令: Make xconfig第一节第一节 Linux内核定制、裁剪和添加内核定制、裁剪和添加 三、配置文件和配置工具三、配置文件和配置工具 1 1在该级目录下的在该级目录下的Config.inConfig.in中添加对该模块的编译条件,该变量可以设置为中添加对该模块的编译条件,该变量可以设置为三种状态三种状态

13、 Y Y-将该功能模块编译进内核将该功能模块编译进内核 N N-不将该功能模块编译进内核不将该功能模块编译进内核M M-将该功能编译成模块方式,可以在需要时动态插入到内核中的模块将该功能编译成模块方式,可以在需要时动态插入到内核中的模块第一节第一节 Linux内核定制、裁剪和添加内核定制、裁剪和添加 四、内核的编译命令四、内核的编译命令2内核的编译操作下面给出了用于内核编译的主要命令:# make menuconfig -配置编译选项# make dep -提供变量依赖关系信息. # make clean -删除生成的模块和目标文件. # make zImage -编译内核生成压缩的映象. #

14、 make modules -编译模块. # make modules_install -安装编译完成的模块.编译完成之后最终生成的压缩内核映象的路径为arch/arm/boot/zImage,之后拷贝新内核文件zImage到启动目录,并改为合适的名字,即可启动新完成的内核镜像。第一节第一节 Linux内核定制、裁剪和添加内核定制、裁剪和添加 四、内核的编译命令四、内核的编译命令 内容:内容:一、引导系统概述一、引导系统概述 简单介绍引导系统的概念和模式简单介绍引导系统的概念和模式二、二、Linux的的Bootloader vivi与与uboot vivi和和uboot作为作为ARM平台常用的

15、引导程序,具有结构简单但是功平台常用的引导程序,具有结构简单但是功能强大的特点能强大的特点 第二节第二节 嵌入式引导系统嵌入式引导系统BootLoader技术技术 1引导系统介绍引导系统介绍所谓的引导程序所谓的引导程序BootLoader),即系统加电后运行的第一段软件代),即系统加电后运行的第一段软件代码。一般来说嵌入式系统的码。一般来说嵌入式系统的Bootloader负责加载整个启动任务。负责加载整个启动任务。整个过程包括初始化硬件设备、建立内存空间的映射图、配置合整个过程包括初始化硬件设备、建立内存空间的映射图、配置合适的软硬件环境以便能够调用操作系统的内核。适的软硬件环境以便能够调用操

16、作系统的内核。第二节第二节 嵌入式引导系统嵌入式引导系统BootLoader技术技术 一、引导系统概述一、引导系统概述 2引导系统的操作模式引导系统的操作模式大多数引导系统都包含两种不同的操作模式:大多数引导系统都包含两种不同的操作模式: 启动加载模式启动加载模式 下载模式下载模式1启动加载模式启动加载模式启动加载模式也称为启动加载模式也称为“自主自主”(autonomous方式。引导系统从目标方式。引导系统从目标机上的某个固态存储设备中将操作系统加载到机上的某个固态存储设备中将操作系统加载到 RAM 中运行。这种中运行。这种模式是引导系统的正常工作模式。模式是引导系统的正常工作模式。2下载模

17、式下载模式在下载模式下,目标机上的引导系统将通过串口连接或网络连接等通信在下载模式下,目标机上的引导系统将通过串口连接或网络连接等通信手段从主机下载文件。从主机下载的文件通常首先被引导系统保手段从主机下载文件。从主机下载的文件通常首先被引导系统保存到目标机的存到目标机的RAM中,然后再被引导系统写到目标机上的中,然后再被引导系统写到目标机上的FLASH类固态存储设备中。这种模式通常在第一次安装内核与根文件系类固态存储设备中。这种模式通常在第一次安装内核与根文件系统时使用;此外,以后的系统更新也会使用引导系统的这种工作统时使用;此外,以后的系统更新也会使用引导系统的这种工作模式。模式。 第二节第

18、二节 嵌入式引导系统嵌入式引导系统BootLoader技术技术 一、引导系统概述一、引导系统概述 3. 引导系统的主要任务与典型结构框架引导系统的主要任务与典型结构框架 大多数引导系统都分为大多数引导系统都分为 stage1 和和 stage2 两大部分。依赖于处理器体两大部分。依赖于处理器体系结构和板级初始化的代码通常都放在系结构和板级初始化的代码通常都放在 stage1 中,用汇编实现;中,用汇编实现;而而 stage2 则通常用则通常用C语言来实现,这样可以实现更复杂的功能,语言来实现,这样可以实现更复杂的功能,同时代码具有更好的可读性和可移植性。同时代码具有更好的可读性和可移植性。 第

19、二节第二节 嵌入式引导系统嵌入式引导系统BootLoader技术技术 一、引导系统概述一、引导系统概述 引导系统的 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 显示启动参数显示启动

20、参数vivi param show 启动参数帮助启动参数帮助vivi param help 设置参数设置参数vivi param set boot_delay 10000000Change boot_delay value. 0 x00989680(10000000) to 0 x00989680(10000000)vivi param save第二节第二节 嵌入式引导系统嵌入式引导系统BootLoader技术技术 二、二、 Linux的的Bootloader vivi与与uboot 1vivi的常用命令的常用命令 显示分区帮助显示分区帮助vivi part help 显示分区显示分区vivi

21、 part show 存储器分区存储器分区vivi bon help 引导帮助引导帮助vivi boot help 启动操作系统启动操作系统vivi boot 第二节第二节 嵌入式引导系统嵌入式引导系统BootLoader技术技术 二、二、 Linux的的Bootloader vivi与与uboot 2Uboot 的常用命令的常用命令1protect:protect命令用于对命令用于对Flash进行写保护,可以使能和解除写进行写保护,可以使能和解除写保护。保护。2erase:erase命令可以擦除命令可以擦除Flash。3setenv:setenv命令可以设置环境变量。命令可以设置环境变量。4

22、printenv:printenv命令可以打印全部环境变量,也可以只打印参命令可以打印全部环境变量,也可以只打印参数中列出的环境变量。数中列出的环境变量。5tftpboot:tftpboot命令能够使用命令能够使用TFTP协议通过网络下载二进制格协议通过网络下载二进制格式的文档。另外,使用这个命令,必须配置好相关的环境变量。式的文档。另外,使用这个命令,必须配置好相关的环境变量。例如例如serverip和和ipaddr。其命令格式为:。其命令格式为:tftpboot loadAddress bootfilename6bootm: bootm命令可以引导启动存储在内存中的程序映像。这些命令可以引

23、导启动存储在内存中的程序映像。这些内存包括内存包括RAM和可以永久保存的和可以永久保存的Flash。其命令格式为:。其命令格式为:bootm addr arg .第二节第二节 嵌入式引导系统嵌入式引导系统BootLoader技术技术 二、二、 Linux的的Bootloader vivi与与uboot 2Uboot 的常用命令的常用命令6bootm: bootm命令可以引导启动存储在内存中的程序映像。这些命令可以引导启动存储在内存中的程序映像。这些内存包括内存包括RAM和可以永久保存的和可以永久保存的Flash。其命令格式为:。其命令格式为:bootm addr arg .7go:go命令能够

24、执行应用程序。其命令格式为:命令能够执行应用程序。其命令格式为:go addr arg .8loadb:loadb命令能够通过串口线下载二进制格式的文档。其命令命令能够通过串口线下载二进制格式的文档。其命令格式为:格式为:loadb off baud 9loads:loads命令可以通过串口线下载命令可以通过串口线下载S-Record格式的文件。格式的文件。10flinfo:flinfo命令打印全部命令打印全部Flash组的信息,也可以只打印其中某组的信息,也可以只打印其中某个组的信息。一般嵌入式系统的个组的信息。一般嵌入式系统的Flash只有一个组。只有一个组。11cp:cp命令可以在内存中

25、复制数据块,包括对命令可以在内存中复制数据块,包括对Flash的读写操作。的读写操作。第二节第二节 嵌入式引导系统嵌入式引导系统BootLoader技术技术 二、二、 Linux的的Bootloader vivi与与uboot 2Uboot 的常用命令的常用命令12cmp:cmp命令可以比较两块内存中的内容。命令可以比较两块内存中的内容。.b表示以字节为单表示以字节为单位;位;.w表示以字为单位;表示以字为单位;.l表示以长字为单位。表示以长字为单位。13mw:mw命令可以按照字节、字、长字写内存,命令可以按照字节、字、长字写内存,.b ,w,l的用法的用法与与cp命令相同。命令相同。14nf

26、s:nfs命令可以使用命令可以使用NFS网络协议通过网络启动映像。网络协议通过网络启动映像。15nm:nm命令用于修改内存,可以按照字节、字、长字操作。命令用于修改内存,可以按照字节、字、长字操作。 16run:run命令可以执行环境变量中的命令,后面参数可以是几个环命令可以执行环境变量中的命令,后面参数可以是几个环境变量名。境变量名。17sleep:sleep命令可以延迟命令可以延迟N秒钟执行,秒钟执行,N为十进制数。为十进制数。第二节第二节 嵌入式引导系统嵌入式引导系统BootLoader技术技术 二、二、 Linux的的Bootloader vivi与与uboot 内容:内容:一、文件系

27、统概述一、文件系统概述包括根文件系统的概述以及根文件系统的目录结构包括根文件系统的概述以及根文件系统的目录结构二、二、BusyBoxBusyBox的介绍以及相关命令的介绍以及相关命令第三节第三节 文件系统的构建文件系统的构建1根文件系统描述根文件系统描述Linux引导启动时,默认使用的文件系统是根文件系统。装载根文件引导启动时,默认使用的文件系统是根文件系统。装载根文件系统也是引导系统启动过程的最后一个步骤。系统也是引导系统启动过程的最后一个步骤。文件系统包含两大类:根文件系统和附加文件系统。文件系统包含两大类:根文件系统和附加文件系统。根文件系统是操作系统至少应该引导的一个文件系统,它包含了

28、构建根文件系统是操作系统至少应该引导的一个文件系统,它包含了构建整个操作系统的基本程序和相关目录整个操作系统的基本程序和相关目录附加文件系统则是除了根文件系统之外的所有文件系统,本身无法直附加文件系统则是除了根文件系统之外的所有文件系统,本身无法直接使用,需要挂载到根文件系统的某个目录下方可使用。接使用,需要挂载到根文件系统的某个目录下方可使用。第三节第三节 文件系统的构建文件系统的构建 一、文件系统概述一、文件系统概述第三节第三节 文件系统的构建文件系统的构建 一、文件系统概述一、文件系统概述2根文件系统目录结构根文件系统目录结构 根文件系统呈倒挂树状层次结构,一般包括如下几个目录:根文件系

29、统呈倒挂树状层次结构,一般包括如下几个目录:/etc、 /dev、/usr、/bin、 /var等。等。 如下图所示:如下图所示:第三节第三节 文件系统的构建文件系统的构建 一、文件系统概述一、文件系统概述各目录功能如下:/bin/bin包含每个用户使用的系统下最常用的命令/sbin/sbin主要在超级用户管理系统时使用/lib/lib存放系统的链接库文件/boot/boot系统启动时的内核文件和其他一些信息文件/dev/dev包含着代表硬件设备的设备文件/etc/etc包含着整个系统的各种配置文件/home/home包含各用户的主目录/root/root超级用户root的默认主目录/mnt/

30、mnt装载其他非标准文件系统的装载点/proc/proc一个虚拟目录,其中保存内核和进程的信息,文件存放在系统内存中/tmp/tmp该目录为程序和用户提供临时空间/usr/usr包含UNIX系统的众多资源,占用空间较大/var/var系统记录文件的存放地,同时也存放着一些系统的配置文件/lost+found/lost+found存在于所有的文件系统中,保存文件碎片/opt/opt由一些外部应用程序使用的目录1BusyBox介绍介绍BusyBox combines tiny versions of many common UNIX utilities into a single small ex

31、ecutable. 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

32、like their GNU counterparts. BusyBox provides a fairly complete environment for any small or embedded system.事实上,事实上,BusyBox提供了相当多的工具。从最简单的显示工具到最提供了相当多的工具。从最简单的显示工具到最强大的搜索工具,强大的搜索工具,BusyBox把这些工具存放在把这些工具存放在/bin和和/sbin目录之目录之下,并且建立一个能够使用这些工具的链接。下,并且建立一个能够使用这些工具的链接。 第三节第三节 文件系统的构建文件系统的构建 二、二、BusyBox2. BusyBox的相关命令的相关命令BusyBox的相关配置和编译内核类似,需要首先使用的相关配置和编译内核类似,需要首先使用make menuconfig命令进行手工配置。敲下命令进行手工配置。敲下make menuconfig命令之命令之后,进入如下界面:后,进入如下

温馨提示

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

评论

0/150

提交评论