Sistemas RTO QNX QNX en un diskette: DEMO Es posible ejecutar QNX desde un diskette de 1,44 megas, el cual contiene el sistema operativo, interfaz gráfica de usuario, PPP o una red, navegador Web, explorador de archivos y varias aplicaciones de demostración. Existen dos versiones del disco demo: una versión de red que utiliza una tarjeta de interfaz de red conectada a una red. El inconveniente es que red sólo admite un par de antiguas tarjetas de red, por lo que no funciona en los ordenadores más recientes. una versión de módem que utiliza PPP a un proveedor de servicios de Internet. Los requisitos mínimos de hardware: 386 o superior. 8 megas de ram. Hardware / RS232 del módem o NE1000/2000, diciembre 21x4x o 3com 509 tarjeta de red basada. De serie o el ratón PS / 2. VGA o tarjeta compatible VESA 2.0. No se requiere disco duro Además la versión moderna no reconoce el lobotomizado "winmodems" que mayoría de la gente, lamentablemente, tienen en estos días (winmodems carecen de los procesadores hardware que los antiguos módems tienen y por lo tanto requieren el software propietario del fabricante de emular este hardware). Los pasos para la instalación son los siguientes: 1. Colocar el disquete de arranque QNX en la unidad de disquete y reiniciar el equipo. Aparecerán una flecha una serie de puntos en la esquina superior izquierda de la pantalla, el logo de QNX, un mensaje de bienvenida y el intérprete de comandos. 2. Luego se deben transferir el software contenido en el disquete al disco duro, para ello se debe escribir el comando “install” en el intérprete de comandos. 3. A continuación seguir las instrucciones para configurar el disco por lo que se iniciará QNX. 4. Por último reiniciar desde el disco duro e iniciar QNX como “root”. Una vez que QNX esté funcionando se podrá instalar software adicional, personalizar la instalación y configurar la red entre otras cosas. Se iniciará el navegador web Voyager, compatible con HTML 3.2 y con JavaScript: Ejemplo de área de trabajo y barra de tareas. El explorador de archivos permite buscar en los archivos cargados en memoria RAM: Ejemplo de la interfaz de usuario y controles típicos utilizados por el sistema: Ejemplo de la función para configuración de pantalla: Ejemplo de la aplicación de bloc de notas incluida: Ejemplo del demo de Las Torres de Hanoi. Una aplicación de muestra de Javascript que se ejecuta dentro del navegador web de la Voyager: Ejemplo del otro navegador Slashdot: Fuentes: http://toastytech.com/guis/qnxdemo.html http://qdn.qnx.com/developers/docs/qnx_4.25_docs/qnx4/user_guide/install.html QNX Neutrino RTOS La última versión del sistema operativo en tiempo real QNX, llamada QNX Neutrino RTOS es un completo y robusto sistema operativo que permite satisfacer las necesidades de recursos limitados en tiempo real de sistemas embebidos. Su diseño microkernel y su arquitectura modular permite a los clientes crear sistemas altamente fiables y optimizados, con bajo coste de propiedad. Ya sea que se trate de pequeños o grandes, simples o distribuidos, estos sistemas son conocidos por su capacidad de operar las 24 horas al día, los 365 días al año, sin parar. Se diferencia de otros productos por la fiabilidad, tolerancia a fallas y escalabilidad. Además, ofrece grandes ventajas a nivel técnico, económico y alto rendimiento, incluso en hardware barato, gracias a sus principales características: tiempos de respuesta predecibles y muy rápida interrupción de latencias y cambios de contexto (tiempo real); la arquitectura Microkernel; la partición adaptativa. Tiempo real La característica de microkernel preventiva y el planificador basado en prioridades, permite que QNX Neutrino RTOS proporcione tiempos de respuesta rápidos y predecibles, deterministas tanto a nivel de aplicaciones como de todos los subsistemas. Esto es posible mediante: La rápida interrupción de latencias y cambios de contexto que ayudan a exprimir el más rápido tiempo de respuesta posible de hardware integrado. Prioridad para eliminar la herencia de la inversión de prioridades. Simplificación de modelado en tiempo real a través de las actividades de mensaje síncrono. Interrupciones anidadas y una determinada cota superior de la latencia de interrupción, asegurando que las interrupciones de alta prioridad se atiendan primero, en un plazo previsible, permitiendo que se cumplan sus plazos aún en condiciones de carga pesada. Arquitectura Microkernel Su arquitectura microkernel lo posiciona como un sistema robusto, facilitando la identificación y resolución de errores, y permitiendo actualizaciones de componentes en forma segura y rápida, sin tiempos de inactividad costosos o cortes en el sistema; y autoreparable, posibilitando que ante la falla de cualquier componente el sistema se reinicie automáticamente sin afectar al núcleo u otros componentes; ofreciendo así un alto nivel de contención y recuperación ante fallos. El microkernel incluye sólo los servicios esenciales, como la señalización, temporizadores y programadores. Todos los demás componentes, como ser sistemas de archivos, drivers, pilas de protocolos y aplicaciones, se ejecutan en la seguridad del espacio de usuario en memoria protegida. QNX Neutrino RTOS microkernel Además, ayuda a crear tolerancia a fallos y sistemas auto-reparables mediante: Ciclos de CPU para la detección de errores y recuperación del sistema que aseguran la recuperación rápida del mismo. Posibilidad de poder determinar siempre el estado del sistema, independientemente de la carga del procesador (mediante interfaz de usuario o consola). Reinicio automático de procesos fracasados, sin un reinicio del sistema. Recuperación automática de las comunicaciones entre procesos tras fallos del proceso. Ante la falla de cualquier componente, el sistema operativo lo denuncia y reclama los recursos que estaba utilizando, sin necesidad de reiniciar el sistema y sin perjudicar al núcleo ni a los demás componentes. La falla se limita únicamente a ese componente, reduciendo al mínimo el tiempo medio de reparación. Las características de autoreparación y particionado, además de servicio redundante, es decir, procesamiento distribuido transparente (arquitectura de redes) que permite la construcción rápida de los servicios redundantes, aseguran la alta disponibilidad de los servicios. Partición adaptativa La partición (conjunto de procesos o hilos) QNX adaptativa permite el uso óptimo de toda la capacidad disponible de la CPU, sobretodo en sistemas de uso intensivo de procesador, asegurando que los procesos críticos nunca tengan carencia de recursos y puedan cumplir con los plazos de tiempo real. En condiciones normales, las particiones pueden usar cualquier cantidad ciclos de CPU disponibles. Sin embargo, durante una sobrecarga, es decir, cuando se requiere más cálculo del que el sistema puede sostener en el tiempo, el programador de partición QNX impone límites a los ciclos de CPU que se le pueden asignar a cada partición, garantizando que el mínimo requerido de recursos de la CPU esté siempre disponible para los procesos especificados (se asegura que cada una de las aplicaciones reciba una fracción de los recursos que requiere). Cuando existen ciclos de procesamiento disponibles, las particiones pueden superar sus presupuestos de tiempo de uso de CPU. Los ciclos disponibles se asignan dinámicamente a aquellas particiones que se puedan beneficiar de tiempo adicional de CPU, eligiendo siempre a aquellas de mayor prioridad de ejecución, o a aquellas que fueron designadas como críticas independientemente de la carga del sistema y el presupuesto de partición. Manteniéndose de esta manera el determinismo en tiempo real. Es decir, que tanto en condiciones de disponibilidad de recursos como de limitación de los mismos, las aplicaciones cuentan con recursos para poder operar. Diseños de partición fija Son ineficientes. La capacidad sobrante de CPU no puede ser utilizada. Los requerimientos de CPU se fijan de antemano para prever la demanda máxima. Partición QNX adaptativa Ofrece las garantías mínimas de tiempo de CPU a las particiones. La capacidad sobrante CPU se utiliza cuando está disponible. Los procesos pueden superar sus límites de presupuesto cuando hay ciclos disponibles. Otras de las características de QNX Neutrino RTOS que pueden mencionarse son: Procesamiento transparente distribuido El procesamiento transparente distribuido (TDP) permite que los recursos tengan una independencia de su localización en la red. El software en cualquier nodo de la red puede acceder a cualquier recurso publicado. Para lograr la interconexión dinámica de recursos, TDP envía un mensajes estándar a través de cualquier tecnología de interconexión de redes, permitiendo así que los recursos, tanto hardware como software, que se encuentran en los extremos puedan compartirse. TDP se caracteriza por el empleo de redundancia y balanceo de carga. Esta cualidad permite evitar la pérdida de servicio, ya que si un eslabón falla los datos son reenrutados a través de los demás eslabones. Si ocurre un error en un nodo/enlace, los datos se cargan en forma equilibrada sobre los nodos/enlaces restantes. Todos los componentes del sistema operativo se comunican a través de una sola capa, mediante mensajes bien definidos. Este mensaje forma una capa de "bus" que permite la inserción y la eliminación de componentes de software en cualquier momento. El flujo de mensajes de forma transparente a través del procesador, brinda un acceso también transparente a cualquier recurso, en cualquier parte de la red. El procesamiento transparente distribuido, permite a los desarrolladores crear sistemas robustos y tolerantes a fallos que ofrezcan acceso on-demand a recursos en múltiples terminales. Si una no está disponible, un recurso similar se puede acceder de forma transparente en otra. Arranque rápido QNX Neutrino RTOS ofrece varias estrategias de arranque rápido: BIOS- less boot: se reemplaza la BIOS estándar por inicialización personalizada de los periféricos, gracias a que los conductores de estos dispositivos están fuera de la BIOS. Esto permite seleccionar qué se inicia y cuándo, eliminar inicializaciones no necesarias y posponer otras hasta después del arranque. Microkernel: permite modificar la secuencia de arranque para sacar provecho del tiempo de inactividad, siendo posible determinar qué arranca cuándo. Activación instantánea de dispositivo (IDA): utiliza minicontroladores, que se ejecutan antes de que el núcleo del sistema operativo se inicie, para iniciar las aplicaciones necesarias a fin cumplir con los requisitos de disposición temprana. Fuente: http://www.qnx.com/products/neutrino-rtos/neutrino-rtos.html#technology Photon microGUI Photon microGUI es un sistema de ventanas, para QNX que se entrega con QNX Software Development Platform (SDP). Dentro de sus características cabe destacar: Configuración de pantallas múltiples: soporta visualización individual a varios monitores (presenta toda la Photon microGUI en una serie de monitores) y para múltiples pantallas en múltiples monitores con una sola CPU. Rápida creación de prototipos sin extensa codificación, gracias a Photon widgets fáciles de usar, la reducción del tamaño de bibliotecas compartidas y la reutilización de código en nuevos componentes. Dispone del constructor de aplicaciones (Application Builder) para probar las mismas. Personalizar la GUI (ventanas, botones, menús) es muy sencillo ya sea en forma individual o global, al igual que los widgets. Compatibilidad con lenguajes asiáticos y fuentes escalables, como fuentes True Type y mapa de bits. Cualquier parte de la interfaz gráfica de usuario puede actualizarse, modificarse, recibir adiciones y sustituciones sin necesidad de reiniciar el sistema. El enfoque de desarrollo HMI (Human Machine Interface) simplifica y acelera el trabajo necesario para crear interfaces de usuario sofisticadas. Permite crear interfaces de usuario libres de distracciones y parpadeo, reduciendo el consumo de CPU y optimizando el rendimiento mediante la eliminación de cálculos redundantes. Existen componentes opcionales que incluyen bibliotecas con más de 80 widgets, controladores de gráficos, datos de entrada (ratón, teclado, pantalla táctil) y utilidades de Photon, tales como terminales, gestor de archivos, gestor de escritorio multipantalla, editores y lectores de HTML y código fuente para servicios públicos y el programa de ejemplo. Phindows Para lograr la interacción con aplicaciones Photon desde un escritorio Windows, ya sea a través de una red IP o conexión serie, se utiliza la herramienta de conexión a distancia Phindows. Esta herramienta permite: Reducir los costos de hardware: dispositivos embebidos no requieren una pantalla o un teclado físico dedicado. Aumentar la productividad del desarrollador: las aplicaciones Photon pueden ser construidas y probadas desde un escritorio Windows, reduciendo así la necesidad de simuladores. Portabilidad: una aplicación Photon puede ejecutarse tanto en un entorno QNX, como en un escritorio de Windows sin necesidad de recodificar o recompilar. Usuarios remotos: los desarrolladores no necesitan estar en el lugar para depurar aplicaciones. El rendimiento de Phindows se puede ajustar para obtener un rendimiento óptimo con la velocidad de conexión disponible, la memoria RAM, recursos de disco y los requisitos de seguridad. Brinda soporte para: Compresión de datos en la transferencia de datos. RAM configurable y cachés de disco: imágenes caché en la máquina Windows que se transfieran sólo una vez y persisten en los reinicios. Fuentes de la ventana local: las fuentes pueden ser representadas como mapas de bits y enviadas al escritorio Windows o representadas en Windows utilizando archivos de fuentes locales, para mantener la apariencia de la fuente deseada mientras se minimiza la carga de transmisión de datos. Seguridad: los desarrolladores pueden especificar una clave de cifrado para el final de Windows remoto que debe coincidir con la clave en el host QNX. Se requieren una identificación de usuario y contraseña en la conexión. Requisitos del sistema QNX 6,3 o más reciente Windows 2000 o Windows XP Fuentes: http://www.qnx.com/products/hmi/photon.html http://www.utvikling.com/photon.asp