把伟大书写成平凡,才会让梦想照进现实!

Android系统为什么基于Linux内核?

Android系统在当今看来,其优势是压倒性的。随着它所占领的市场不断扩大,Android逐渐超越其原来的竞争对手。根据最新的市场报告,Android正准备摘下Apple在平板电脑领域的那顶王冠。然而,也许很多的用户还并不知道,Android本质上是一个基于Linux内核的为移动便携设备设计的操作系统。即,Android在其软件运行的堆栈底层集成使用Linux内核。而你若想知道,为什么Android开发团队选择了Linux内核?那就请继续往下阅读吧……

Android是开源的(开放源代码)。因此,任何硬件设备制造商都可以获得它、然后可以自定义改造,并根据自己厂商设备的特点来适应android系统。这就是为什么我们所使用的Android系统设备上能拥有各式各样的硬件功能的原因。有摄像头?陀螺仪?各种各样的感应器?也许没有……无论高端还是低端的设备,无论是一款具有完备功能的平板还是一个最简单的娱乐设备(例如Kindle),Android都可以完美地在其设备上运行。开源所带来的,不仅仅是厂商可以对操作系统进行定制和修改,添加个性化的桌面、应用程序或服务等等;同时也带给消费者选择的自由,我们不必再依赖于单一的某个品牌,而可以有无数种品牌的产品选择,举个例子,我们想用ios系统时,我们不得不购买苹果的产品(因为ios并非开源),然而如果我们用Android,我们既可以选择SAMSUNM也可以选择HTC等等,就是因为Android是开源的。选择的多样性带来的好处就是,消费者不再需要高达500美元,也许仅需不到100美元,也可以买到一个体面的Android平板电脑。

向您介绍了很多时下流行的Android设备,让我告诉你,Android的一切都是建立在Linux内核基础之上的!什么是内核?内核就是设备硬件与整个软件体系进行沟通交互的第一层。内核也是软件体系的一部分,是最基础的那部分,它直接操控硬件,而在它基础之上的一切软件都是通过它来使用硬件设备以展现出相应的功能。专业一点讲,内核为进程调度、资源处理、内存管理、网络与隔离等等提供了基本的构建模型。Android基于Linux内核,Google也专为Android一直保持着自己分支版本的Linux内核。下面一张表描述了Android各个版本所使用的Linux内核版本。

Android版本 使用Linux内核版本
1.5(Cupcake) 基于Linux Kernel 2.6.27
1.6(Donut) 基于Linux Kernel 2.6.29
2.0/2.0.1/2.1(Eclair) 基于Linux Kernel 2.6.29
2.2/2.2.1(Froyo) 基于Linux Kernel 2.6.32
2.3(Gingerbread) 基于Linux Kernel 2.6.35
3.0.1/3.1/3.2(Honeycomb) 基于Linux Kernel 2.6.36
4.0(Ice Cream Sandwich) 基于Linux Kernel 3.0.1
4.1/4.2(Jelly Bean) 基于Linux Kernel 3.0.31

选择Linux内核有许多原因。Linux内核拥有许多长期以来被证明是十分有用的核心特性,它们都被集成在Android系统里面。Linux内核的这些特性是:

一,可移植性:首先让我们来了解一件事情,就是『世界上都有哪些硬件在运行着Linux?』我们可以举一些例子:位于日内瓦的欧洲大型强子对撞机(Large Hadron Collider)靠的是Linux系统来实现管理和操作,世界上性能排名前500的超级计算机中有400多台运行着的是Linux系统,笔者网站的服务器运行的是Linux系统,笔者正在写文章用的惠普笔记本电脑运行的是Linux,CASIO出的一款学生用的计算器运行的是一个精简的Linux系统,海尔出的一款微波炉使用的是一个嵌入式Linux系统芯片……从庞然大物到我们身边垂手可及的常用设备,许许多多都在使用Linux系统。这些就是Linux的“可移植性”所带来的:Linux是一种十分灵活而广阔的平台,人们可以在任何硬件设备上编译使用Linux内核。

回到Android上来,那么你认为对于Android来说最主要关注的是什么?最主要的那就是,对于打算使用Android的设备制造商们,他们可以在自己生产的设备上添加和使用上自家的各种各样的硬件模块。而Linux让这一切成为可能,Linux给Android带来了一种硬件层面的抽象化,内核中大部分特别是最基础层的功能由C语言写成,并且制造商们可以容易地访问和修改这部分代码。这意味着制造商可以拿起Android并根据自家产品的硬件模块来修改它、适应它,根据他们的硬件要求来改善硬件,以便适应软件!

二,Linux内核特性:Linux给Android带来了一些有用的特性,Linux内核正包含了这些特性:

1,内存管理:移动设备的内存处理成为一个开发热点。感谢Linux内核,正是由于它的帮助,Android才得以建立而不必去关心和在意这方面的问题。Linux内核为Android负责了线程处理、低级内存管理、高速缓存等这方面的事务,同时也负责了内存的分配和解除文件系统使用、进程、应用程序等方面的操作。

2,进程管理:Linux内核负责启动、停止和执行程序。所谓一个进程,可以认为是一个计算机程序的一个实例。即每当一个程序要运行,内核就会为这个程序创建一个实例或者说是就是一个进程,且去执行它。在Android中,正是Linux内核负责来分配和回收各个进程所需的系统资源。

3,驱动模块:所有不同的设备需要特定的驱动程序运行,就是在这一层。在这里,Linux内核确保每个应用都能在Android设备上跑起来。制造商可以在一个熟悉的环境中,开发出自己的驱动程序并添加到Linux内核。这样一来,制造商就拥有很大的空间和自由来优化Android中的系统内核。而这,是诸多制造商选择Android的重要原因。

4,文件系统管理:Linux内核负责管理文件系统,从而控制Android设备的数据存储服务。

5,网络协议栈:Linux内核负责与网络进行通信。它也可以控制网络堆栈,驱动程序,路由设备和网络适配器。

6,用户帐户安全:Linux内核处理应用程序和系统之间的安全性。Linux内核控制用户的身份验证和管理。此外,Linux内核还负责电源管理和进行互联网搜索,语音通信,系统日志等等各种服务。

三,安全性:通过前面介绍我们了解到Linux可在科研实验室、超级计算机当中运行一些关键任务。而Android完全依赖于Linux内核与生俱来的安全性。所有的android应用程序运行的进程,在Linux内核当中都有相应的不同的权限。

最重要的是,Linux内核是免费且开放源代码的!而我还想告诉你的是,不仅仅Android,当前十分流行的Palm智能手机运行的WebOS系统同样也是建立于Linux内核上!


本文系旸仔翻译自《Why is Android built on Linux Kernel?》一文,水平有限多有翻译不当之处,推荐阅读其英文原文

相关文章 (Related Articles):

发表留言 (Respond):

发表留言 (Respond):

* 您的留言可能需要通过审核后才会发表。