51 uClinux操作系统原理介绍.pdf
《51 uClinux操作系统原理介绍.pdf》由会员分享,可在线阅读,更多相关《51 uClinux操作系统原理介绍.pdf(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式系统程序设计嵌入式系统程序设计大连理工大学软件学院嵌入式系统工程系赖晓晨大连理工大学软件学院嵌入式系统工程系赖晓晨uClinux操作系统原理介绍操作系统原理介绍?uClinux简介简介?uClinux架构架构?BusyBox工具集工具集一、一、uClinux简介简介?uClinux是是Linux2.0版本的一个分支,版本的一个分支,全称全称Micro Control Linux,即,即“微控制领域的微控制领域的linux系统系统”,是,是GNU项目,代码完全开放。项目,代码完全开放。?uClinux采用采用flat(平面型)内存模型,专门应用于没有(平面型)内存模型,专门应用于没有MMU
2、的的CPU。?使用的使用的Romfs文件系统不支持动态擦写保存,对于系统需要动态保存的数据采用虚拟文件系统不支持动态擦写保存,对于系统需要动态保存的数据采用虚拟ram盘的方法进行处理盘的方法进行处理(ram盘将采用盘将采用ext2文件系统文件系统)。uClinux的历史发展的历史发展?1998年年1月月uClinux发行第一版,该版本基于发行第一版,该版本基于Palm PDA实现;实现;?1999年年2月份成功移植到月份成功移植到Motorola的的ColdFire系列处理器系列处理器MCF5206和和MCF5307;?uClinux发行至今已经历多个版本,最常用的版本为发行至今已经历多个版本
3、,最常用的版本为uClinux-dist-20040408;?目前的目前的uClinux不仅支持不仅支持NOMMU处理器,同时也支持处理器,同时也支持MMU处理器,包括处理器,包括ARM、MIPS、sh、68K、x86甚至甚至SPARC等高性能处理器,并在等高性能处理器,并在60个以上基于这些处理器的开发平台成功实现。个以上基于这些处理器的开发平台成功实现。uClinux内核及版本内核及版本?uClinux基于基于linux内核版本。内核版本。?2.0.38:比较成熟。:比较成熟。?2.4.x:常用版本:常用版本?2.6.x:最新版本:最新版本?uClinux内核大小约内核大小约500k,如果
4、加上一些基本应用,不超过,如果加上一些基本应用,不超过900k,很适合嵌入式系统。,很适合嵌入式系统。uClinux的特点的特点?广泛的处理器结构和硬件平台支持:基于广泛的处理器结构和硬件平台支持:基于Linux-2.4.x内核的内核的uClinux,支持,支持19种处理器结构,并在种处理器结构,并在60种以上的硬件开发平台成功实现。种以上的硬件开发平台成功实现。?完全的完全的Linux内核的特性:内核的特性:uClinux具备标准具备标准Linux系统的稳定性,并且支持系统的稳定性,并且支持linux内核约定的全部的特性,包括内核优先级特性以及许多的文件系统,设备驱动。内核约定的全部的特性,
5、包括内核优先级特性以及许多的文件系统,设备驱动。uClinux的特点(续)的特点(续)?占用空间小:占用空间小:uClinux内核不超过内核不超过512KB,加上工具不超过,加上工具不超过900KB。UClinux是一个高度可定制化的内核,通过定制内核可以获得到一个是一个高度可定制化的内核,通过定制内核可以获得到一个300k以下的可固化的内核压缩镜像,包括终端和一些基本的设备驱动以及只读文件系统。以下的可固化的内核压缩镜像,包括终端和一些基本的设备驱动以及只读文件系统。uClinux的特点(续)的特点(续)?重写了标准重写了标准c函数库:函数库:uClinux系统中所有应用程序使用了嵌入式的标
6、准系统中所有应用程序使用了嵌入式的标准C函数库函数库uClibc或或uC-libc,该函数库精简了,该函数库精简了Linux系统中的标准函数库系统中的标准函数库libc。uClinux的特点(续)的特点(续)?丰富的应用软件:丰富的应用软件:uClinux发布包中有大量的应用程序,包括各种网络协议、服务,图形界面,音频播放软件等等。除少数情况外,在发布包中有大量的应用程序,包括各种网络协议、服务,图形界面,音频播放软件等等。除少数情况外,在uClinux平台上可完全使用平台上可完全使用Linux应用程序接口,因此,用户可以移植应用程序接口,因此,用户可以移植Linux上的应用程序到上的应用程序
7、到uClinux系统。除了与硬件相关代码和转换虚拟地址到物理的内存镜像外,几乎所有的代码不需要改变就可以编译。系统。除了与硬件相关代码和转换虚拟地址到物理的内存镜像外,几乎所有的代码不需要改变就可以编译。uClinux的特点(续)的特点(续)?低廉的成本:低廉的成本:?软件方面,自由开放的系统、开发工具和大量应用程序,可以节省用户的开发投入。软件方面,自由开放的系统、开发工具和大量应用程序,可以节省用户的开发投入。?硬件方面,内存管理单元硬件方面,内存管理单元MMU核心大小约占典型的核心大小约占典型的ARM SoC(System-on-Chip单片机单片机)晶体的晶体的30%,典型的网络和嵌入
8、式系统里有一半以上的应用程序不需要,典型的网络和嵌入式系统里有一半以上的应用程序不需要MMU。uClinux的特点(续)的特点(续)?开源软件:源代码开放使用户得以跟踪和定制最核心和底层的代码以满足用户系统的需求。同时自由软件生命力强大,不断升级的新版本以及强大的网上技术支持给用户产品的维护和升级带来很大的方便。开源软件:源代码开放使用户得以跟踪和定制最核心和底层的代码以满足用户系统的需求。同时自由软件生命力强大,不断升级的新版本以及强大的网上技术支持给用户产品的维护和升级带来很大的方便。?完美的文件系统:完美的文件系统:uClinux支持一般的文件系统如支持一般的文件系统如NFS,EXT2,
9、FAT16/32等,同时更支持专为嵌入式系统设计的等,同时更支持专为嵌入式系统设计的ROMFS、JFFS文件系统,在通常应用中,更多的使用后面的文件系统。文件系统,在通常应用中,更多的使用后面的文件系统。uClinux小型化方法小型化方法?采用采用romfs文件系统。文件系统。?romfs文件系统比文件系统比ext2需要更少的代码;需要更少的代码;?romfs文件系统相对简单,超级块文件系统相对简单,超级块(superblock)需要更少的存储空间。需要更少的存储空间。?重写了应用程序库,相对于越来越大且越来越全的重写了应用程序库,相对于越来越大且越来越全的glibc库,库,uClibc对对g
10、libc做了精简。做了精简。uClinux的实时性问题的实时性问题?uClinux本身并没有关注实时问题,它并不是为了本身并没有关注实时问题,它并不是为了Linux的实时性而提出的。另外有一种的实时性而提出的。另外有一种Linux-Rt-linux关注实时问题。关注实时问题。?Rt-linux执行管理器把普通执行管理器把普通Linux的内核当成一个任务运行,同时还管理了实时进程。而非实时进程则交给普通的内核当成一个任务运行,同时还管理了实时进程。而非实时进程则交给普通Linux内核处理。内核处理。?uClinux可以使用可以使用Rt-linux的的patch,从而增强,从而增强uClinux的
11、实时性,使得的实时性,使得uClinux可以应用于工业控制、进程控制等一些实时要求较高的应用。且保持了与标准可以应用于工业控制、进程控制等一些实时要求较高的应用。且保持了与标准linux的兼容。的兼容。运行运行uClinux的硬件平台的硬件平台?运行运行uClinux的硬件平台主要包括如下几个部分:的硬件平台主要包括如下几个部分:?cpu(ARMv4指令集兼容指令集兼容)?Uart?memory controller?定时器定时器?flash存储器,存储器,sdram存储器存储器?中断控制器和中断控制器和DMA。uClinux的开发环境的开发环境?宿主机运行宿主机运行linux操作系统,或使用
12、操作系统,或使用cygwin模拟模拟linux操作系统操作系统?宿主机安装宿主机安装GNU开发套件开发套件?Gcc、Binutils、Gdb:arm-elf-gcc?uClinux的打印终端:的打印终端:uClinux的默认终端是串口,内核在启动时所有的信息都打印到串口终端的默认终端是串口,内核在启动时所有的信息都打印到串口终端(printk函数函数),也可以通过串口终端与系统交互。,也可以通过串口终端与系统交互。?uClinux在启动时启动了在启动时启动了telnetd,操作者可以远程登录上系统,从而控制系统的运行。,操作者可以远程登录上系统,从而控制系统的运行。uClinux 系统组成系统
13、组成?一个基于一个基于uClinux 的完整的嵌入式系统由三个部分组成:系统引导程序、的完整的嵌入式系统由三个部分组成:系统引导程序、uClinux 操作系统内核和文件系统。操作系统内核和文件系统。bootloaderOS内核内核文件系统文件系统uClinux系统的系统的flash映像映像RAM系统引导程序系统引导程序?系统引导程序通常称为系统引导程序通常称为Boot Loader,是在任何硬件平台上执行的第一段代码,相当于,是在任何硬件平台上执行的第一段代码,相当于PC上的上的BIOS,主要负责系统初始化工作,然后将系统控制权交给操作系统,控制权交给操作系统后,系统的运行和,主要负责系统初始
14、化工作,然后将系统控制权交给操作系统,控制权交给操作系统后,系统的运行和Boot Loader 再无任何关系。再无任何关系。?uClinux的发行包中不包含的发行包中不包含Boot Loader,Boot Loader必须由用户自己设计,但用户可以直接使用或参考一些开源的必须由用户自己设计,但用户可以直接使用或参考一些开源的Boot Loader软件工程。软件工程。Boot Loader的大小由其设计功能所决定,最小只有几的大小由其设计功能所决定,最小只有几K字节,功能复杂的一般也不超过字节,功能复杂的一般也不超过100K字节。字节。操作系统内核操作系统内核?uClinux 操作系统内核,完成
15、的功能和大家熟悉的操作系统内核,完成的功能和大家熟悉的Linux内核相同,包括进程调度、内存管理、文件系统管理、网络接口和进程间通信。内核相同,包括进程调度、内存管理、文件系统管理、网络接口和进程间通信。?使用未压缩的系统内核,一般要占用使用未压缩的系统内核,一般要占用400K字节到字节到900K字节空间,如果是压缩后的系统内核,则占用空间一般在字节空间,如果是压缩后的系统内核,则占用空间一般在300K字节到字节到500K字节之间。字节之间。文件系统文件系统?文件系统主要存储用户应用程序,同时包括系统配置文件、系统程序和必需的驱动程序,其占用空间由用户的应用程序规模决定,从文件系统主要存储用户
16、应用程序,同时包括系统配置文件、系统程序和必需的驱动程序,其占用空间由用户的应用程序规模决定,从200K字节到字节到1M字节不等。字节不等。?可执行文件格式可执行文件格式?coff(common object file format):一种通用的对象文件格式:一种通用的对象文件格式?elf(excutive linked file):一种为:一种为Linux系统所采用的通用文件格式,支持动态连接系统所采用的通用文件格式,支持动态连接?flat:elf格式有很大的文件头,格式有很大的文件头,flat文件对文件头和一些段信息做了简化文件对文件头和一些段信息做了简化uClinux应用程序格式应用程序
17、格式?uClinux采用采用flat可执行文件格式,可以使用可执行文件格式,可以使用elf2flt工具把工具把elf格式可执行文件转换为格式可执行文件转换为flat格式文件。格式文件。?当用户要执行一个应用时,内核的执行文件加载器(当用户要执行一个应用时,内核的执行文件加载器(fs/binfmt_flat.c)将对)将对flat文件进行进一步处理,主要是对代码段和数据段进行修正。文件进行进一步处理,主要是对代码段和数据段进行修正。?应用程序在连接时并不知道将来要在系统的哪一段内存上运行,因此要求在任何地址都能运行,要做到地址无关(应用程序在连接时并不知道将来要在系统的哪一段内存上运行,因此要求
18、在任何地址都能运行,要做到地址无关(PIC:position independent code)。)。flat(扁平)格式(扁平)格式二、二、uClinux内核架构内核架构文件系统模块文件系统模块文件系统文件系统内核初始化内核初始化启动模块启动模块系统调用处理程序(系统调用处理程序(system call handler)进程调用进程调用驱动程序驱动程序虚拟文件系统管理模块虚拟文件系统管理模块块设备驱动块设备驱动 字符设备驱动字符设备驱动海量设备驱动海量设备驱动Socket驱动程序驱动程序网络模块网络模块网络设备驱动程序网络设备驱动程序IPC模块模块MM模块模块异常处理异常处理C运行库运行库内
19、核:内核:?启动模块启动模块负责用来启动启动模块启动模块负责用来启动linux内核,包括系统堆栈初始化,把压缩的内核,包括系统堆栈初始化,把压缩的linux映象从映象从flash解压到解压到ram中,并把控制权交给内核初始化例程。这部分内容高度硬件相关,代码要尽量精简。中,并把控制权交给内核初始化例程。这部分内容高度硬件相关,代码要尽量精简。uClinux内核架构分析内核架构分析?内核初始化模块内核初始化的入口地址是:内核初始化模块内核初始化的入口地址是:start_kernel(在(在init/main.c中),它初始化内核的其他部分,包括异常、中断、内存页、调度、驱动程序等。并启动中),它
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 uClinux操作系统原理介绍 uClinux 操作系统 原理 介绍
限制150内