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
En el desarrollo de software, las tareas a menudo tienen que ir a la suspensión porque no se cumplen
VMware tutorial de instalación menor sistemas Linux porque el proyecto tiene qu
El método de operación del disco U en Linux y los métodos de operación en el sistema de Windows aú
Configuración de la partición del disco duro: C: Win7 (Formato NTFS — — instalado)
Método de configuración de la conexión de banda ancha PPPoE del sistema Linux
Linux end contiene un proceso de palabra clave (método de proceso de eliminación por lotes)
Implemente fácilmente el filtrado de Internet bajo Linux
Ajuste de Linux (número máximo de conexiones modificadas)
Super simple método de compilación vpn de Centos Solo tres, compile vpn rápidamente
Estrategia de recuperación de arranque de falla de Linux
Vinux experiencia para la acumulación ciega Caozuojitong
Seis sistemas maravillosos de primeros auxilios efectivos dañados en Windows
¿Cómo puede WinXP no jugar juegos en 3D?
Presiona la tecla Shift para romper fácilmente el sistema Vista
Solución de envenenamiento de matriz de discos
Cómo elegir qué tipo de método de "suspensión" para Windows 7
¿Cuál es la diferencia entre la versión móvil Win8.1 y la versión móvil Win10? Un gráfico para hacer
Cómo hacer que la "carpeta de usuario" en Windows 7 se configure en un disco que no sea del sistema
Win10 10550 no puede recibir la versión de escritorio
Creación de avatares de dibujos animados personalizados con MSN Cartoon