|
1 | 1 | = Sistemas Operativos en Tiempo Real |
2 | 2 |
|
| 3 | +Un sistema operativo en tiempo real (RTOS, Real-Time Operating System) |
| 4 | +es un tipo de sistema operativo diseñado para responder a eventos y ejecutar |
| 5 | +tareas dentro de plazos estrictos y deterministas. La clave no es solo ejecutar |
| 6 | +tareas correctamente, sino garantizar que se ejecuten a tiempo. |
| 7 | + |
| 8 | +En contraste, un sistema operativo tradicional (como Windows, Linux de escritorio o macOS) |
| 9 | +se centra en rendimiento y multitarea general, pero no garantiza |
| 10 | +tiempos de respuesta deterministas. |
| 11 | + |
| 12 | +Un RTOS garantiza "hacer lo correcto y a tiempo", |
| 13 | +mientras que un OS tradicional garantiza "hacer lo correcto eventualmente". |
| 14 | + |
| 15 | +*Ejemplo*: |
| 16 | + |
| 17 | +- RTOS: control de un motor, parpadeo de un LED crítico, sistema de frenos ABS en un automóvil. |
| 18 | +- OS tradicional: abrir un navegador, reproducir música, ejecutar software de oficina. |
| 19 | +
|
| 20 | +.Comparación entre RTOS y OS |
| 21 | +[cols="1,1,1", options="header"] |
| 22 | +|=== |
| 23 | +| Característica | RTOS | Sistema Operativo Tradicional |
| 24 | + |
| 25 | +| Objetivo principal |
| 26 | +| Cumplimiento de tiempos estrictos |
| 27 | +| Rendimiento general y multitarea |
| 28 | + |
| 29 | +| Determinismo |
| 30 | +| Garantizado |
| 31 | +| No determinista |
| 32 | + |
| 33 | +| Planificador (scheduler) |
| 34 | +| Prioridad estricta, preemptivo |
| 35 | +| Basado en tiempo compartido / fairness |
| 36 | + |
| 37 | +| Uso de recursos |
| 38 | +| Optimizado, bajo consumo |
| 39 | +| Flexible, más pesado |
| 40 | + |
| 41 | +| Latencia de interrupción |
| 42 | +| Muy baja (microsegundos a milisegundos) |
| 43 | +| Variable, puede ser alta |
| 44 | + |
| 45 | +| Ejemplos típicos |
| 46 | +| FreeRTOS, Zephyr, ThreadX, VxWorks |
| 47 | +| Windows, Linux, macOS |
| 48 | + |
| 49 | +| Aplicaciones |
| 50 | +| Automoción, robótica, IoT, control industrial |
| 51 | +| PCs, servidores, smartphones |
| 52 | +|=== |
| 53 | + |
| 54 | + |
3 | 55 | == FreeRTOS |
4 | 56 |
|
5 | 57 | FreeRTOS es un kernel de sistema operativo en tiempo real (RTOS) |
@@ -316,6 +368,23 @@ más complejas y de mayor escala. |
316 | 368 | - https://www.arduinolibraries.info/libraries/rt-thread |
317 | 369 | - https://www.rt-thread.io/ |
318 | 370 |
|
| 371 | +=== VxWorks |
| 372 | + |
| 373 | +VxWorks es un sistema operativo de tiempo real desarrollado como software |
| 374 | +propietario por Wind River Systems. Se puso a la venta la primera versión en 1987. |
| 375 | +Es utilizado para sistemas incrustados que habitualmente necesitan una respuesta |
| 376 | +rápida del orden de ms o microsegundos ante interrupciones en su funcionamiento, |
| 377 | +una reconocida estabilidad y una seguridad certificada. Forma parte, junto con otros |
| 378 | +sistemas operativos alternativos, de millones de dispositivos electrónicos como |
| 379 | +cajeros automáticos, impresoras, cámaras fotográficas y en sistemas |
| 380 | +críticos de complejos productos aeroespaciales como el avión de pasajeros Boeing 787, |
| 381 | +del robot Curiosity de la NASA, o del avión militar Northrop Grumman X-47B, entre otros. |
| 382 | + |
| 383 | +==== Recursos |
| 384 | + |
| 385 | +- https://www.windriver.com/products/embedded/vxworks |
| 386 | +- https://es.wikipedia.org/wiki/VxWorks |
| 387 | + |
319 | 388 | === Apache Nuttx |
320 | 389 |
|
321 | 390 | Apache Nuttx es un RTOS que se enfoca en el cumplimiento de estándares, |
@@ -373,68 +442,3 @@ int main(int argc, char *argv[]) |
373 | 442 | ==== Recursos |
374 | 443 |
|
375 | 444 | - https://nuttx.apache.org/ |
376 | | - |
377 | | -== ROS (Robot Operating System) |
378 | | - |
379 | | -Robot Operating System (ROS) es un conjunto de bibliotecas de |
380 | | -software y herramientas que facilitan el desarrollo de robots. |
381 | | -Incluye desde *drivers* hasta algoritmos, es multiplataforma y soporta |
382 | | -Linux, macOS, Windows, así como plataformas embebidas a través de micro-ROS. |
383 | | - |
384 | | -*ROS 1* fue la primera versión ampliamente adoptada y se diseñó |
385 | | -principalmente para investigación y prototipado en robótica. |
386 | | - |
387 | | -*ROS 2* es la evolución de ROS, rediseñado desde cero para uso industrial, |
388 | | -comercial y en sistemas críticos. |
389 | | - |
390 | | -Características principales de ROS 2: |
391 | | - |
392 | | -- Arquitectura descentralizada (sin master). |
393 | | -- Basado en DDS (Data Distribution Service) para la comunicación. |
394 | | -- Soporte nativo para tiempo real. |
395 | | -- Funciona en múltiples sistemas operativos: Linux, Windows, macOS, RTOS (FreeRTOS, Zephyr, ThreadX, etc.). |
396 | | -- Seguridad integrada (autenticación, cifrado, control de acceso). |
397 | | -- Mejor soporte para sistemas distribuidos y escalables. |
398 | | - |
399 | | -ROS 2 sí puede usarse con Zephyr y otros RTOS, |
400 | | -pero no de la misma forma que en Linux. La integración está pensada para |
401 | | -microcontroladores y sistemas con recursos limitados. Para esto se utiliza micro-ROS. |
402 | | - |
403 | | -. Zephyr ejecuta el micro-ROS client. |
404 | | -. El micro-ROS Agent corre en un PC o SBC (Linux). |
405 | | -. La comunicación usa DDS de ROS 2 a través del agente. |
406 | | - |
407 | | -.Conexión entre ROS2 y Zephyr |
408 | | -[source, text] |
409 | | ----- |
410 | | -┌────────────────────────────┐ |
411 | | -│ ROS 2 (PC / SBC) │ |
412 | | -│ Linux / Windows / etc. │ |
413 | | -└───────────┬────────────────┘ |
414 | | - │ DDS |
415 | | -┌───────────▼────────────────┐ |
416 | | -│ micro-ROS Agent │ |
417 | | -│ (Linux / PC / SBC) │ |
418 | | -└───────────┬────────────────┘ |
419 | | - │ Serial / UDP |
420 | | -┌───────────▼────────────────┐ |
421 | | -│ micro-ROS Client │ |
422 | | -│ Zephyr RTOS │ |
423 | | -│ MCU (Cortex-M, RISC-V) │ |
424 | | -└────────────────────────────┘ |
425 | | ----- |
426 | | - |
427 | | -Plataformas como https://developer.nvidia.com/isaac[Nvidia Isaac] están basadas |
428 | | -en ROS2. |
429 | | - |
430 | | -=== Recursos |
431 | | - |
432 | | -- https://www.ros.org/ |
433 | | - |
434 | | -== Beam Bots |
435 | | - |
436 | | -Una alternativa del ecosistema Elixir a ROS2 es Beam Bots. Ya que la máquina virtual |
437 | | -de Erlang proporciona todos los componentes necesarios para la creación de complejas |
438 | | -orquestaciones de movimientos en robots. |
439 | | - |
440 | | -Puedes leer el tutorial para saber más de xref:advanced:beambots.adoc[Beam Bots]. |
|
0 commit comments