O soporte de Rust para o núcleo de Linux enfróntase ás críticas de Torvalds

Linus Torvalds revisou os parches que implementaban a capacidade de crear controladores na linguaxe Rust para o núcleo de Linux, e fixo algúns comentarios críticos.

As maiores queixas foron causadas pola posibilidade potencial de pánico () en situacións de erro, por exemplo, nunha situación de pouca memoria, cando as operacións de asignación de memoria dinámica, incluso dentro do núcleo, poden fallar. Torvalds afirmou que tal enfoque no núcleo é fundamentalmente inaceptable e, se non se entende este punto, pode desactivar completamente calquera código que intente utilizar tal enfoque. Por outra banda, o desenvolvedor do parche estivo de acordo con este problema e considera que se pode solucionar.

Outro problema foron os intentos de usar tipos de coma flotante ou de 128 bits, que non son aceptables para ambientes como o núcleo de Linux. Isto resultou ser un problema máis grave, xa que polo momento a biblioteca principal de Rust é indivisible e representa unha gran mancha: non hai forma de solicitar só algunhas das funcións, evitando o uso dunha ou outra funcionalidade problemática. Resolver o problema pode requirir cambios no compilador de ferruxe e nas bibliotecas, aínda que polo momento o equipo aínda non ten unha estratexia sobre como implementar a modularización das bibliotecas lingüísticas.

Ademais, Torvalds sinalou que o exemplo do controlador proporcionado era inútil e recomendounos usar como exemplo algún controlador que resolva un dos problemas reais.

Actualización: Google anunciou a súa participación na iniciativa para impulsar o soporte de Rust no núcleo de Linux e proporcionou razóns técnicas para introducir Rust para combater os problemas derivados dos erros de memoria. Google cre que Rust está preparado para unirse a C como linguaxe para desenvolver compoñentes do núcleo de Linux. O artigo tamén ofrece exemplos de uso da linguaxe Rust para desenvolver controladores do núcleo, no contexto do seu uso na plataforma Android (Rust está recoñecido como unha linguaxe oficialmente compatible para o desenvolvemento de Android).

Nótase que Google preparou un prototipo inicial dun controlador escrito en Rust para o mecanismo de comunicación entre procesos de Binder, o que permitirá unha comparación detallada do rendemento e a seguridade das implementacións de Binder en C e Rust. Na súa forma actual, o traballo aínda non está completo, pero para case todas as abstraccións básicas da funcionalidade do núcleo necesarias para que Binder funcione, preparáronse capas para usar estas abstraccións no código Rust.

Fonte: opennet.ru

Engadir un comentario