¿Por qué el procesador basado en la arquitectura ARM de los teléfonos inteligentes Android puede admitir un sistema operativo basado en el kernel de Linux?
Android es un sistema operativo basado en el kernel de Linux.
Al mencionar el kernel de Linux, debe separarse conceptualmente del "sistema operativo Linux". El kernel solo incluye las abstracciones más básicas, modelo de memoria, programación de procesos, manejo de interrupciones, etc. El sistema operativo es un concepto más amplio, que incluye no sólo el kernel, sino también los controladores de dispositivos, los marcos de aplicaciones y algún software clave que puede hacer que este sistema operativo sea utilizable por las personas. Por lo tanto, las distribuciones de escritorio como Ubuntu, Fedora, etc. pueden considerarse como diferentes sistemas operativos de Linux que empaquetan el kernel de Linux.
Al comienzo del desarrollo de Android, el kernel de Linux se bifurcó y se realizaron las siguientes mejoras en base a él:
1. Agregar nuevos controladores de dispositivo
2. Reinstale Wrote c lib (Bionic)
3. Implementó un marco de aplicación basado en Java
4. Modificaciones menores al kernel
La mayoría de las modificaciones. Está en la parte superior del kernel, lo que significa que el kernel de Android está muy cerca de otros kernels de Linux de escritorio (después del kernel de Linux 3.3, el código del kernel de la rama de Android comenzó a fusionarse con el repositorio del kernel de Linux original), y las abstracciones completado por el kernel, como la memoria El modelo, la programación de procesos, etc. son consistentes.
Android no es Linux
Puede que te confundas un poco al ver este título. ¿No dijimos siempre que Android está basado en el kernel de Linux? ¿Ahora? La confusión es normal. Lea primero los siguientes puntos clave y luego analizaremos cada punto clave. Después de leer esto, sentirá que Android no es Linux.
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 Quartz en Mac. OX X, etc. Los sistemas de ventanas de diferentes sistemas operativos pueden ser diferentes. 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 es compatible con glibc
Dado que Android se usó originalmente en algunos dispositivos móviles portátiles, Android no usó glibc como biblioteca C por razones de eficiencia, pero Google desarrolló un conjunto. de Bionic Libc para reemplazar a glibc.
3. No incluye un conjunto completo de aplicaciones estándar de Linux
Android no copia completamente el kernel del sistema Liunx Además de corregir algunos errores de Liunx, también agrega. Varios contenidos menos, como: se basa en la arquitectura ARM, se agrega la plataforma Gold-Fish y el sistema de archivos FLASH yaffs2, etc.
4. Controlador propietario de Android
Además de las diferencias anteriores, Android también mejora el controlador del dispositivo Linux.
Los puntos anteriores son suficientes para demostrar que Android no es Linux. El contenido principal de este libro se centrará en estas partes únicas de Android. Nuestra explicación será lo más fácil de entender posible, pero aun así le recomendamos que revise primero los conocimientos básicos del kernel de Linux. Antes de estudiar en detalle, primero echemos un vistazo general a los cambios que Android ha realizado en el kernel de Linux. Estos cambios deben ajustarse durante el trasplante.