发布网友 发布时间:2022-04-23 06:40
共2个回答
热心网友 时间:2022-06-16 19:12
甲骨文软件人才创新发展中心期待您的到来!
和标准的Linux内核一样,Android内核主要实现内存管理、进程调度、进程间通信等功能。Android内核是在标准Linux内核的基础上修改而成。为了适应嵌入式硬件环境和移动应用程序的开发,Android对标准Linux内核进行了一定的修改。经过与标准Linux内核源代码进行详细对比,可以发现,Android内核与标准Linux内核在文件系统、进程间通信机制、内存管理等方面存在不同。
文件系统:不同于桌面系统与服务器,移动设备大多采用的不是硬盘而是采用Flash作为存储介质,因此,Android内核中增加了标准Linux内核中没有采纳的YAFFS2文件系统。YAFFS2按层次结构设计,分为文件管理接口、内部实现层和NAND,简化了其本身与系统的接口设计,能更方便地集成到系统当中。
进程间通信机制:Android增加了一种进程间的通信机制IPCBinder,Binder通过守护进程ServiceManager管理系统中的服务,负责进程间的数据交换。各进程通过Binder访问同一块共享内存,以达到数据通信的机制。从应用层的角度看,进程通过访问数据守护进程获取用于数据交换的程序框架接口,调用并通过接口共享数据,而其他进程要访问数据,也只需与程序框架接口进行交互,方便了程序员开发需要交互数据的应用程序。
内存管理:在内存管理模块,Android内核采用了一种不用于标准Linux内核的低内存管理策略。在标准Linux内核当中,使用一种叫做OOM(OutofMemory)的低内存管理策略;当内存不足时,系统检查所有的进程,并对进程进行*评分,获得最高分的进程将被关闭。Android新增加了一种内存共享的处理方式Ashmem。通过Ashmem,进程间可以匿名自由共享具名的内存块,这种共享方式在标准Linux当中不被支持。
经过分析,Android内核由标准Linux内核修改而来,因此继承了Linux内核的各种优点,保留了标准Linux内核的主体架构。同时,Android按照移动设备的需求,在文件系统、内存管理、进程间通信机制、电源管理等方面进行了修改,添加相关的驱动程序和一些必要的新功能,但是与大多数精简的嵌入式Linux操作系统相比,Android很大程度上保留了标准Linux的基本架构,因此,Android系统应用范围更加广泛,拓展性更强。
热心网友 时间:2022-06-16 19:12
通过和标准的Linux 2.6.25 Kernel的对比,我们可以发现,其主要增加了以下的内容:
基于ARM架构增加Gold-Fish平台,相应增加的目录如下:
kernel/arch/arm/mach-goldfish kernel/include/asm-arm/arch-goldfish 。
Gold-Fish平台采用的是ARM926T CPU作为BaseBand处理器, 该CPU主频至少为200M HZ. 采用MSM7201A CPU(ARM 11)作为主CPU, 其主频为528M HZ.
增加了yaffs2 FLASH文件系统,相应增加的目录为:
kernel/fs/yaffs2 实际上,Android包经过编译后生成的system.img和ramdisk.img文件就是yaffs2格式的包.
增加了Android的相关Driver,相应目录为:
Kernel/drivers/android
Android内核主要分为:
Android IPC系统: Binder
Android 日志系统: Logger
Android 电源管理: Power
Android 闹钟管理: Alarm
Android 内存控制台: Ram_console
Android 时钟控制的GPIO: Timed_gpio
增加了switch处理, 相应的目录为:
kernel/drivers/switch/
增加了一种新的共享内存处理方式, 相应增加的文件为:
kernel/mm/ashmem.c
其他的Android内核为Linux-2.6.25内核所做的补丁等等,例如BlueTooth, 在此不做详细分析
GoldFish平台相关的驱动文件如下:
字符输出设备:
kernel/drivers/char/goldfish_tty.c
图象显示设备: (Frame Buffer)
kernel/drivers/video/goldfishfb.c
键盘输入设备:
kernel/drivers/input/keyboard/goldfish_events.c
RTC设备: (Real Time Clock)
kernel/drivers/rtc/rtc-goldfish.c
USB Device设备:
kernel/drivers/usb/gadget/android_adb.c
SD卡设备:
kernel/drivers/mmc/host/goldfish.c
FLASH设备:
kernel/drivers/mtd/devices/goldfish_nand.c kernel/drivers/mtd/devices/goldfish_nand_reg.h
LED设备:
kernel/drivers/leds/ledtrig-sleep.c
电源设备:
kernel/drivers/power/goldfish_battery.c
音频设备:
kernel/arch/arm/mach-goldfish/audio.c
电源管理:
kernel/arch/arm/mach-goldfish/pm.c
时钟管理:
kernel/arch/arm/mach-goldfish/timer.c