您现在的位置是: 首页 > 软件应用 软件应用

安卓驱动和linux驱动是一样的吗_安卓驱动和linux驱动是一样的吗

ysladmin 2024-05-07 人已围观

简介安卓驱动和linux驱动是一样的吗_安卓驱动和linux驱动是一样的吗       很高兴有机会和大家一起谈论安卓驱动和linux驱动是一样的吗的话题。这个问题集合包含了一些常见和深入的问题,我将详细回答每一个问题,并分享我的见解和观点。1.lin

安卓驱动和linux驱动是一样的吗_安卓驱动和linux驱动是一样的吗

       很高兴有机会和大家一起谈论安卓驱动和linux驱动是一样的吗的话题。这个问题集合包含了一些常见和深入的问题,我将详细回答每一个问题,并分享我的见解和观点。

1.linux与安卓什么关系啊?求讲解

2.安卓与Linux有什么关系

3.Linux 安卓 windows 三者的关系

4.安卓和linux哪个好

5.关于安卓跟LINUX的关系~

6.android kernel和标准linux kernel的区别

安卓驱动和linux驱动是一样的吗_安卓驱动和linux驱动是一样的吗

linux与安卓什么关系啊?求讲解

       安卓是基于Linux内核,但不是Linux操作系统。

       “Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司的iOS以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。”

       “  Android 是运行于 Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 userspace,使得Linux driver 与 Linux kernel彻底分开。bionic/libc/kernel/ 并非标准的kernel header files。Android 的 kernel header 是利用工具由 Linux kernel header 所产生的,这样做是为了保留常数、数据结构与宏。”

安卓与Linux有什么关系

       Linux驱动和裸机驱动(例如安卓系统)没什么区别,因为都是用的Linux的内核;硬要说区别,那应该是不同芯片之间的个性化的差异,但都是在同一个框架下修修补补,基本上弄懂一个,其他的也就能了解个十之八九了。要说Linux驱动难不难,这要看你是否下定决心想学,了解汇编(基本上不会用,但有的项目非它不可)、精通C语言(达不到要求就努力达到要求,求!!!),掌握C++(做驱动的有时候需要弄中间层,这部分全是C++)、学好数据结构、英语能有多好有多好,实在太low过火那就自求多福吧!!!有以上基础后还需要会看电路图,会用万用表和示波器,这些是你调试过程中的好伙伴。目前学习驱动的书太多了,但是国内的话韦东山老师的《嵌入式linux应用开发完全手册》比较不错,最主要的是他的视频讲得很nice。有前辈带着做项目的话进步会很快,要是既没项目又没人带那就静下心来慢慢学,坚持就是胜利。如果还在学校得话那就多花点时间学一下,多问问老师,恋爱必须要谈,至于游戏什么的消遣一下就OK了。

Linux 安卓 windows 三者的关系

       安卓不是linux

       引用:

       Linux Kernel的维护者Greg Kroah-Hartman宣布,将Android 代码从 Linux kernel 代码库中删除。这意味着,Linux Kernel的开发小组不认可Android的贡献,两者产生了冲突。

       Greg Kroah-Hartman写了一篇详细的文章,解释这个决定。下面就来看看,他是怎么说的,以及Android到底是一个什么样的系统。在这之前,你最好知道Greg Kroah-Hartman是谁。他是目前Linux Kernel的核心开发人员,负责stable软件包的发布。就是说,每一个新版本的Linux Kernel,都是经过他的手流出来的。此外,他还负责硬件驱动的部署。而他的手机就是HTC G1,每天都在使用。所以,他是绝对有资格谈论这个问题的,他的看法代表了Linux社区对Android的看法。  首先,他指出Android和其他的Linux发行版不一样:  “Google has taken the Linux kernel, and nothing else from a “traditional” Linux system.

       Google只用了kernel,别的东西都没用。”  这就是说,与Ubuntu、Debian、Redhat这样的传统Linux发行版相比,只有系统的底层结构是一样的,其他东西在Android里都不一样,尤其是程序员的编程接口是完全不同的。因此,Android应用程序都必须重新写过,现存的Linux程序无法移植上去。所以,从严格意义上说,Android是一种全新的系统,它与Linux的距离,比Mac OS与Linux的距离还要远。 然后,Greg Kroah-Hartman肯定了Android这样做的积极意义:

       “Android also solves the problem that the phone manufacturers had been having for many years: a free version of Java and a unified application layer that programmers can write to that will work on all phone platforms that integrate it.

       它解决了长期令手机制造商头痛不已的问题:业界缺乏一个开源的Java虚拟机,以及统一的应用程序接口。现在,程序员只要写一次程序,就能在各种手机硬件平台之上使用。”  这段话解释了,为什么Android的应用程序,都必须用Java语言开发。因为不这样做的话,没法让程序做到硬件无关。  且慢,这真的是理由吗?传统的Linux系统,也并不依赖特定的硬件啊!只要把源代码根据不同的平台,分别编译一下,同一个程序不也照样可以在不同的硬件架构、不同的Linux发行版中使用吗?  那么,Android只采用kernel、只允许用java编程的真正原因,到底是什么? 台湾的科技网志MMDays一语道破真相:  “Linux kernel的版权是GPL。

       这下问题来了:如果你是硬件厂商,希望你的硬件能在 Linux kernel 下运作,那么就必须要有驱动程序。如果驱动程序的程序代码公开,等于硬件规格也公开的差不多了。许多厂商不愿意这么做,所以就提供编好的驱动程序,但不提供原始码。  Android 的重点就是商业应用,Google采用了一些手法来绕过这问题。他们把驱动程序移到 “userspace”,也就是说,把驱动程序变成在 Linux kernel 上头跑,而不是一起跑的东西,这样就可以避过GPL。然后,在 kernel 这边开个小门,让本来不能直接控制到硬件的 “userspace” 程序也可以碰得到,这样只要把”开个小门”的程序代码公布就行啦。”  看明白了吗?  这段话的意思是说,Google玩了一个花招,在kernel和应用程序之间,自己做了一个中间层,这样就既不违反GPL许可,又能不让外界看到厂商的硬件驱动和应用程序的源码。这样做或许有利于推广Android,吸引厂商和软件开发商的加入,但是也给Linux Kernel带来了麻烦。Greg Kroah-Hartman直截了当说出了自己的不满。  “…any drivers written for Android hardware platforms, can not get merged into the main kernel tree because they have dependencies on code that only lives in Google’s kernel tree, causing it to fail to build in the kernel.org tree.

       所有为Android写的硬件驱动,都不能合并入kernel。因为它们只在Google的代码里有效,在kernel里根本没法用。

       Because of this, Google has now prevented a large chunk of hardware drivers and platform code from ever getting merged into the main kernel tree. Effectively creating a kernel branch that a number of different vendors are now relying on.

       由于这个原因,Google也从不把大量的硬件驱动程序和平台源码向kernel提交。实际上,它创造出了一个kernel的分支,大量的开发者都依赖那个分支。”  这就是Android干的事情:它修改了Kernel,但是又不提供修改的细节,自己搞了一个封闭的系统。说得难听一点,它利用了开源社区,要求开源社区为它做贡献,却又不愿提供回报。  所以,Linux Kernel就把Android踢出去了,真是再正常不过了。完整的文章在这里: /dongfengxiao/blog/item/5722821e3418da12403417e6.html/cmtid/a8b7f61b52f892dbad6e75a0

安卓和linux哪个好

       可以说linux和安卓有点儿关系,

       安卓 和 windows ,linux 和windows一点儿关系没有~

       首先,linux是一个开源的操作系统。

       无偿,免费,而且所有人都能参与开发。他的目的就是让所有人能够平等的使用。

       开源就是开放源代码,linux的内核源代码完全是开放的,任何人以编译,修改。

       但是你要修改,编译制作出来的东西,也要开放源代码。

       而Android是一种基于Linux的自由及开放源代码的操作系统,专门为移动产品设计,所以也要开放源代码。

       但是他们两个其实也是不一样的操作系统,因为安卓只有底层用的是linux,因为如果单独再研究一套移动产品用的底层的驱动很麻烦,所以安卓就用了linux来解决底层驱动问题。不过在应用层,他们就完全不一样了。也就是说他们的软件不能互用。

       至于windows,完全是一个有偿使用,不开放源代码的操作系统。是微软公司的产物,只有微软公司有权利修改开发~

       它生产出来的目的就是赚钱…不得不说,这方面它很成功~

关于安卓跟LINUX的关系~

       相比较起来的话,安卓运行等方面差点。

       但是总的来说这个问题是个伪命题,因为Android基于Linux内核,可以说安卓属于linux的分支!

       而linux准确来说是一个内核系统,是内核代码。世界上有很多基于linux为基础的发行版本——比如红帽子、CentOS、SUSE、ubuntu等等很多!

       但是安卓与Linux之间还是有很大的差别,比如Android在Linux内核的基础上添加了自己所特有的驱动程序。

       但是有人认为可以说Android不是Linux,因为它:

       1、没有本地窗口系统,

       2、没有glibc的支持,

       3、并不包括一整套标准的Linux使用程序,

       4、同时增强了Linux以支持其特有的驱动。

       从内存管理等方面来说,安卓有比较大的缺陷。因为它是基于java语言虚拟机的平台进行运作,就像跟人对话多了个翻译(这点跟苹果不同,苹果是基于BSD内核,与linux运行都差不多的),而且他的碎片化等问题突出(linux没有什么碎片化问题)……

       所以果粉经常对出厂时候运行也非常流畅的安卓阵营说的一句话就是:“不跟你比现在,要比就运行半年再比流畅!”而在这方面安卓基本都比不过的。

       所以,linux好一点。但linux的手机基本没有,也就是搭载ubuntu的MX5有点靠边。

android kernel和标准linux kernel的区别

       Android 和 MOTO V8 的系统完全是两个概念。

       现在各个手机网站的编辑大脑都是严重萎缩的,根本就不能理解 Linux 是什么。

       Linux 仅仅是内核,根本就不是一个完整的操作系统。

       一个完整的操作系统,包括内核,功能库,用户界面三个主要部分。一个应用程序,主要运行的并不是依靠内核来运行,它主要是借助功能库提供程序功能函数支持,用户界面层提供显示和交互的功能函数支持,内核只是一个硬件驱动交互,任务分配,内存管理,IO 处理的最底层的支持。

       也就是说,一个程序能不能运行,主要是看函数库和用户界面的支持情况。

       但很明显的,Android 和 MOTO V8 完全是两种实现方法,根本就不能拿来做比较。

       Android 是基于叫做 Dalvik 的 java 虚拟机而运行的一个上层系统,所有的 Android 程序其实都是 java 程序,直接运行在这个 java 虚拟机里面,Android 的程序根本就不是一个真实的二进制程序。

       MOTO V8 我要没记错,是基于QT 嵌入式开发的一个系统,叫做 EZX Linux 。QT 提供了一个完整的函数库和用户界面支持库。他的程序理论上都是手机上面可以运行的本地二进制程序(记得是 ARMv5 的)。但实际上,MOTO 不允许二进制程序的开发和安装,只能用 java 程序,也就是 j2me 的程序。

       虽然两个都是虚拟机,但这两个虚拟机本质完全不同。

       Dalvik 的虚拟机是针对 Android 手机的基本要求,也就是要有一个触摸屏,4个物理按键,内存和 CPU 性能都要求很高的硬件进行设计的。j2me 是针对的手机就没有这个要求。不同的 j2me 手机和程序,都有不同的功能和性能。

       可以说,Andorid 系统和 MOTO V8 的 EZX ,就算都用 Linux 内核,Linux 内核提供的硬件支持,功能支持等等的东西,在手机这种针对性极强的硬件上,也会出现不同的兼容问题。

       他们两个除了都是基于 Linux 内核这个称呼以外,其余的他们根本就完全不同。

       Linux 从来就没有说过“二进制兼容”,Linux 遵循 POSIX 标准,Linux 之间还有一个 LSB 兼容标准,但这个不是强制标准,而且在手机上根本就没办法执行的。

安卓内核是linux吗安卓内核是linux

       Android kernel和linxu kernel 比较,Android 系统的Kernel 主要增加如下内容“

       1. 基于 ARM 架构增加 Gold-Fish 平台 , 相应增加的目录如下 :

       kernel/arch/arm/mach-goldfish

       kernel/include/asm-arm/arch-goldfish

       Gold-Fish 平台采用的是 ARM926T CPU 作为 BaseBand 处理器 , 该 CPU 主频至少为 200MHZ. 而要流畅运行Android 系统的CPU 主频至少要在400MHZ 以上,也就是说如果你要上Android 系统,最好是选用基于ARM11 及以上平台进行开发。

       2. 增加了 yaffs2 FLASH 文件系统 , 增加的目录为 :kernel/fs/yaffs2

       实际上, Android 包经过编译后生成的 system.img 和 ramdisk.img 文件就 yaffs2 格式的包 .

       3. 增加了 Android 的相关 Driver, 相应目录为 :

       kernel/drivers/android

       主要分为 :

       Android IPC 系统 : Binder

       Android 日志系统 : Logger

       Android 电源管理 : Power

       Android 闹钟管理 : Alarm

       Android 内存控制台 : Ram_console

       Android 时钟控制的 gpio: Timed_gpio

       4. 增加了 switch 处理 , 相应的目录为 :kernel/drivers/switch/

       5. 增加了一种新的共享内存处理方式 , 相应增加的文件为 :kernel/mm/ashmem.c

       6. 其他为 Linux-2.6.25 内核所做的补丁等等,例如 BlueTooth,

       另外 GoldFish 平台相关的驱动文件如下 :

       1. 字符输出设备 :

       kernel/drivers/char/goldfish_tty.c

       2. 图象显示设备 : (Frame Buffer)

       kernel/drivers/video/goldfishfb.c

       3. 键盘输入设备 :

       kernel/drivers/input/keyboard/goldfish_events.c

       4. RTC 设备 : (Real Time Clock)

       kernel/drivers/rtc/rtc-goldfish.c

       5. USB Device 设备 :

       kernel/drivers/usb/gadget/android_adb.c

       6. SD 卡设备 :

       kernel/drivers/mmc/host/goldfish.c

       7. FLASH 设备 :

       kernel/drivers/mtd/devices/goldfish_nand.c

       kernel/drivers/mtd/devices/goldfish_nand_reg.h

       8. LED 设备 :

       kernel/drivers/leds/ledtrig-sleep.c

       9. 电源设备 :

       kernel/drivers/power/goldfish_battery.c

       10. 音频设备 :

       kernel/arch/arm/mach-goldfish/audio.c

       11. 电源管理 :

       kernel/arch/arm/mach-goldfish/pm.c

       12. 时钟管理 :

       kernel/arch/arm/mach-goldfish/timer.c

       安卓手机的内核是什么意思?详细点?

       手机内核也是Linux内核,Android系统是基于Linux研发的,它负责管理系统的进程,内存,设备驱动程序,文件和网络系统,决定着系统的性能和稳定性,内核以独占的方式执行最底层任务,保证系统正常运行,协调多个并发进程,管理进程使用的内存,使它们相互之间不产生冲突,满足进程访问磁盘的请求等等.

       什么是手机内核?

       手机内核也是Linux内核,Android系统是基于Linux研发的,它负责管理系统的进程,内存,设备驱动程序,文件和网络系统,决定着系统的性能和稳定性,内核以独占的方式执行最底层任务,保证系统正常运行,协调多个并发进程,管理进程使用的内存,使它们相互之间不产生冲突,满足进程访问磁盘的请求等等.

       鸿蒙还是安卓内核?

       鸿蒙系统不是安卓内核!

       根据华为的说法,鸿蒙系统是基于Linux内核,是一套完全自主研发的操作系统,跟安卓并没太大的关联。

       安卓基于linux还是unix?

       安卓是基于Linux的自由及开放源代码的操作系统。Linux是一种自由和开放源码的类UNIX操作系统。它能运行主要的Unix工具软件、应用程序和网络协议,支持32位和64位硬件。该操作系统的内核由林纳斯·托瓦兹于1991年10月5日首次发布。

       安卓系统是哪个国家发明的?

       美国。

       安卓系统是由美国google公司和开放手机联盟领导及开发的。安卓系统是一种基于linux内核(但不包含GNU组件)的自由及开放源代码的操作系统。安卓系统有着开放性、丰富的硬件、方便开发等优势。

       但是Android并不是一开始就属于GOOGEL的,也是他们收购了AndyRubin开发的这个软件,从而加工更新得来。得到了ANDROID系统之后的谷歌开始了他们的一系列动作,先是大肆寻找加盟商与手机科技的人才,共同运营,汇集了众多才子的安卓这时候已经基本成型了。

       而后谷歌又以Apach开源代码为授权,发布了安卓自己的源代码,由此大功告成,这时候便开始发布了第一部安卓手机,是在2008年,当时是世界上的第一部智能手机,可以说是智能科技的一个质的飞跃。

       应用组件

       Android开发四大组件分别是:活动(Activity):用于表现功能。服务(Service):后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(ContentProvider):支持在多个应用中存储和读取数据,相当于数据库。

       Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity可以算是开发者遇到的最频繁,也是Android当中最基本的模块之一。在Android的程序当中,Activity一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Activity就相当于一个网页。

       今天关于“安卓驱动和linux驱动是一样的吗”的探讨就到这里了。希望大家能够更深入地了解“安卓驱动和linux驱动是一样的吗”,并从我的答案中找到一些灵感。