Características del sistema operativo IoT del sistema operativo IoT
Características del kernel
El tamaño del kernel es altamente escalable y puede adaptarse a plataformas de hardware con diferentes configuraciones. Por ejemplo, en un caso extremo, el tamaño del kernel debe mantenerse dentro de 10K para admitir sensores con memoria y rendimiento de CPU limitados. En este momento, el kernel solo necesita tener funciones básicas de comunicación y programación de tareas. En el otro caso extremo, el kernel debe tener programación completa de subprocesos, administración de memoria, almacenamiento local, protocolos de red complejos, interfaz gráfica de usuario y otras funciones para cumplir con los requisitos de los terminales IoT inteligentes de alta configuración. En este momento, el tamaño del núcleo inevitablemente aumentará considerablemente, alcanzando cientos de niveles K o incluso M. Esta escalabilidad del tamaño del kernel se puede lograr mediante dos niveles de medidas: recompilación y carga selectiva de módulos binarios. La medida de recompilación es muy simple. Solo necesita seleccionar los módulos de funciones requeridos de acuerdo con los diferentes objetivos de la aplicación y luego recompilar el kernel. Esta medida debe usarse cuando la personalización del kernel es muy profunda, como cuando se requiere que el tamaño del kernel sea inferior a 10K. La carga selectiva del módulo binario se utiliza cuando la personalización del kernel no es muy profunda. En este momento, se mantiene un archivo de configuración del sistema operativo, que enumera todos los módulos binarios que el sistema operativo necesita cargar. Una vez completada la inicialización del kernel, los módulos binarios necesarios se cargarán de acuerdo con el archivo de configuración. Esto requiere que el dispositivo terminal tenga memoria externa (como disco duro, Flash, etc.) para almacenar el módulo binario que se va a cargar;
El rendimiento en tiempo real del kernel debe ser lo suficientemente fuerte para cumplir las necesidades de aplicaciones clave. La mayoría de los dispositivos de IoT requieren que el núcleo del sistema operativo funcione en tiempo real, porque muchas acciones clave deben completarse en un tiempo limitado; de lo contrario, no tendrán sentido. La naturaleza en tiempo real del kernel abarca muchos aspectos. El primero es la naturaleza en tiempo real de la respuesta a la interrupción. Una vez que ocurre una interrupción externa, el sistema operativo debe responder a la interrupción y procesarla en un tiempo suficientemente corto. El segundo es la naturaleza en tiempo real de la programación de subprocesos o tareas. Una vez que los recursos requeridos por una tarea o subproceso o las condiciones para su posterior operación están listos, deben poder programarse de inmediato. Obviamente, es difícil para un kernel basado en programación no preventiva cumplir con estos requisitos en tiempo real;
La arquitectura del kernel es altamente escalable. El núcleo del sistema operativo IoT debe diseñarse como un marco. Este marco define algunas interfaces y especificaciones. Siempre que se sigan estas interfaces y especificaciones, se pueden agregar fácilmente nuevas funciones y nuevo soporte de hardware al núcleo del sistema operativo. Debido a que el entorno de aplicaciones de Internet de las cosas tiene características de amplio espectro, el sistema operativo debe poder expandirse para adaptarse a nuevos entornos de aplicaciones. El kernel debe tener un mecanismo de administración de dispositivos basado en un bus o estructura de árbol que pueda cargar dinámicamente controladores de dispositivos u otros módulos centrales. Al mismo tiempo, el kernel debe tener la función de cargar dinámicamente módulos o aplicaciones binarias externas. Estas aplicaciones se almacenan en medios externos, de modo que no es necesario modificar el kernel y solo desarrollar nuevas aplicaciones para satisfacer las necesidades específicas de la industria. ;
El kernel debe ser lo suficientemente seguro y confiable. No hace falta decir que el entorno de aplicaciones de IoT se caracteriza por un alto grado de automatización y menos intervención humana. Esto requiere que el núcleo sea lo suficientemente confiable como para soportar un funcionamiento independiente a largo plazo. La seguridad es aún más crítica para el Internet de las cosas e incluso está relacionada con el alma del país. Por ejemplo, si se aplica un núcleo inseguro al control de la red eléctrica nacional, una vez que sea invadido por el exterior, el impacto será inconmensurable. Para mejorar la seguridad, el kernel debe soportar la protección de la memoria (mecanismos como VMM), la gestión de excepciones y otros mecanismos para aislar el código erróneo cuando sea necesario. Otra estrategia de seguridad es no abrir el código fuente o no abrir partes clave del código fuente del kernel. No revelar el código fuente es solo una política de seguridad y no significa que el kernel no pueda usarse de forma gratuita;
Ahorro de energía y potencia para soportar suficiente resistencia energética. El kernel del sistema operativo debe reducir la frecuencia de funcionamiento de la CPU cuando la CPU está inactiva o simplemente apagar la CPU. Para los dispositivos periféricos, su estado operativo también debe juzgarse en tiempo real. Una vez que entran en estado inactivo, deben cambiar al modo de ahorro de energía. Al mismo tiempo, el núcleo del sistema operativo debe reducir al máximo la frecuencia de las interrupciones. Por ejemplo, sin afectar el rendimiento en tiempo real, la frecuencia del reloj del sistema debe ajustarse al mínimo para ahorrar energía tanto como sea posible. Los módulos periféricos se refieren a algunas características funcionales que el sistema operativo debe tener para adaptarse a las características de la aplicación del Internet de las cosas, como el mantenimiento remoto y las actualizaciones. También se refiere a algunos módulos funcionales desarrollados para ampliar el alcance funcional del núcleo del sistema operativo IoT, como sistemas de archivos, pilas de protocolos de red, etc.
Los módulos periféricos (o funciones periféricas) del sistema operativo IoT deben tener al menos lo siguiente:
Soportar actualizaciones remotas del núcleo del sistema operativo, controladores de dispositivos o aplicaciones, etc. La actualización remota es la característica más básica del sistema operativo IoT. Esta característica puede reducir en gran medida los costos de mantenimiento. Una vez completada la actualización remota, se pueden seguir utilizando la configuración y los datos originales del dispositivo. Incluso en el caso de una falla en la actualización, el sistema operativo debería poder restaurar su estado operativo original. La actualización y el mantenimiento remotos son una de las principales medidas para respaldar la implementación a gran escala de sistemas operativos de IoT;
Admite sistemas de archivos y almacenamiento externo de uso común, como sistemas de archivos como FAT32/NTFS/DCFS. , compatible con discos duros, memorias USB, Flash, ROM y otros dispositivos de almacenamiento comunes. Las capacidades de almacenamiento externo desempeñan un papel importante en situaciones en las que se interrumpe la conectividad de la red. Por ejemplo, los datos recopilados se pueden almacenar temporalmente y luego cargar en el centro de datos una vez que se restablezca la red. Sin embargo, el código del sistema de archivos y el controlador de almacenamiento debe separarse efectivamente del código central del sistema operativo y puede cortarse muy fácilmente;
Admite funciones de mantenimiento como configuración remota, diagnóstico remoto y control remoto. gestión. Esto no solo cubre funciones comunes de operación remota, como la modificación remota de parámetros del dispositivo, la visualización remota de información operativa, etc. También debe incluir operaciones remotas de nivel más profundo, como visualización remota del estado del kernel del sistema operativo, depuración remota de subprocesos o tareas y volcado remoto del estado del kernel cuando ocurren excepciones. Estas funciones no solo requieren el soporte de aplicaciones periféricas, sino que también requieren el soporte natural del kernel;
Admite funciones de red completas. El sistema operativo IoT debe admitir una pila completa de protocolos TCP/IP, incluido el soporte simultáneo para IPv4 e IPv6. Esta pila de protocolos debe ser flexible y escalable para adaptarse a las necesidades de personalización. Por ejemplo, puede cortar la pila de protocolos para que solo admita IP/UDP y otras funciones de protocolo para reducir el tamaño del código. Al mismo tiempo, también admite una rica familia de protocolos IP, como Telnet/FTP/IPSec/SCTP y otros protocolos, para ser adecuado para terminales inteligentes y aplicaciones altamente seguras y confiables;
Integrado soporte para funciones de comunicación inalámbrica comúnmente utilizadas en Internet de las cosas. Por ejemplo, admite funciones de comunicación inalámbrica de redes públicas como GPRS/3G/HSPA/4G, funciones de comunicación de campo cercano como Zigbee/NFC/RFID y funciones de interfaz de red de escritorio como WLAN/Ethernet. Estos diferentes protocolos deben poder convertirse entre sí y poder convertir mensajes de datos obtenidos de un protocolo en mensajes de otro protocolo y enviarlos. Además, también debería admitir la recepción y el envío de mensajes cortos, comunicación de voz, comunicación por vídeo y otras funciones;
Soporte integrado para la función de análisis de archivos XML. En la era del Internet de las cosas, habrá serias barreras para el intercambio de información entre diferentes industrias, o incluso entre diferentes campos de la misma industria. El intercambio de datos en formato XML puede romper esta barrera, por lo que los estándares XML se utilizarán más ampliamente en el campo de IoT. El sistema operativo IoT debe tener soporte integrado para el análisis XML y todos los datos de configuración del sistema operativo deben almacenarse en formato XML. Al mismo tiempo, también puede analizar el formato XML definido por la industria para completar la función de conversión de la industria;
Admite funciones GUI completas. Las interfaces gráficas de usuario se utilizan generalmente en terminales inteligentes del Internet de las cosas para completar la interacción entre usuarios y dispositivos. La GUI debe definir un marco completo para facilitar la expansión de las funciones gráficas. Al mismo tiempo, se deben implementar elementos comunes de la interfaz de usuario, como cuadros de texto, botones, listas, etc. Además, el módulo GUI debe estar separado del núcleo del sistema operativo y es mejor admitir la función de carga dinámica binaria, es decir, el núcleo del sistema operativo carga o descarga dinámicamente el módulo GUI según las necesidades de la aplicación. La eficiencia del módulo GUI debe ser lo suficientemente alta. El tiempo desde la confirmación de la entrada del usuario hasta el inicio de la ejecución de la acción específica (puede denominarse tiempo de inicio de clic) debe ser lo suficientemente corto, para que el usuario no pueda hacer clic en Aceptar sino esperar mucho tiempo. tiempo para la ejecución de la tarea. Situación de tiempo;
Admite la carga dinámica de aplicaciones desde medios de almacenamiento externos. El sistema operativo IoT debería proporcionar un conjunto de API para llamadas de diferentes aplicaciones, y este conjunto de API debería cambiar en tiempo real según los módulos periféricos cargados por el sistema operativo. Por ejemplo, cuando se carga el módulo GUI, se deben proporcionar llamadas al sistema para operaciones GUI, pero cuando no hay ningún módulo GUI, no se deben proporcionar llamadas a funciones GUI.
Al mismo tiempo, los módulos periféricos, como el sistema operativo y la GUI, y los módulos de aplicaciones deben estar separados binariamente. El sistema operativo puede cargar aplicaciones dinámicamente a pedido desde medios de almacenamiento externos. Esta estructura proporciona a todo el sistema operativo fuertes capacidades de expansión. El kernel del sistema operativo y los módulos periféricos (GUI, red, etc.) brindan soporte básico y varias aplicaciones industriales se implementan a través de aplicaciones. Finalmente, cuando se lanza el software, solo se lanzan el núcleo del sistema operativo, los módulos periféricos necesarios y los módulos de aplicación. El entorno de desarrollo integrado es una herramienta clave para la construcción de aplicaciones industriales. El sistema operativo IoT debe proporcionar herramientas de desarrollo convenientes y flexibles para desarrollar aplicaciones adecuadas para aplicaciones industriales. El entorno de desarrollo debe ser maduro y ampliamente disponible para reducir el tiempo de comercialización de la aplicación (TTM). El entorno de desarrollo integrado debe tener las siguientes características:
El sistema operativo IoT debe proporcionar API ricas y flexibles para que las llamen los programadores. Este conjunto de API debe poder admitir múltiples lenguajes, como por ejemplo C/. C ++ y lenguajes de programación como Java; es mejor aprovechar al máximo los entornos de desarrollo integrados existentes. Por ejemplo, puede utilizar entornos de desarrollo integrados como Eclipse y Visual Studio. Estas herramientas de desarrollo integrado tienen una amplia base de aplicaciones y pueden obtener un buen soporte técnico directamente en Internet. Además del entorno de desarrollo integrado de soporte, debería existir un entorno de desarrollo compacto. También se puede definir e implementar un formato de aplicación (similar al formato Windows PE) para satisfacer las necesidades especiales del Internet de las cosas. Al personalizar el entorno de desarrollo integrado, el código generado por el entorno de desarrollo integrado puede seguir este formato; se debe proporcionar un conjunto de herramientas para facilitar el desarrollo y la depuración de aplicaciones. Por ejemplo, proporciona herramientas de descarga de aplicaciones, herramientas de depuración remota, etc. para respaldar todo el proceso de desarrollo.
Se puede ver que el núcleo del sistema operativo IoT, los módulos periféricos, el entorno de desarrollo de aplicaciones, etc. mencionados anteriormente son plataformas de soporte para admitir aplicaciones industriales de nivel superior. Las aplicaciones industriales son el software que, en última instancia, genera productividad, pero el sistema operativo de Internet de las cosas es la base para que las aplicaciones industriales prosperen y sobrevivan a largo plazo. Sólo con un sistema operativo de Internet de las cosas potente y flexible podrá crecer el gran árbol de Internet de las cosas. Las cosas dan frutos fructíferos.