Tock es un sistema operativo embebido gratuito y de código abierto para microcontroladores escrito en Rust . El objetivo del sistema operativo es aislar los componentes para que las aplicaciones de terceros no confiables puedan ejecutarse en procesadores Cortex-M , RISC-V [ 1 ] y x86 [ 2 ] en un entorno protegido.
Historia
Amit Levy, estudiante de doctorado en la Universidad de Stanford , inició el proyecto Tock para crear un sistema operativo TinyOS que priorizara la seguridad . Amit se interesó en investigar computadoras de bajo consumo para IoT cuando decidió construir una cerradura inteligente después de que le robaran las bicicletas a él y a sus compañeros de piso por no cerrar la puerta con llave. [ 3 ]
Características
El núcleo de Tock está escrito en Rust . Este núcleo se basa en la seguridad de memoria y la seguridad de tipos de Rust para aislar sus componentes. Este aislamiento facilita la escritura de extensiones seguras para el sistema operativo, ya que un componente no puede modificar la memoria de otro.
El sistema utiliza una abstracción de procesos que proporciona un aislamiento completo de los recursos de memoria y CPU entre las aplicaciones y el núcleo. Esto permite que las aplicaciones Tock se escriban en cualquier lenguaje. [ 4 ]
El núcleo Tock no tiene un montón compartido y, por lo tanto, no admite la asignación dinámica de memoria dentro del núcleo. Toda la memoria del núcleo se asigna estáticamente . Los procesos de aplicación pueden asignar memoria dinámicamente desde su propia memoria. [ 5 ]
Cuando la memoria del dispositivo se asigna estáticamente, el software del kernel para gestionar abstracciones compartidas, como las interfaces de radio, debe tomar una decisión estática sobre el número de solicitudes que admitirá. Tock permite que los componentes del kernel mantengan el estado para las solicitudes dinámicas de los procesos a los servicios del kernel mediante un mecanismo llamado concesión. Cada proceso tiene una región de su memoria llamada región de concesión, a la que solo el kernel de Tock puede acceder. Mediante la región de concesión, el kernel puede asignar memoria dinámicamente desde la memoria del proceso. [ 6 ]
Tock admite las siguientes características, que a veces se encuentran en sistemas operativos embebidos : concurrencia, fiabilidad ante el agotamiento de recursos, aislamiento de fallos, eficiencia de memoria y actualizaciones de aplicaciones en tiempo de ejecución. [ 7 ] [ 8 ] El sistema operativo también es personalizable para ejecutarse en diferentes plataformas y módulos de planificación. [ 9 ]
Desarrollo y lanzamiento
- El 9 de mayo de 2016, Tock fue presentado en la conferencia OSDI. Esta fue la primera versión de Tock.
- El 13 de febrero de 2018 se lanzó Tock 1.0. Esta fue la primera versión de actualización continua , que añadió compatibilidad con los chips de las series nRF y TM4C. También se incluyeron algunas bibliotecas de controladores compatibles con la interfaz de llamadas al sistema de la versión 1.0.
- El 25 de abril de 2018 se lanzó la versión 1.1. Esta incluía una nueva interfaz de registro y un modo de suspensión profunda automático para la mayoría de los periféricos SAM4L .
- El 30 de noviembre de 2018 se lanzó Tock 1.3. Esta versión añadió compatibilidad para que Tock se ejecutara en plataformas que no fueran Cortex-M y una interfaz para que el sistema operativo enviara y recibiera paquetes UDP .
- La versión 1.4 de Tock se lanzó el 18 de octubre de 2019 e incluía compatibilidad con arquitecturas RISC-V .
- El 30 de abril de 2020 se lanzó Tock versión 1.5. Incluía nuevas funciones para eliminar la protección contra errores del análisis TBF en el kernel y añadía componentes genéricos.
- La versión 1.6 se lanzó el 23 de octubre de 2020. Esta versión añadió una función de planificador, compatibilidad con cuatro nuevas placas e incluyó compatibilidad con UART a través de USB .
- El 27 de agosto de 2021 se lanzó la versión 2.0. Esta versión incorporó dos nuevas llamadas al sistema: AllowReadOnly y Exit . Además, Tock 2.0 requería que las aplicaciones se compilaran para la nueva interfaz de llamadas al sistema .
- Tock 2.1 se lanzó el 7 de septiembre de 2022. La versión 2.1 incluía compatibilidad con nuevos HIL y placas, correcciones de errores y una nueva interfaz de llamadas al sistema.
- El 6 de enero de 2023 se lanzó la versión 2.1.1. Corrigió un problema relacionado con errores en las llamadas al sistema. [ 10 ]
Recepción
Tock ha sido bien recibido por la comunidad de microcontroladores y cuenta con más de 190 colaboradores de código abierto a octubre de 2024. [ 11 ] [ 12 ] En 2022, el firmware Ti50 en el chip de seguridad de Google (GSC) en Chromebooks comenzó a usar Tock. [ 13 ] El chip raíz de confianza Pluton de Microsoft también usa Tock. [ 14 ] Google usa Tock para su implementación de clave de seguridad OpenSK. [ 15 ]
Véase también
Referencias
- ↑ "Tock Port a RISC-V" . Laboratorio Lincoln del MIT . Consultado el 12 de octubre de 2024 .
- ↑ "Agenda Tock World 7" . Fundación Tock.
Uno de nuestros socios SoC ha optado por implementar Pluton utilizando un núcleo x86 integrado. Para dar soporte a esta plataforma, nuestro equipo creó una adaptación de Tock OS para la arquitectura x86.
- ↑ "Entrevista con Amit Levy" (PDF) . Consultado el 12 de octubre de 2024 .
- ↑ Levy, Amit; Campbell, Bradford; Ghena, Branden; Giffin, Daniel B.; Leonard, Shane; Pannuto, Pat; Dutta, Prabal; Levis, Philip (6 de noviembre de 2017). «El sistema operativo integrado Tock». Actas de la 15.ª Conferencia ACM sobre sistemas de sensores de red integrados . Nueva York, NY, EE. UU.: ACM. págs. 1-2 . doi : 10.1145/3131672.3136988 . ISBN 978-1-4503-5459-2.
- ↑ "Controladores de dispositivos Linux: Tutorial de desarrollo de controladores Linux" . Apriorit . 09/09/2020 . Consultado el 30/12/2024 .
- ↑ "Diseño del sistema operativo Tock" .
- ↑ "Multiprogramación segura y eficiente de un ordenador de 64 kB" (PDF) . Consultado el 12 de octubre de 2024 .
- ↑ "Capas de abstracción y eficiencia energética en Tock, un entorno de ejecución basado en Rust para el Internet de las cosas" (PDF) . Consultado el 12 de octubre de 2024 .
- ↑ "Tock" . OSRTOS . 12 de febrero de 2019. Consultado el 12 de octubre de 2024 .
- ↑ Caso, Uso (06-01-2023). "Versiones · tock/tock" . GitHub . Consultado el 12-10-2024 .
- ↑ "Tock: un sistema operativo integrado seguro para microcontroladores – OSnews" . OSnews . 3 de junio de 2024. Consultado el 12 de octubre de 2024 .
- ↑ (CNXSoft), Jean-Luc Aufranc (13 de febrero de 2018). "Tock, sistema operativo de código abierto para sistemas IoT seguros, se ejecuta en microcontroladores Arm Cortex-M" . CNX Software - Embedded Systems News . Consultado el 12 de octubre de 2024 .
- ↑ "Lanzamientos de firmware Ti50" . Consultado el 19 de octubre de 2024 .
- ↑ "Agenda Tock World 7" . Fundación Tock.
Los socios de SoC tienen cierta flexibilidad para dictar cómo se implementa el núcleo Pluton; sin embargo, Microsoft es propietaria del firmware y ha optado por utilizar Tock OS como plataforma común para (casi) todos los productos de firmware de Pluton.
- ↑ "Presentamos OpenSK: una implementación de clave de seguridad totalmente de código abierto" . Blog de seguridad en línea de Google . 30 de enero de 2020. Consultado el 6 de noviembre de 2024 .
Enlaces externos
- Sitio web oficial
- tock en GitHub
- Sistemas operativos integrados
- Sistemas operativos ARM
- Sistemas operativos de software libre