首页 > 窍门 > 科技数码

如何快速了解Android系统内核

来源: 更新时间:2022-04-17 15:28:12
The Beginning

  分析Android平台系统架构,通过对最新Android源代码的解析,将其与标准Linux内核源码比较,详细解析Android内核的功能更新,讨论Android 内核与标准Linux内核之间的不同以及Android在移动平台的优势,并对Android在各种内核之间做出一个定位,介绍了Ubuntu环境下Android内核的获取与编译。
  
  1、概述
  

  随着嵌入式技术的飞速发展,移动智能平台的运行速度和所集成的功能获得了极大提升。藉此,由Google主导的开放手机联盟OHA顺势在2008年推出了Android移动终端平台。Android是一个开放、自由的移动终端平台[1],它的发布,打破了诺基亚 Symbian操作系统操作系统在传统智能手机平台上的垄断地位,同 时,其平台化的优势也大大丰富各种手持式设备软件的功能。

  2、Android 系统架构
  
  Android是 Google开发的基于Linux平台的开源手机操作系统,它是一 个移动终端平台,包括了移动电话工作所需的全部软件,由操作系统、中间件、 UI 及应用程序组成。
  
  Android系统架构自底向上由以下4个层次组成[2]:基于Linux的内核模 块、运行时库与其他库、应用程序框架、应用程序。
  
  第一层:Linux 操作系统和Android系统扩展,由C语言实现。
  
  第二层:系统库层与Android运行时环境,由C/C++实现。
  
  第三层:Android应用程序框架隐藏在每个应用后面的是一系列服务和统。
  
  第四层:Android应用程序
  
  Android 应用程序层由运行在Android设备上的所有应用共同构成,它不仅 包括通话、短信、联系人等系统应用,还包括其他后续安装到设备中的第三方应用。3、Android 内核分析
  
  2.1 内核在操作系统中的地位
  

  Android基于Linux操作系统,由硬件、系统内核、系统服务和应用程序等 四大部分组成。其中,内核是最核心的部分,其主要作用在于与计算机硬件进 行交互,实现对硬件的编程控制和接口操作,调度访问硬件资源,同时向应用 程序提供一个高级的执行环境和对硬件的虚拟接口。主要功能包括:中断服务 程序、进程调度程序、进程地址空间的内存管理、进程间通信。
  
  2.2 Android内核
  

  为了对比分析Android内核,在Ubuntu操作系统上搭建了Android内核 的编译开发平台,通过repo,下载最新的Android内核代码版本Jelly Bean。
  
  经过与标准Linux内核源代码进行详细对比,可以发现,Android内核与标 准Linux内核在文件系统、进程间通信机制、内存管理等方面存在不同。
  
  (1)文件系统
  
  Android内核中增加了标准Linux内核中没有采纳的YAFFS2文件系统。
  
  (2)进程间通信机制
  

  Binder是一种进程间通信机制,其实是提供远程过程调用(RPC)功能。在
  
  Android系统的Binder机制中,由一系统组件组成,分别是 Client、Server、Service Manager和Binder驱动程序,其中 Client、Server 和 Service Manager 运行在用户空间,Binder驱动程序运行内核空间。
  
  (3)内存管理
  
  在内存管理模块,Android内核采用了一种不用于标准 Linux内核的低内
  
  存管理策略。Android系统采用的则是一种叫作LMK(Low Memory Killer)的 机制,这种机制将进程按照重要性进行分级、分组。内存不足时,将处于最低级别组的进程关闭。
  
  4、Android 内核获取与编译
  
  下面以Ubuntu 13.04操作系统为例,讲解在 Ubuntu 13.04系统下如何搭建
  
  Android内核编译开发平台。在Ubuntu上搭建Android内核编译环境,具体步 骤如下:
  
  (1)准备系统环境, 需要的软件包列表 flex, bison,gperf, libsdl-dev, libesd0-
  
  dev,libwxgtk2.6-dev(optional), build-essential, zip,curl;(2)安装JDK的 1.7 版本;(3)安装 repo;(4)在主文件目录建立一个bin文件夹并加入到环境变量当中;(5)下载repo脚本,将它的属性改为可执行curl http://android.git.kernel.org/repo> ~/bin/repo chmod a+x~/bin/repo;(6)创建一个保存源码的目录 mkdir coredroid cd coredroid(7)获取Android内核代码:git clone git://android.git.kernel.org/kernel/co mmon.git
  
  经过以上步骤,最新版本Android内核就被下载到文件夹 coredroid当中。make 编译完成后生成 zImage文件, 可用模拟器测试运行cd mydroid/out/cupcake/out/target/product/genericemulator -image system.img -data userdata.img -ramdisk ramdisk.img -kernel~/coredroid/common /arch/arm/boot/zIma ge
  
  5、结语
  
  Android 内核由标准Linux内核优化得来,其继承了Linux 内核的各种优点,保留了标准Linux内核的主体架构。同时,Android 按照移动平台的需求,在文件系统、内存管理、进程间通信机制、电源管理等方面进行了修改,添加相关的驱动程序及必要的新功能,但是与大多数精简的嵌入式 Linux操作系统相比,Android很大程度上保留了标准Linux的基本架构,因此,Android系统应用范 围更加广泛,拓展性更强。

THE END

TAG:系统  文件系统  内核  架构  

猜你喜欢

相关文章