¿Cuáles son las diferencias y conexiones entre los sistemas Linux integrado y Android integrado?
Linux integrado: este es el Linux uboot+kernel de Linux+sistema de archivos+ que la mayoría de la gente conoce QT (UI ),
Por supuesto, los dos serán ligeramente diferentes debido a la diferencia en la interfaz de usuario de la capa superior. El kernel de Linux será ligeramente diferente debido a la interfaz de usuario de la capa superior, pero aún está muy cerca. Las personas que han hecho Linux pueden cambiar sin problemas al desarrollo subyacente de Android, por lo que la gente dice que aprender el sistema Android es en realidad lo más importante. es aprender bien los controladores de Linux, además de Android. Hay HAL, JNI, java, etc. especializados, pero en las grandes empresas también hay personas dedicadas a las partes relacionadas con Android.
Ni siquiera puedes usar QT, porque muchos dispositivos bajo Linux no tienen interfaz de usuario, entonces, ¿qué debes hacer?
Debian y Ubuntu integrados de los que estamos hablando en realidad están sobre los hombros del gigante Linux. De hecho, no son una rama de Linux, es solo una extensión y la expansión es pequeña. Sólo un cambio. Se puede ver desde aquí que Linux integrado es poderoso. De todos modos, es N veces más poderoso que Wince.
O(∩_∩)O~, entonces, aprender Android integrado es en realidad aprender uboot y el kernel de Linux, y no crearás las mismas aplicaciones, por lo que todos piensan que Android es Java. .
Solía hablar sobre la diferencia, puedes consultarla
ARCH: estos son algunos archivos en el archivo arch/arm modificado de Android:
arch/ arm:
Cambio: arch/arm/kernel/entry-armv.Chg:arch/arm/kernel/module.c
Cambio:arch/arm/kernel/process.c
Cambio:arch/arm/kernel/ptrace.c
Cambio:arch/arm/kernel/setup.c
Cambio:arch/arm/kernel /signal c
Cambio: arch/arm/kernel/traps.c
Cambio: arch/arm/mm/cache-v6.S
Cambio. : arch/ arm/vfp/entry.S
Chg: arch/arm/vfp/vfp.h
Chg: arch/arm/vfp/vfphw ejecutará las instrucciones arm926T. (desde 2.6 .29 en adelante, Goldfish también admite instrucciones ATMv7), pero los archivos para la plataforma virtual no se compilarán en el dispositivo real.
arch/arm/mach-goldfish:
Nuevo: arch/arm/mach-goldfish/audio.c
Nuevo: arch/arm/ mach- goldfish/board-goldfish.c
Nuevo: arch/arm/mach-goldfish/pdev_bus.c
Nuevo: arch/arm/mach-goldfish/pm
Nuevo: Arch/arm/mach-goldfish/switch.c
Nuevo: Arch/arm/mach-goldfish/timer.c
YAFFS2 -- A diferencia de las PC, que almacenan archivos en un disco duro, los dispositivos móviles suelen utilizar memoria flash como almacenamiento. Entre ellos, la memoria flash NAND se usa ampliamente (la mayoría de los teléfonos móviles usan memoria flash NAND y algunos teléfonos móviles Samsung usan OneNAND). La memoria flash NAND tiene las ventajas de bajo costo y alta densidad.
YAFFS2 es la abreviatura de "Yet Another Flash File System, 2nd edition". Proporciona una interfaz eficiente entre el kernel de Linux y los dispositivos flash NAND. YAFFS2 no está incluido en el kernel estándar de Linux, Google lo agregó al kernel de Android
fs/yaffs2:
Nuevo: fs/yaffs2/devextras.h
Nuevo: fs/yaffs2/Kconfig
Nuevo: fs/yaffs2/Makefile
Nuevo: fs/yaffs2/moduleconfig.h
Nuevo: fs/ yaffs2 /yaffs_checkptrw.c
Nuevo: fs/yaffs2/yaffs_ checkptrw.h
Nuevo: fs/yaffs2/yaffs_ecc.c
Nuevo: fs/yaffs2 / yaffs_ecc.h
Nuevo: fs/yaffs2/yaffs_fs.c
Nuevo: fs/yaffs2/yaffs_getblockinfo.h
Nuevo: fs/yaffs2 /. yaffs_guts.c
Nuevo: fs/yaffs2/yaffs_guts.h
Nuevo: fs/yaffs2/yaffsinterface.h
Nuevo: fs/yaffs2/yaffs_mtdif1. c
Nuevo: fs/yaffs2/yaffs_mtdif1.h
Nuevo: fs/yaffs2/yaffs_mtdif2.c
Nuevo: fs/yaffs2/yaffs_mtdif2.
Nuevo: fs/yaffs2/yaffs_mtdif.c
Nuevo: fs/yaffs2/yaffs_mtdif.h
Nuevo: fs/yaffs2/yaffs_nand.c
Nuevo: fs/yaffs2/yaffs_nandemul. yaffs_nandemul2k.h
Nuevo: fs/yaffs2/yaffs_nand.h
Nuevo: fs/yaffs2/yaffs_packedtags1.c
p>Nuevo: fs/yaffs2/yaffs_packedtags1.h
Nuevo: fs/yaffs2/yaffs_qsort.c
Nuevo: fs/yaffs2/yaffs_qsort.c
Nuevo: fs/yaffs2/yaffs_qsort.h
Nuevo: fs/yaffs2/yaffs_tagscompat.c
Nuevo: fs/yaffs2/yaffs_tagscompat.h
Nuevo: fs/yaffs2/yaffs_tagsvalidity.c
Nuevo: fs/yaffs2/yaffs_tagsvalidity.h
Nuevo: fs/yaffs2/yportenv.h
Bluetooth -- Google parchó el Bluetooth.
Se corrigieron algunos errores de Bluetooth
drivers/bluetooth:
Cambiar: drivers/bluetooth/bfusb.c
Cambiar: drivers/bluetooth/bt3c_cs.c
p>Cambio: drivers/bluetooth/btusb.
Cambio: drivers/bluetooth/hci_h4.c
Cambio: drivers/bluetooth/hci_ll.c
Programador: los cambios en el Programador son muy menores, así que lo dejé como estaba.
Chg: kernel/sched.c
Nueva funcionalidad de Android: además de corregir algunos errores y realizar otros cambios menores, Android también ha agregado algunas características nuevas, como se describe a continuación. :
IPC Binder: IPC Binder es un mecanismo de comunicación entre procesos (IPC). Permite que los procesos proporcionen servicios a otros procesos a través de un conjunto de API de mayor nivel que en Linux estándar.
Nuevo contenido: drivers/staging/android/binder.c
Asesino de memoria baja: Android agrega un asesino de memoria baja que escanea la lista de procesos de Linux en ejecución y elimina uno de ellos. .
Nuevo: drivers/staging/android/lowmemorykiller.c
Ashmem: Ashmem es un sistema de memoria compartida anónimo que agrega una interfaz para que los procesos compartan bloques de memoria con nombre. Por ejemplo, un sistema puede usar Ashmem para almacenar íconos a los que pueden acceder múltiples procesos mientras dibuja la interfaz de usuario. Ventajas de Ashmem sobre la memoria compartida tradicional de Linux La ventaja de Ashmem sobre la memoria compartida tradicional de Linux es que proporciona una manera para que el kernel recupere estos bloques de memoria compartida cuando no están en uso actualmente. Si un proceso intenta acceder a un bloque de memoria compartida que ha sido liberado por el kernel, recibirá un mensaje de error y luego deberá reasignar el bloque y recargar los datos.
Nuevo: mm/ashmem.c
Controladores/usb/gadget:
Nuevo: controladores/usb/gadget/android.c
p >Cambio: drivers/usb/gadget/composite.c
Cambio: drivers/usb/gadget/f_acm.c
Cambio: drivers/usb/gadget/f_acm . gadget/f_acm.c
Nuevo: drivers/usb/gadget/f_acm.h
Nuevo: drivers/usb/gadget/f_adb.p>Nuevo: drivers/usb/ gadget/ f_mass_storage.c
Nuevo: drivers/usb/gadget/f_adb.h
Nuevo: drivers/usb/gadget/f_mass_storage.c
Nuevo: drivers/ usb/gadget/f_mass_storage.h
Android también agrega reloj en tiempo real, compatibilidad con conmutadores y GPU programada. Enumeramos los archivos de impacto de estos nuevos módulos al final de este documento.
Administración de energía: la administración de energía es una de las piezas de software más complicadas de manejar en un dispositivo móvil, por lo que la hemos agrupado en un grupo separado del resto. Vale la pena señalar que Google agregó un nuevo sistema de administración de energía a Linux en lugar de reutilizar uno existente.
Kernel/power:
Nuevo: kernel/power/consoleearlysuspend.c
Nuevo: kernel/power/earlysuspend.c
Nuevo: kernel/power/fbearlysuspend.c
Modificado: kernel/power/main.c
Modificado: kernel/power/power.h
Cambio: kernel/power/process.c
Nuevo: kernel/power/userwakelock.c
Nuevo: kernel/power/wakelock.c
Cambios varios: Además de los cambios anteriores, también descubrimos algunos cambios que podrían describirse como "varios". Estos cambios incluyen soporte de depuración adicional, control de luz del teclado y administración de red TCP. Entre otras cosas, estos cambios incluyen soporte de depuración adicional, control de luz del teclado y administración de red TCP
/c ... id-to-a-new-device/
/smallbigwang /item/95c99ebcb0e9544cba0e1281