310 likes | 487 Views
Linux 操作系统 在嵌入式系统中的应用. Linux 操作系统简介. 一个操作系统的名称 Linux 的发音 wikipedia上可以听到录音 有人使用过么? 有人听说过么? 和Microsoft的Windows竞争. Linux 的历史:前缘. Andrew Tanenbaum Vrije University, 阿姆斯特丹 著《Operating Systems: Design and Implementation》 该书有一个操作系统的实例:MINIX. Linux 历史:开创. Linus Benedict Torvalds
E N D
Linux操作系统简介 • 一个操作系统的名称 • Linux 的发音 • wikipedia上可以听到录音 • 有人使用过么? • 有人听说过么? • 和Microsoft的Windows竞争
Linux的历史:前缘 • Andrew Tanenbaum • Vrije University, 阿姆斯特丹 • 著《Operating Systems: Design and Implementation》 • 该书有一个操作系统的实例:MINIX
Linux历史:开创 • Linus Benedict Torvalds • University of Helsinki • 1988进入大学 • 完成MINIX作业 • 1991开发出Linux • 在386上运行 • 采用GPL许可证 • 曾经在美国研发CPU
GPL许可证 • 开源! • 免费? • 传播! • 修改!
使用Linux意味着…… • Linux其实只是内核(kernel.org) • 通常所谓使用Linux,其实是基于Linux的一系列软件的集合 • 系统软件 • 应用软件:Office套件、播放器、浏览器…… • 使用RedHat、Ubuntu…… • 学习Linux需要注意:Linux有其设计哲学,Linux是Unix的复制品,而不是Windows的复制,不要和Windows类比
Linux 及其应用程序 • Windows包括什么? • 操作系统 • 驱动程序、文件系统 • 文件浏览器 • 浏览器、播放器…… • Linux包括什么 • 操作系统内核kernel • 驱动程序、文件系统 • Linux 并不提供应用程序(为什么Linux应用程序难于安装?)
开源的文化 • 发扬软件界合作互助的团结精神(GPL鼓励的精神) • 尽量重用代码,没有充分理由不可另立门户 • 如果需要新的功能,可以扩充(并开放) • 因此,开源应用软件往往使用若干开源的库。这被称为库依赖
软件包依赖(库依赖) • http://packages.debian.org/lenny/wget
软件包依赖的依赖…… • http://packages.debian.org/lenny/libc6
商业软件也存在库依赖 • 往往也是采用商业库 • 商业软件的安装包非常大,因为要包含其他库 • 某些库可能被多个软件包含,所以某个库可能在一台PC上安装多次
Linux应用程序难于安装的原因 • 因为开源文化(或称为开源精神),造成 • 软件以源代码形式发布 • 用户需自行下载,自行编译,自行安装 • 因为库依赖,所以需要下载、编译依赖的库;如此循环 • 考虑一个场景,没有操作系统安装光盘,只有一堆源码,如何在PC上安装一个操作系统,以及一系列应用程序 • 必须解决!
解决Linux应用难以安装 • 发行版 • Debian是最早的发行版 • 发行版做的事情:在某种确定的硬件环境下 • 提供编译好的可执行程序 • 提供安装光盘(或网络下载) • 现在Linux应用已经较Windows容易安装
一个小提示 • 如果有两条路可以选择,一条是正确的,一条是错误的,人们一般肯定是先走错的,因为错的路都比较容易走,往往是碰得头破血流之后,才回过头来走正确的路。(美国谚语) • 如果有可能,从头编译Linux,手动安装操作系统和应用程序,对计算机的理解将会更进一步
常用的发行版 • RedHat • CentOS、Fedora Core • Debian • Ubuntu • SuSE • openSuSE • gentoo • ……
发行版的文化 • 大多只包含开源软件和自由软件 • 安装盘、live CD • 有选择的采纳大量应用软件 • 桌面环境、网络应用、office套件 • 服务器应用软件 • 支持软件的维护、更新 • 倾向于新软件还是稳定的软件 • 软件大多由社区开发,要考虑测试问题
Linux 优势 • 免费? • 开放 • 免费! • 平台效应 • 足够多的人、吸引更多的人 • 实现个体的思想 • 安全:开放文化的体现 • 高可移植性
Linux优势:可移植性 • Linux设计之初支持386 • 之后被社区移植到多种处理器平台 • 移植过程确保API的一致性 • 意味着:运行在嵌入式ARM处理器的操作系统和运行在PC的操作系统,具有同样的接口 • 接口一致,上层软件具备很好的可移植性 • 这一思想被Linux之上的许多应用程序采纳
嵌入式系统的定义 • 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 • 它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
什么是嵌入式系统! • 嵌入式是通用计算机的“反义词” • 新购机器没有任何功能 • 需要什么功能就安装什么软件 • 不用安装软件的计算机 • 功能确定 • 出厂时软件已经固化 • 智能手机(界定模糊) • 更像是通用计算机 • 单片机(界定模糊) • 嵌入式开发与单片机开发,通常以是否包含操作系统为界限
嵌入式系统的发展 • 无操作系统阶段 • 简单操作系统阶段 • 实时操作系统阶段 • 面向Internet阶段
嵌入式系统的组成 • 硬件平台 • 嵌入式处理器 • 嵌入式外围设备 • 嵌入式操作系统 • 嵌入式应用软件 • 所需知识较全面,因此入门门槛高
中国嵌入式系统研发现状 • 电子产品世界 • 中国嵌入式开发从业人员调查报告 • 以下引用自2010~2011数据
操作系统 2009~2010 25%低端处理器(ARM7/M3) 但是只对应7%的低端操作系统,说明许多企业未用操作系统 2010~2011
高可移植性 • Linux本身可以在多种平台上运行,且API一致 • gcc跨平台,所以C语言的可移植性很好 • 许多用户在PC上开发应用程序,然后移植到嵌入式环境执行 • 大量应用程序,能够直接移植
完整的社区 • 用户量大 • 社区活跃用户多 • 能够得到很好的技术支持