Relación Linux y Android

  
 

Todo el mundo sabe que Android se basa en el sistema operativo Linux kernel
, y una vez que tuvo un desacuerdo con la Linux Foundation debido a problemas con el kernel, este artículo comenzará a analizar el kernel de Android, principalmente introduciendo Android y Linux. La relación entre los dos será seguida por algunas de las características y los controladores que el sistema Android extiende sobre el sistema Linux.

Aunque Android se basa en el kernel de Linux, todavía hay una gran diferencia entre él y Linux. Por ejemplo, Android agrega su propio controlador único al kernel de Linux. Analicemos cual es la relación entre ellos?

Primero, ¿por qué Android elige Linux?

Hay muchos sistemas operativos maduros, pero ¿por qué Android elige usar el kernel de Linux? Esto está relacionado con algunas características de Linux, tales como:

1, esquema de administración de procesos y administración de memoria potente

2, modo de seguridad basado en permisos

3, soporte Biblioteca compartida

4, modelo de controlador certificado

5, Linux en sí mismo es un proyecto de código abierto

Más información sobre las características anteriores puede consultar la documentación oficial del kernel de Linux 2.6 Esto nos facilita entender mejor las funciones exclusivas de Android en el aprendizaje posterior. A continuación, analiza la relación entre Android y Linux.

En segundo lugar, Android no es Linux

Cuando vea este título, puede estar confundido. No siempre he dicho que Android se basa en el kernel de Linux. ¿Cómo es que no es Linux ahora? La confusión también es normal. Por favor, mire primero los siguientes puntos, luego analizaremos cada punto. Después de leer, pensará que Android no es Linux.

Debido a que no tiene un sistema de ventanas local, no hay soporte de glibc, y no incluye un conjunto completo de aplicaciones estándar de Linux, y Linux está mejorado para admitir sus controladores únicos.

1. No tiene un sistema de ventanas local

¿Qué es un sistema de ventanas local? El sistema de ventanas local se refiere al sistema de ventanas X en GNU /Linux, o al Quartz de Mac OX X. El sistema de ventanas de diferentes sistemas operativos puede ser diferente. Android no usa (y no necesita usar) el sistema de ventanas X de Linux. Esta es una razón básica por la que Android no es Linux.

2. No tiene compatibilidad con glibc

Debido a que Android se usó originalmente en algunos dispositivos móviles portátiles, es posible que Android no use glibc como una biblioteca de C por eficiencia y otras razones. En cambio, Google desarrolló un conjunto de Bionic Libc en lugar de glibc.

3. No incluye un conjunto completo de aplicaciones Linux estándar.

Android no copia completamente el núcleo del sistema Liunx. Además de corregir algunos de los errores de Liunx, agrega mucho contenido. Por ejemplo, se basa en la plataforma Gold-Fish agregada por la arquitectura ARM y el sistema de archivos FLASH yaffs2.

4. Controladores específicos de Android

Además de estas diferencias, Android también ha mejorado los controladores de dispositivos de Linux, principalmente como se muestra a continuación.

1) Android Binder Un controlador basado en el marco de OpenBinder para proporcionar la funcionalidad de Comunicación InterProcess (IPC) en la plataforma Android. El código fuente se encuentra en drivers /staging /android /binder.c.

2) Administración de energía de Android (PM) Un controlador ligero de administración de energía de Android basado en un sistema de administración de energía de Linux estándar que está optimizado para dispositivos integrados. El código fuente se encuentra en:
kernel /power /earlysuspend.ckernel /power /consoleearlysuspend.ckernel /power /fbearlysuspend.ckernel /power /wakelock.ckernel /power /userwakelock.c

3) Administrador de memoria baja (memoria baja) Killer) es más flexible que el mecanismo estándar de Linux OOM (Out of Memory), que elimina los procesos necesarios para liberar la memoria necesaria. El código fuente se encuentra en drivers /staging /android /lowmemorykiller.c.

4) La memoria compartida anónima (Ashmem) proporciona una gran memoria compartida entre procesos, al tiempo que proporciona al kernel un mecanismo para reciclar y administrar esta memoria. El código fuente se encuentra en mm /ashmem.c.

5) Android PMEM (físico) PMEM se utiliza para proporcionar un área de memoria física continua al espacio del usuario, DSP y algunos dispositivos solo pueden funcionar en la memoria física continua. El código fuente se encuentra en drivers /misc /pmem.c.

6) Registrador de Android Un dispositivo de registro ligero para rastrear varios registros del sistema Android. El código fuente se encuentra en drivers /staging /android /logger.c.

7) Android Alarm proporciona un temporizador para que el dispositivo salga del modo de suspensión y también proporciona una referencia de reloj que se ejecuta incluso cuando el dispositivo está dormido. El código fuente se encuentra en drivers /rtc /alarm.c.

8) Controlador de dispositivo USB Un controlador de dispositivo basado en el marco estándar del controlador de dispositivo USB de Linux. El controlador USB de Android se basa en el marco del dispositivo. El código fuente se encuentra en drivers /usb /gadget /.

9) Android Ram Console Con el fin de proporcionar capacidades de depuración, Android permite que la información de registro de la depuración se escriba en un dispositivo llamado RAM Console, que es un búfer basado en RAM. El código fuente se encuentra en drivers /staging /android.

10) El dispositivo temporizado Android proporciona control de tiempo para dispositivos, actualmente admite dispositivos vibradores y LED. El código fuente se encuentra en drivers /staging /android /timed_output.c(timed_gpio.c).

11) Sistema de archivos Yaffs2 Android utiliza Yaffs2 como el sistema de archivos flash y MTD. El código fuente se encuentra en el directorio fs /yaffs2 /. Yaffs2 es un sistema de archivos de dispositivo integrado multiplataforma rápido y estable para NAND y NOR Flash. En comparación con otros sistemas de archivos Flash, Yaffs2 puede usar una memoria más pequeña para guardar su estado de ejecución, por lo que ocupa menos memoria. La recolección de basura de Yaffs2 es muy simple y rápida, por lo que puede rendir mejor. El rendimiento de Yaffs2 en NAND Flash de gran capacidad es particularmente excepcional, lo cual es muy adecuado para el almacenamiento de memoria flash de gran capacidad

Copyright © Conocimiento de Windows All Rights Reserved