1 / 64

嵌入式操作系统 Embedded Operating System

嵌入式操作系统 Embedded Operating System. 第三课 嵌入式 Linux 操作系统. 课程大纲 .  嵌入式 Linux 简介  典型的嵌入式 Linux  ARM-Linux 操作系统  ARM-Linux 操作系统的内存管理  ARM-Linux 操作系统的文件系统  嵌入式 Linux 的前景. 2. 开源开放的 Linux. Linux 的诞生 1991 年芬兰大学生 Linus Torvalds 写的类 minix 操作系统 第一个版本是 Linux 0.01 版本,代码量为一万行

calix
Download Presentation

嵌入式操作系统 Embedded Operating System

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 嵌入式操作系统Embedded Operating System 第三课 嵌入式Linux操作系统

  2. 课程大纲  嵌入式Linux简介 典型的嵌入式Linux ARM-Linux操作系统 ARM-Linux操作系统的内存管理 ARM-Linux操作系统的文件系统 嵌入式Linux的前景 2

  3. 开源开放的Linux • Linux的诞生 • 1991年芬兰大学生Linus Torvalds写的类minix操作系统 • 第一个版本是Linux 0.01版本,代码量为一万行 • 1992年,用户为1000人 • 1994年3月,Linux1.0发布 • 代码量17万行 • 随后正式采用GPL协议 • 1996年6月,Linux 2.0内核发布 • 2.0版本内核约有40万行代码 • 可以支持多种处理器 • 全球大约有350万人使用 • 1998年,Redhat Linux出现 • 2000年及之后,Linux发展迅速 • 从桌面到服务器到嵌入式领域 • 市场占有率也有所提升 3

  4. Linux的版本 • 内核 • 属于单内核 • 不属于微内核、混合内核、外内核、无核 • 内核版本 • 最新的版本2.6.39 • 发行版 • 基于Debian,如Ubuntu • 基于RPM,如Fedora,红旗 • Slackware • 其它打包方式的套件 • 专用包:Android/Maemo/Moblin/MeeGo • 2010年2月,谷歌Android被Linux内核除名 • 知识产权 • 任何版本的都需要遵守GPL • 没有独立的知识产权 4

  5. 嵌入式Linux的发展(1) • 嵌入式Linux • 以Linux为基础的,面向嵌入式系统定制的嵌入式操作系统 • 一般需2MB容量 • Linux的优点 • 不需要支付操作系统许可证的费用 • 体系结构是公开,源代码开放 • 系列的免费开发工具和开发环境,大量的免费文档,广泛的技术支持 • 内核小、效率高,内核的更新速度很快,可定制,其系统内核最小只有约134KB(夸克QUARK是最小的嵌入式Linux,内核13KB) • 用于嵌入式系统时,Linux的缺点 • 非微内核 • Linux是非实时的操作系统,而嵌入式系统一般都要求实时 • Linux本身需要的硬件资源较多,而嵌入式系统是资源有限的系统 5

  6. 嵌入式Linux的发展(2) • 早期的嵌入式Linux • 最早在1999年左右,开始出现面向嵌入式Linux的需求和相关的开发 • 2003年以后 • 嵌入式Linux的发展开始快速发展 • 出发点是基于Linux的优点 • 不同的应用行业和企业基于拥有自己平台的思想,对嵌入式Linux进行了大量的投入 • 图形能力较差 6

  7. 嵌入式Linux的改进(1) • 嵌入式Linux基于Linux,不完全相同 • 实时性 • 嵌入式系统有较高的实时性的要求 • Linux是通用操作系统,不是实时操作系统 • 内核不支持抢占实时特性 • 嵌入式Linux扩展了Linux的实时性能 • 实时调度算法 • 功能上扩充Linux的实时处理和控制系统 • 支持的范围更广,支持的设备更多 7

  8. 嵌入式Linux的改进(2) • 定制内核 • 嵌入式系统是软硬件可裁剪 • 适用于系统对功能、可靠性、成本、功耗严格要求的专用计算机系统有较高的实时性的要求 • Linux是Monolithic内核,不能应用于嵌入式系统 • 嵌入式Linux的定制内核 • 可以采用MicroKernel • 内核体积小,占用的资源少 • 面向应用的系统定制 • 根据行业的特性对Linux进行行业化系统定制 8

  9. 嵌入式Linux的特点 • 继承了Linux的优点 • 开源开放 • 有较为成熟的技术社区 • 体积小 • 无许可证费用 • 工具链越来越完整和丰富 • 可以进行定制化的改造 • 实时性得到了提高 • 对嵌入式的硬件有较好的支持 • 目前正在开发的嵌入式系统中,49%的项目选择Linux作为嵌入式操作系统。Linux现已成为嵌入式操作的理想选择。 9

  10. 软件版权和许可证 • 知识产权 • 软件版权与专利 • 软件版权与公共领域(public domain) • 版权保护周期 • 版权保护范围和形式 • 许可证 • 派生 • 净室技术Cleanroom • 常用开源软件许可证 • GPL、LGPL 10

  11. GPL:GNU Public License • 权利:自由 • 义务:copyleft • 触发条件 • 派生 • 社区与法律可能有不同阐述 • 发行 • 要求:开源 • 有谁来开源? • 怎样开源? • 完整性要求? 11

  12. LGPL:Lesser GPL • GNU 宽通用公共许可证,与GPL非常类似 • 区别 • 触发条件(派生) • 适用范围 • 运行库 12

  13. 13

  14. 课程大纲 嵌入式Linux简介 典型的嵌入式Linux ARM-Linux操作系统 ARM-Linux操作系统的内存管理 ARM-Linux操作系统的文件系统 嵌入式Linux的前景 14

  15. 嵌入式Linux的应用领域 • 嵌入式Linux的应用领域广泛 • 大部分用于移动电话、数字娱乐等非实时嵌入式系统 • 工业控制 • 军事领域 • …… • 需要嵌入式操作系统的地方,就可以应用嵌入式Linux 15

  16. 典型的嵌入式Linux • 嵌入式Linux有多个不同的版本 • 源于Linux • 应用于不同的领域 • 有各自的特点 • 典型的嵌入式Linux • 出现很多嵌入式Linux: Embedix,ETLinux,LEM,RTLinux, LinuxRouterProject,LOAF,uCLinux,muLinux,ThinLinux,FirePlug和PizzaBoxLinux • 平台化嵌入式Linux • Android • Moblin+Maemo→MeeGO 16

  17. 智能手机操作系统 • 类Unix • 基于Linux • Access Linux、Android、bada、LiMo、MeeGo (Moblin、Maemo、Qt Extended)、Openmoko Linux (Qt Extended Improved)、OPhone、SHR、webOS • 过去:DSLinux、Familiar、iPodLinux、MobiLinux、Ubuntu Mobile • 其他 • BlackBerry Tablet OS、iOS • 其他 • Windows CE (Windows Phone 7、Windows Mobile)、BlackBerry OS、GEOS、Nintendo DSi OS、Nokia OS (S30、S40)、PSP OS、Symbian (MOAP(S)、UIQ、S60、S80、S90) • 过去: Palm OS、SavaJe • 相关平台 • BREW、Java ME (FX Mobile)

  18. 嵌入式Linux-RTLinux • RTLinux的历史 • 来源于Linux • 美国新墨西哥州大学计算机科学系 • 设计原则 • 实时模块中的工作量尽量少 • 一般任务均在Linux中完成 • 包括部分实时任务,前提是在Linux中完成不影响实时性能 • RTLinux内核完成实时性要求高的任务 • 已在美国航天部门,印度军方得到了广泛应用 18

  19. 嵌入式Linux-RTLinux(2) • 技术特点 • 对Linux内核做了改造 • 增加了RTLinux内核的控制 • 采用动态加载实时进程的方式实现Linux硬实时 • 两个内核 • Linux内核(上层)和实时内核(底层) • Linux本身作为这个实时内核的优先级最低的任务 • 所有实时任务的优先级都高于Linux系统本身以及Linux系统下的一般任务 • 上下文切换的最坏情况只有大约10个微秒 19

  20. 嵌入式Linux-Montavista Linux • Montavista Linux的概述 • 由成立于1999年的Montavista公司开发 • MontaVista Linux的所有源代码对外开放 • Montavista公司主要提供服务 • Montavista Linux的版本 • 电信设备用的Carrier Grade Edition • 手机用的MobiLinux • 消费电子产品及其他设备用的Professional Edition 20

  21. 嵌入式Linux-Montavista Linux(2) • Montavista Linux技术特点 • 提供实时嵌入式Linux操作系统和嵌入式开发工具 • 提供了很好的实时支持 • 支持广泛的嵌入式处理器 • 提供嵌入式设计的开放源码方案包 • Montavista Linux最新版本 • Montavista Linux 6 • 被网络芯片厂商Cavium收购 21 注:图来自http://www.mvista.com/product_detail_mvl6.php

  22. 嵌入式Linux-uCLinux • uCLinux概述 • Lineo公司的产品 • 针对微控制领域而设计的Linux系统 • 该领域的嵌入式处理器往往没有MMU • uCLinux的技术特点 • 对Linux的重新配置和裁剪 • 重写了应用程序库,进行了精简工作 • 采用romfs文件系统 • 通过内存或者Flash启动 • 对用户程序采用静态连接的形式 22

  23. 嵌入式Linux-Qtopia • Trolltech 公司为采用嵌入式Linux操作系统的消费电子设备而开发的综合应用平台 • 三个版本 • Qtopia 手机版 • Qtopia PDA 版 • Qtopia 消费电子产品平台 • 被诺基亚收购 • 诺基亚出Symbian,一度市场份额超过60% • 收购Symbian所有股份,开源 • 与intel合作Meego

  24. 嵌入式Linux-Android • Android • Google+开放手机联盟 • 2007年11月5日发布 • “Android 是第一个完整、开放、免费的手机平台” • 2008年9月22日,第一款基于Android的手机发布 • T-Mobile G1 • 基于Android的手机GPhone • Android的特点 • 包括了操作系统、中间件、用户界面和应用软件 • 这是一个平台 • 面向智能手机 24

  25. 嵌入式Linux-Android(2) • Android的优势 • 开放开源 • 提供一整套的解决方案 • 免费!!! • Android的冲击 • Symbian • Windows Mobile • IPhone 25

  26. 嵌入式Linux-Moblin • Intel为MID设计 • 启动于2007年7月,作为Moblin项目组 • 目的是推动MID等类设备中Linux的应用和新技术的发展 • 建立了Moblin 社区 • 目前的版本是Moblin 2.0 • Moblin的特点 • 优化移动用户操作界面 • 高速的联网性能 • 占用资源小 26

  27. 嵌入式Linux-Moblin(2) • Moblin 2.0 • 针对电源管理部分做了优化 • 更多的是面向Intel自己的嵌入式处理器 • Atom • 可以通过软硬件结合来进行设计 • 比较完整的全套开发工具 • Moblin更多的是为带数据互联功能的移动设备设计 27

  28. 嵌入式Linux-Maemo • 基于 Linux Debian 的系统平台 • 诺基亚公司 • 诺基亚N770、N800、N810和N900 • 面对智能手机及Internet Tablet • Internet Tablet:介于 个人数位助理(PDA) 跟 UMPC 之间,略小于英特尔公司的移动互联网设备(MID)。 http://maemo.org

  29. 嵌入式Linux-OpenMoko • 提供开源Linux软件栈与硬件 • 硬件系统也是完全开放的 • 允许开发者对软件和硬件任意定制 • 三部分 • 基本的OpenMoko软件环境建立在GNOME移动和嵌入技术基础上,包括GTK+工具包 • FreeRunner部分,这是一个完全开放的部分,可以让开发者任意选择第三方平台,比如Linux桌面环境,或者支持Nokia互联网平板设备的图形Shell等。 • 包括FreeSmartphone.org的APIs,快速提供复杂应用。 • 产品 • 第一款OpenMoko硬件是Neo1973 • 第二款OpenMoko硬件是Neo FreeRunner http://wiki.openmoko.org/wiki/Main_Page

  30. 嵌入式Linux-WebOS • Palm公司 • 放弃了PalmOS,改推以Linux为基础的WebOS • 由于Palm被HP收购,webOS现收归HP旗下 • HP已发布多款手机及一款平板电脑 • webOS将在线社交网络和Web 2.0一体化作为重点 • 最新版本 • 2.0 Beta / 2010年8月31日 • 类似于chrome浏览器“沙盒”架构 • 卡片方式

  31. iPodLinux • 内核为Modified µCLinux • 运行在iPod上 • 功能 • 文字编辑、视频播放(在iPod nano 2上)、模拟器游戏、编程等功能 • 与iPod原OS形成双系统

  32. 嵌入式Linux-LiMo • LiMo 基金会 • 2007 年 1 月创立 • 会员数超过 50 • Linux Phone Standards (LiPS) 论坛 • GPEPhone(GPE Palmtop Environment ) • http://gpe.Linuxtogo.org • 08年并入 LiMo • 组成 • 用Wind River提供的Linux版本、系统架构平台和集成工具集来开发各自的终端设备 • 支持LIMO系统手机 • 三星I8320 H1、三星I8330 H2、三星I6410 M1、三星I8350 http://www.limofoundation.org/

  33. bada • 韩国三星 • 人人能用的低智能手机的时代(Smartphone for Everyone) • 特点 • 配置不灵活、用户交互性差、面向服务弱 • 非常不重视SNS集成和基于位置服务应用 • 版本 • 1.2.1 (SDK) / 2010年12月29日

  34. 课程大纲 嵌入式Linux简介 典型的嵌入式Linux ARM-Linux操作系统 ARM-Linux操作系统的内存管理 ARM-Linux操作系统的文件系统 嵌入式Linux的前景 34

  35. 与桌面Linux共享的知识点 • 主流嵌入式Linux与桌面Linux完全一样的内容 • Shell命令使用 • Makefile • 操作系统移植 • 设备驱动 • GDB • 内核调试 • 进程管理 • 系统调用 • 启动流程 • 具备以上技能,属于Linux开发人员 • 请自行学习操作系统课程,以及自学本课程实验课件 35

  36. 嵌入式Linux知识点 • 有别于桌面Linux,嵌入式Linux的特色 • Bootloader:参见本课程bootloader课件 • 编译调试:交叉编译,参见本课程开发环境课件 • 实时调度:一些嵌入式Linux未进行实时改造,参见本课程实时课件 • 内存管理:强实时要求,处理器有MMU硬件 • 中断响应和处理:强实时要求 • 文件系统:Flash作为存储介质,参见本课程嵌入式文件系统课件 • 快速启动:… • 具备以上能力,才是嵌入式Linux的开发人员 36

  37. 课程大纲 嵌入式Linux简介 典型的嵌入式Linux ARM-Linux操作系统 ARM-Linux操作系统的内存管理 ARM-Linux操作系统的文件系统 嵌入式Linux的前景 37

  38. ARM-Linux内存管理 • 存储管理是一个很大的范畴 • 存储管理机制的实现和具体的CPU以及MMU的结构关系非常紧密 • 操作系统内核的复杂性相当程度上来自内存管理,对整个系统的结构有着根本性的深远影响 38

  39. 内存管理和MMU • MMU-“内存管理单元”,其主要作用是两个方面: • 地址映射 • 对地址访问的保护和限制 • MMU可以内置在芯片中,也可以作为协处理器 • ARM中的协处理器CP15(系统控制协处理器) 39

  40. ARM存储管理机制 • ARM系统结构中,内存地址映射支持两种: • 单层的按“段(section)”映射,段大小为1M • 二层的按“页面(page)”映射 • Tiny pages:1K • Small pages:4K • Large pages:64K 40

  41. ARM存储管理机制 • 按“段”进行地址映射方式 41

  42. ARM存储管理机制 • 采用页面映射,“段映射表”就成了“首层页面映射表”,映射的过程如下(以页面大小=4KB为例) 42

  43. ARM存储管理机制 • 凡是支持虚存的CPU必须为有关的映射表提供高速缓存,使地址映射的过程在不访问内存的前提下完成,用于这个目的高速缓存称为地址转换表(TLB) • 高速缓存 • ARM系统结构中配备了两个地址映射TLB和两个高速缓存 43

  44. ARM存储管理机制 • ARM处理器中,MMU是作为协处理器CP15的一部分实现的 • MMU相关的最主要的寄存器有三个: • 控制寄存器,控制MMU的开关、高速缓存的开关、写缓冲区的开关等(CP15:C1) • 地址转换表基地址寄存器(CP15:C2) • 域访问控制寄存器(CP15:C3) 44

  45. ARM-Linux存储机制的建立 • ARM-Linux内核将4GB虚拟地址空间分为两个部分 • 高端的1G为系统空间 • 低端的3G为用户空间 • ARM将I/O也放在内存地址空间中 • 系统空间的一部分虚拟地址不是映射到物理内存,而是映射到一些I/O设备地址 45

  46. ARM-Linux进程的虚存空间 • Linux虚拟内存的实现需要6种机制的支持: • 地址映射机制 • 内存分配回收机制 • 缓存和刷新机制 • 请求页机制 • 交换机制 • 内存共享机制 46

  47. ARM-Linux进程的虚存空间 • 系统中的每个进程都各有自己的首层映射表 • 这就是它的空间 • 没有独立的空间的就只是线程而不是进程 • Linux内核需要管理所有的虚拟内存地址 • 每个进程虚拟内存中的内容在其task_struct结构中指向的 vm_area_struct结构中描叙 47

  48. ARM-Linux进程的虚存空间 • task_struct结构分析图 48

  49. ARM-Linux进程的虚存空间 • 由于那些虚拟内存区域来源各不相同,Linux使用vm_area_struct中指向一组虚拟内存处理过程的指针来抽象此接口 • 为进程创建新的虚拟内存区域或处理页面不在物理内存中的情况下,Linux内核重复使用进程的vm_area_struct数据结构集合 • 当进程请求分配虚拟内存时,Linux并不直接分配物理内存 49

  50. 静态分配与动态分配 • 很多RTOS不支持动态分配内存 • 担心碎片 50

More Related