Firmware em Rust: estratégias de implementação e modelos de programação confiáveis visando aplicações concorrentes em tempo real

Detalhes bibliográficos
Autor(a) principal: Silva, Cecília Carneiro e
Data de Publicação: 2019
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UFU
Texto Completo: https://repositorio.ufu.br/handle/123456789/26527
http://dx.doi.org/10.14393/ufu.di.2019.2040
Resumo: 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.
id UFU_7fd15fc6d4660dd39029811585830639
oai_identifier_str oai:repositorio.ufu.br:123456789/26527
network_acronym_str UFU
network_name_str Repositório Institucional da UFU
repository_id_str
spelling Firmware em Rust: estratégias de implementação e modelos de programação confiáveis visando aplicações concorrentes em tempo realFirmware in Rust: reliable implementation strategies and programming models targeting concurrent and real-time applicationsCyber Physical SystemsEngenharia ElétricaEngenharia de SoftwareSoftware EngineeringLinguagem RustRust LanguageCNPQ::ENGENHARIAS::ENGENHARIA ELETRICAEmbedded 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.CAPES - Coordenação de Aperfeiçoamento de Pessoal de Nível SuperiorDissertação (Mestrado)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.Universidade Federal de UberlândiaBrasilPrograma de Pós-graduação em Engenharia ElétricaAlmeida, Marcelo Barros dehttp://lattes.cnpq.br/0711663486251657Coelho, Ernane Antônio Alveshttp://lattes.cnpq.br/9183492978798433Cunha, Márcio José dahttp://lattes.cnpq.br/5012626154282569Almeida, Rodrigo Maximiano Antunes dehttp://lattes.cnpq.br/4546176200819713Silva, Cecília Carneiro e2019-08-05T18:46:57Z2019-08-05T18:46:57Z2019-07-10info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfSILVA, 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.https://repositorio.ufu.br/handle/123456789/26527http://dx.doi.org/10.14393/ufu.di.2019.2040porhttp://creativecommons.org/licenses/by-nc-nd/3.0/us/info:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFUinstname:Universidade Federal de Uberlândia (UFU)instacron:UFU2020-11-18T13:14:06Zoai:repositorio.ufu.br:123456789/26527Repositório InstitucionalONGhttp://repositorio.ufu.br/oai/requestdiinf@dirbi.ufu.bropendoar:2020-11-18T13:14:06Repositório Institucional da UFU - Universidade Federal de Uberlândia (UFU)false
dc.title.none.fl_str_mv Firmware em Rust: estratégias de implementação e modelos de programação confiáveis visando aplicações concorrentes em tempo real
Firmware in Rust: reliable implementation strategies and programming models targeting concurrent and real-time applications
title Firmware em Rust: estratégias de implementação e modelos de programação confiáveis visando aplicações concorrentes em tempo real
spellingShingle Firmware em Rust: estratégias de implementação e modelos de programação confiáveis visando aplicações concorrentes em tempo real
Silva, Cecília Carneiro e
Cyber Physical Systems
Engenharia Elétrica
Engenharia de Software
Software Engineering
Linguagem Rust
Rust Language
CNPQ::ENGENHARIAS::ENGENHARIA ELETRICA
title_short Firmware em Rust: estratégias de implementação e modelos de programação confiáveis visando aplicações concorrentes em tempo real
title_full Firmware em Rust: estratégias de implementação e modelos de programação confiáveis visando aplicações concorrentes em tempo real
title_fullStr Firmware em Rust: estratégias de implementação e modelos de programação confiáveis visando aplicações concorrentes em tempo real
title_full_unstemmed Firmware em Rust: estratégias de implementação e modelos de programação confiáveis visando aplicações concorrentes em tempo real
title_sort Firmware em Rust: estratégias de implementação e modelos de programação confiáveis visando aplicações concorrentes em tempo real
author Silva, Cecília Carneiro e
author_facet Silva, Cecília Carneiro e
author_role author
dc.contributor.none.fl_str_mv Almeida, Marcelo Barros de
http://lattes.cnpq.br/0711663486251657
Coelho, Ernane Antônio Alves
http://lattes.cnpq.br/9183492978798433
Cunha, Márcio José da
http://lattes.cnpq.br/5012626154282569
Almeida, Rodrigo Maximiano Antunes de
http://lattes.cnpq.br/4546176200819713
dc.contributor.author.fl_str_mv Silva, Cecília Carneiro e
dc.subject.por.fl_str_mv Cyber Physical Systems
Engenharia Elétrica
Engenharia de Software
Software Engineering
Linguagem Rust
Rust Language
CNPQ::ENGENHARIAS::ENGENHARIA ELETRICA
topic Cyber Physical Systems
Engenharia Elétrica
Engenharia de Software
Software Engineering
Linguagem Rust
Rust Language
CNPQ::ENGENHARIAS::ENGENHARIA ELETRICA
description 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.
publishDate 2019
dc.date.none.fl_str_mv 2019-08-05T18:46:57Z
2019-08-05T18:46:57Z
2019-07-10
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv 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.
https://repositorio.ufu.br/handle/123456789/26527
http://dx.doi.org/10.14393/ufu.di.2019.2040
identifier_str_mv 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.
url https://repositorio.ufu.br/handle/123456789/26527
http://dx.doi.org/10.14393/ufu.di.2019.2040
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv http://creativecommons.org/licenses/by-nc-nd/3.0/us/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv http://creativecommons.org/licenses/by-nc-nd/3.0/us/
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Federal de Uberlândia
Brasil
Programa de Pós-graduação em Engenharia Elétrica
publisher.none.fl_str_mv Universidade Federal de Uberlândia
Brasil
Programa de Pós-graduação em Engenharia Elétrica
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFU
instname:Universidade Federal de Uberlândia (UFU)
instacron:UFU
instname_str Universidade Federal de Uberlândia (UFU)
instacron_str UFU
institution UFU
reponame_str Repositório Institucional da UFU
collection Repositório Institucional da UFU
repository.name.fl_str_mv Repositório Institucional da UFU - Universidade Federal de Uberlândia (UFU)
repository.mail.fl_str_mv diinf@dirbi.ufu.br
_version_ 1805569613369442304