EDA365电子论坛网

标题: ARM主板RK3288/RK3399主板中安卓系统与LINUX系统的相同点与不同点 [打印本页]

作者: monsterskyy    时间: 2021-1-19 13:42
标题: ARM主板RK3288/RK3399主板中安卓系统与LINUX系统的相同点与不同点
       安卓,是一个系统,用于移动终端,智能手机、平板之类,如今也可以用于桌面工作站或电视机顶盒、智能电视等。它的内核基于linux内核,但不同于其他linux发行版,有部分源码闭源。        linux,是一个内核,不是完整的一个系统,所有以linux为内核工作的系统统称linux发行版。
) c2 m* g4 r5 C& I4 h3 i, X6 n
* Y; b% \" a7 o6 ^9 k       Android和Linux作为现行主流的操作系统,无论在消费类产品还是在工控领域,都有广泛的应用。都说Android系统是脱胎于Linux系统,那么是不是Android是不是属于Linux的一种。现在就来谈谈Android和Linux系统的异同点。
; S$ R) w2 z1 ^: T, y
, Y  p4 f! O: P- j1 c. g$ s
2 V. v' @, |5 Z: I- t/ j0 W1. 两者的共同点( i0 W; e" a# N( D/ Z' I6 I! l0 p3 I
       Android是基于Linux内核的系统。Android和Linux系统的核心系统服务都依赖于Linux内核,如安全、内核管理、进程管理、网络堆栈、驱动模型等。Linux内核也作为两者的硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层应用开发提供统一的服务。
; M5 b9 i* a) ~- ~, N
0 ?  K/ V* t" ]5 J2 t  V' A( n
  {+ ]  k$ v( k% q; w( b$ k0 _
" A- ?! ~7 y$ ?, y0 i, A. @( H2. 系统框架的差异% h& ?6 h, O% W9 _
       Linux系统与Android表面上为两个不同的操作系统,但是Android本质上还是一个Linux系统,只不过Google对它进行了裁剪和定制。6 O; t* \1 y  [& J5 p1 R) D1 h9 \
另外,相较于Linux系统,android在其Linux内核上面运行了一个叫Dalvik(4.4版本后改为ART)的Java虚拟机(JVM),因而使用JAVA开发的android的应用程序可以通过JAVA虚拟机运行在Android系统上。而Linux的应用程序使用的是C/C++开发的,可以机器码的形式运行在内核系统上。2 |: Z  E0 [) M
" o9 N5 G8 D/ a; \" h$ U1 t; ~  u" @) }

9 y, M2 W) D$ N3. Linux与android底层驱动软件的差异" {2 Z8 Q# v# J0 o+ u% O* {
Android除了Linux内核具备的常用核心驱动外,还增加了自己专有的内核驱动程序,如显示驱动、蓝牙驱动、相机驱动、内存卡驱动、Binder IPC驱动等。4 I9 H4 S! m6 y4 q  C
另外,Android系统为了保护硬件厂商的知识产权,增加了HAL层,可将驱动具体的实现部分抽取发到HAL中去实现,从而规避了硬件驱动开源的风险,所以android的驱动程序是分为两部分,一部分写入内核中,一部分写入HAL层中。
7 L* n' J! m' ]4 N( q3 V0 E4 QAndroid除要实现底层驱动的开发外,还需要根据JNI规则将驱动程序封装为JNI层接口,以达到应用程序(JAVA程序) 可通过JNI来调用内核驱动程序。以显示驱动程序Framebuffer为例。# ~3 p( J) j' i( @- H9 I% B7 R
8 N  C* F' E4 g

2 x3 ?6 O* E9 A. {' `

  I8 @# s: ^2 S) e5 L* R 4 H# V* }4 l# ~! q

! s. p2 |7 Q; K$ V  i5 y
) L( z, O; e* R
. t6 v- O5 j- |  e. g( P, F0 T
% g( W# a# g4 d4 b9 ^4 \

作者: qq666888qqw    时间: 2021-1-19 15:00
我用的手机就是安卓的
作者: 21CASXY    时间: 2021-1-20 09:17
学习




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2