Por favor, use este identificador para citar o enlazar este ítem: https://repositorio.ufu.br/handle/123456789/26527
ORCID:  http://orcid.org/0000-0002-3032-2938
Tipo de documento: Dissertação
Tipo de acceso: Acesso Aberto
Título: Firmware em Rust: estratégias de implementação e modelos de programação confiáveis visando aplicações concorrentes em tempo real
Título (s) alternativo (s): Firmware in Rust: reliable implementation strategies and programming models targeting concurrent and real-time applications
Autor: Silva, Cecília Carneiro e
Primer orientador: Coelho, Ernane Antônio Alves
Primer coorientador: Almeida, Marcelo Barros de
Primer miembro de la banca: Cunha, Márcio José da
Segundo miembro de la banca: Almeida, Rodrigo Maximiano Antunes de
Resumen: Os sistemas embarcados são vitais na transição para um mundo mais conectado. Eles se diferem dos tradicionais sistemas de informação por uma série de fatores, largamente influenciados, pela proximidade (interseção) com o “mundo real”. De forma geral, programas computacionais podem ser vistos, ou melhor, construídos sob duas perspectivas: seja a partir de uma visão próxima à máquina, ou através de abstrações de alto nível. No que tange os software embarcados, é nítido o domínio da primeira classe de atuação. As recentes falhas, todavia, propõe uma mudança de paradigma, ao acreditar que os métodos vigentes não são suficientes para lidar com as dificuldades contemporâneas. Rust, mesmo sendo uma linguagem de sistemas, se alinha com a segunda tendência de pensamento. Apoiada em verificações estáticas, e algumas validações dinâmicas, essa linguagem oferece ao desenvolvedor a possibilidade de, idiomaticamente, criar soluções confiáveis. Rust combina técnicas que, até então, eram restritas à linguagens de pesquisa, de uma forma surpreendentemente ergonômica e eficiente. O presente trabalho, amparado em modelos de computação pertinentes ao escopo, explora o uso dessa linguagem no contexto das aplicações microcontroladas. Após breve introdução, apresenta-se, como contribuição, uma biblioteca de abstração de hardware, em Rust, construída com a finalidade de traduzir propriedades “mecânicas” do hardware para abstrações seguras em software. Em seguida, são explicitados os mecanismos de controle da complexidade proveniente da natureza física dessas aplicações. Um modelo de temporalização via timer-wheels e dois padrões de construção de software, de alto nível, complementares o modelo de baixo nível (tarefas e recursos) pregado pela framework RTFM (Real-Time for The Masses) são as demais contribuições deste trabalho. Em suma, as técnicas aqui apresentadas foram pensadas para adaptar a linguagem Rust às características das aplicações embarcadas. O resultado são software mais confiáveis e seguros.
Abstract: Embedded systems are particularly vital in the transition to a more connected world. They differ from traditional information systems by a series of factors, largely influenced by proximity (intersection) with the "real world". In general, computer programs can be seen, or rather, constructed from two perspectives: either from a computer-oriented view, or through computation-oriented abstractions. With regard to embedded software, the domain of the first class of thinking is clear. The recent flaws, however, propose a paradigm shift, believing that current methods are not enough to deal with contemporary difficulties. Rust, even though it is a systems language, aligns with the second thinking trend. Based on static verifications, and some dynamic validations, this language gives the developer the possibility to create trustworthy solutions. Rust combines techniques that until then were restricted to search languages ​​in a surprisingly ergonomic and efficient way. The present work, based on computation models pertinent to the scope, explore the use of this language in the context of microcontrolled applications. After a brief introduction, the contribution is presented, a hardware abstraction library, in Rust, built for the purpose of translating "mechanical" properties of the hardware into secure abstractions into software. Then, mechanisms to control the complexity coming from the physical nature of these applications are explained. A “timer-wheel” timing model and two high-level software building standards, complementary to the low-level model (tasks and resources) preached by the RTFM framework (Real-Time for The Masses) are the other contributions of this work. In short, the techniques presented here were designed to adapt the Rust language to the characteristics of embedded applications. The result is more reliable and secure software.
Palabras clave: Cyber Physical Systems
Engenharia Elétrica
Engenharia de Software
Software Engineering
Linguagem Rust
Rust Language
Área (s) del CNPq: CNPQ::ENGENHARIAS::ENGENHARIA ELETRICA
Idioma: por
País: Brasil
Editora: Universidade Federal de Uberlândia
Programa: Programa de Pós-graduação em Engenharia Elétrica
Cita: SILVA, Cecília Carneiro e. Firmware em Rust: estratégias de implementação e modelos de programação confiáveis visando aplicações concorrentes em tempo real. Dissertação (Mestrado em Engenharia Elétrica) - Universidade Federal de Uberlândia, Uberlândia, 2019. DOI http://dx.doi.org/10.14393/ufu.di.2019.2040.
Identificador del documento: http://dx.doi.org/10.14393/ufu.di.2019.2040
URI: https://repositorio.ufu.br/handle/123456789/26527
Fecha de defensa: 10-jul-2019
Aparece en las colecciones:DISSERTAÇÃO - Engenharia Elétrica

Ficheros en este ítem:
Fichero Descripción TamañoFormato 
FirmwareEmRust.pdfDissertação12.01 MBAdobe PDFVista previa
Visualizar/Abrir


Este ítem está sujeto a una licencia Creative Commons Licencia Creative Commons Creative Commons