¿Por qué los teléfonos inteligentes Android que utilizan procesadores de arquitectura ARM son compatibles con sistemas operativos basados en el kernel de Linux?
Cuando se hace referencia al kernel de Linux, se debe distinguir conceptualmente del "sistema operativo Linux", que solo incluye las abstracciones más básicas, como el modelo de memoria, la programación de procesos, el manejo de interrupciones, etc. El concepto de sistema operativo es mucho más amplio e incluye no sólo el núcleo, sino también los controladores de dispositivos, los marcos de aplicaciones y el software clave que hace que el sistema operativo funcione para las personas. Por lo tanto, Ubuntu, Fedora y otras distribuciones de escritorio pueden considerarse como sistemas operativos Linux diferentes centrados en el kernel de Linux.
Android se desarrolló bifurcando el kernel de Linux y realizando las siguientes mejoras:
1. Añadiendo nuevos controladores de dispositivo
2.
3. Implementar un marco de aplicación basado en Java.
4. Realizar modificaciones menores en el kernel. Modificaciones
La mayoría de las modificaciones se realizan 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, la rama de Android del código del kernel comenzó a ser fusionado nuevamente en el repositorio del kernel de Linux original), y las abstracciones completadas en el kernel (como el modelo de memoria, la programación de procesos, etc.) también son las mismas. Las abstracciones completadas por el kernel (como el modelo de memoria, la programación de procesos, etc.) son consistentes.
Android no es Linux
Puede que te confundas un poco al ver este título ¿No hemos dicho siempre que Android está basado en el kernel de Linux? ¿ahora? La confusión es normal. Primero, eche un vistazo a los siguientes puntos y luego los analizaremos punto por punto. Después de leer esto, sentirá que Android no es Linux.
1. No tiene sistema de ventanas nativo
¿Qué es un sistema de ventanas nativo? El sistema de ventanas nativo es el sistema X Window en GNU/Linux, o Quartz en Mac OX X, etc. Los sistemas de ventanas de diferentes sistemas operativos pueden ser diferentes, pero Android no usa (ni necesita usar) el sistema de ventanas X de Linux. Esta es una de las razones básicas por las que Android no es Linux.
2. No tiene soporte para glibc
Dado que Android se usó originalmente para algunos dispositivos móviles portátiles, Android no usó glibc como biblioteca C por razones de eficiencia y otras razones; Google desarrolló su propia Bionic Libc para reemplazar a glibc. No contiene un conjunto completo de aplicaciones estándar de Linux.
Android no copia completamente el kernel del sistema Liunx. Además de corregir algunos errores en Liunx, también agrega una gran cantidad de contenido, como: agrega. Gold basado en la arquitectura ARM -plataforma Fish y 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. La mayor parte de este libro girará en torno a estas partes únicas de Android e intentaremos hacerlo lo más accesible posible, pero le recomendamos que primero revise los conceptos básicos del kernel de Linux. Antes de entrar en detalles, echemos un vistazo a los cambios que Android realiza en el kernel de Linux que deberán ajustarse al realizar la migración.