操作系统 读书报告 小论文 计算机
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简述Android操作系统并对当前主流手机OS比较分析
摘要
介绍Android移动平台系统架构,通过对Android源代码的分析,将其与标准Linux内核(2.6.27)源代码相比较,详细解析Android内核的功能更新,分析讨论加Android内核与标准Linux内核之间的不同以及Android在移动平台上的优势.并对Android在各种内核之间做出一个定位。
介绍了主要智能手机操作系统现状并进一步分析了其发展现状。最后,在此基础上展望了主要智能手机的发展前景,未来随着智能手机发展、应用日益丰富以及各方产业力量的博弈等,全球智能手机操作系统将呈现出被若干主要产品瓜分的新格局。
关键词操作系统Android 内核IOS Symbian Linux
0 引言
随着嵌入式技术的发展.智能手机的运行速度和所集成的功能获得了极大提升。借着这股东风,Google主导的开放手机联盟OHA(0pen Handset Alliance)顺势在2008年推出了Android移动终端平台。Android是一个开放、自由的终端平台,它的发布,打破了诺基亚Symbian操作系统和微软Windows Mobile操作系统在智能手机平台上的垄断地位.同时,其平台化的优势也大大丰富各种手持式设备软件的功能。
1Android操作系统简述
1.1Android系统架构
Android是Google开发的基于Linux平台的开源手机操作系统,它是一个移动终端平台,包括了移动电话工作所需的全部软件,由操作系统、中间件、UI(User Interface)及应用程序组成。开发人员使用Java语言,开发运行于Dalvik虚拟机上的应用程序,其运行效率比一般嵌入式Linux操作系统上的J2ME程序高。
Android系统架构自底向上由以下4个层次组成:基于Linux的内核模块、运行时库与其他库、应用程序框架、应用程序。
(1)基于Linux的内核模块
Android内核基于Linux 2.6,提供安全、内存管理、进程管理、网络组、驱动模型等核心服务。同所有Linux内核一样.Android内核是介于硬件层和软件组之间的一个抽象层次。
(2)运行时库与各种程序库
运行时库实质是一款Java重新设计的虚拟机Dalvik.它包含J2SE所提供的绝大部分功能。每个Android应用都运行在自己的进程上.Dalvik虚拟机为它分配自有的实例。Dalvik 使一台设备能运行多个虚拟机程序但消耗较少的资源。在Android中.编译器将Java源文件转为class文件。内置的dx工具又将class文件转化为Dex文件.Dex文件是在Dalvik虚拟
机上运行程序的标准格式。
各种程序库[3]:包含一套C/C++库。Android的各式组件都可使用。这些功能通过组件间接提供给开发者。这些库包括图形框架、媒体功能库、Webkit、及SQLite数据库,等等。
(3)应用程序框架
提供应用程序开发所需要的各种API。在开发过程中.开发人员通过充分使用应用框架提供的API,对各种组件、服务进行重用.从而开发出精简、高效的应用程序。主要包括以下几种核心组件:UI组件、内容提供器(Content Pmvider)、资源管理器(Resource Manager)、消息管理器(Notification Manager)、Activity管理器((Activity Manager)。
(4)应用程序
Android预装了一系列由Java语言编写成的核心应用程序.包括短信服务、电话、Email 客户端、浏览器、Google地图等。
1.2Android内核分析
(1)内核在操作系统中的地位
Android基于Linux操作系统,由硬件、系统内核、系统服务和应用程序等四大部分[4]组成。其中,内核(Kernel)是最核心的部分,其主要作用在于与计算机硬件进行交互.实现对硬件的编程控制和接口操作.调度访问硬件资源,同时向应用程序提供一个高级的执行环境和对硬件的虚拟接口。主要功能包括:中断服务程序、进程调度程序、进程地址空间的内存管理、进程间通信。
内核与普通应用程序不同,其拥有所有硬件设备的访问权限以及启动时即划分的受保护的内存空间。
(2)Android内核
和标准的Linux内核一样.Android内核主要实现内存管理、进程调度、进程间通信等功能。
Android内核是在标准Linux内核的基础上修改而成。为了适应嵌入式硬件环境和移动应用程序的开发,Android对标准Linux内核进行了一定的修改。为了对比分析Android内核.在Ubuntu操作系统上搭建了Android内核的编译开发平台,通过repo,下载最新的Android内核代码版本cupcake(其中Linux内核版本为2.6.27)。从获得的内核源码树的根目录结构看,Android内核源码与标准Linux内核并无不同。Android内核源码树根目录结构如表1所示。
经过与标准Linux内核源代码进行详细对比,可以发现,Android内核与标准Linux内核在文件系统、进程间通信机制、内存管理等方面存在不同。
①文件系统
不同于桌面系统与服务器,移动设备大多采用的不是硬盘而是采用Flash作为存储介质,因此,Android内核中增加了标准Linux内核中没有采纳的YAFFs2文件系统。YAFFS2(Yet Another Flash File Sy-stem,2nd edition)是专用Flash的文件系统.对NAND-F1ash芯片有着良好的支持。YAFFS2是日志结构的文件系统,提供了损耗平衡和掉电保护,可以有效地避免意外断电对文件系统一致性和完整性的影响。YAFFS2按层次结构设计,分为文件管理接口、内部实现层和NAND,简化了其本身与系统的接口设计.能更方便地集成到系统当中。经过测试证明.YAFFS2性能比支持NOR型闪存的JFFS2文件系统优秀[7]。
②程问通信机制
Android增加了一种进程间的通信机制IPC Bin—der,在内核源代码中,驱动程序文件