Rust como lenguaje de programación unificado para IoT

El presente trabajo analiza el uso del lenguaje de programación Rust en el ámbito de Internet de las Cosas (IoT). Se plantea el uso del Rust en las áreas de computación en la nube, gateways y nodos edge, y programación embebida de nodos IoT. Se analizan las propiedades de seguridad de memoria y conc...

Full description

Bibliographic Details
Author: Romera Corral, Marco
Format: master thesis
Publication Date:2023
Country:España
Institution:Universidad Complutense de Madrid (UCM)
Repository:Docta Complutense
Language:English
OAI Identifier:oai:docta.ucm.es:20.500.14352/88541
Online Access:https://hdl.handle.net/20.500.14352/88541
Access Level:Open access
Keyword:004(043.3)
Rust
IoT
Concurrencia
Seguridad
RISC-V
I2C
WebAssembly
Asíncrono
Fsm
Concurrency
Security
Asynchronous
Informática (Informática)
33 Ciencias Tecnológicas
Description
Summary:El presente trabajo analiza el uso del lenguaje de programación Rust en el ámbito de Internet de las Cosas (IoT). Se plantea el uso del Rust en las áreas de computación en la nube, gateways y nodos edge, y programación embebida de nodos IoT. Se analizan las propiedades de seguridad de memoria y concurrencia de Rust y su adecuación al entorno IoT. En particular se desarrollan dos ejemplos de aplicación en un nodo IoT basado en placa de desarrollo ESP32-C3-DevKit-RUST-1 con la plataforma RISC-V. El nodo dispone de sensores internos de temperatura, humedad y un acelerómetro (IMU) así como sensores I²C externos. Los ejemplos comparan modelos de concurrencia distintos. El primer ejemplo se basa en la librería estándar de Rust implementada con el sistema ESP-IDF (Espressif IoT Development Framework) y el uso de threads y servicios de un sistema RTOS (Real Time Operating System). El segundo ejemplo utiliza programación asíncrona, prescindiendo de la librería estándar (no_std) y por tanto del sistema operativo, y utiliza la librería Embassy que facilita un ejecutor asíncrono.