Nova solução

systemd aposta em Varlink para o futuro, reduzindo dependência do D-Bus

No evento "All Systems Go", Lennart Poettering destacou os desafios do D-Bus como ferramenta de IPC no systemd e apresentou o Varlink como uma solução futura promissora, com novos componentes chegando no systemd 257.

Logo do systemd com fundo escuro, representando o gerenciador de sistema e serviços no Linux

O evento anual “All Systems Go”, que aconteceu em Berlim, trouxe novidades interessantes para o mundo do systemd. Uma das apresentações mais notáveis foi a de Lennart Poettering, que abordou os desafios contínuos do D-Bus como ferramenta de comunicação entre processos (IPC) no systemd e como o Varlink pode se tornar uma solução viável para o futuro.

Apresentação de Lennart Poettering sobre o Varlink na conferência All Systems Go! 2024, realizada em Berlim
Imagem: Print do vídeo durante a apresentação de Lennart Poettering

Os obstáculos do systemd com o D-Bus não são novidade. Ao longo dos anos, houve várias tentativas de melhorar o D-Bus, como com o KDBUS, que não obteve sucesso, e o BUS1, uma iniciativa dos desenvolvedores do systemd para criar um IPC no kernel. Entretanto, o BUS1 também não avançou muito, deixando o systemd ainda dependente do D-Bus, mas com uma alternativa mais rápida e confiável: o Dbus-Broker, que mantém a compatibilidade com o D-Bus.

Sem perspectiva de que o D-Bus seja integrado ao kernel Linux para IPC, os desenvolvedores do systemd estão agora voltados para o Varlink como solução futura. O Varlink é uma interface de descrição e protocolo documentada no site Varlink.org, projetada para ser uma solução extremamente simples de IPC.

Apesar de suas limitações, como uma marshalling mais lenta em comparação com o D-Bus ao lidar com grandes objetos, o Varlink traz vantagens significativas. Ele utiliza JSON e proporciona uma abordagem mais simplificada do que o atual status do D-Bus no systemd. Com o lançamento do systemd 257, serão introduzidos novos componentes na biblioteca libsystemd: o sd-json e o sd-varlink. Além disso, haverá o varlinkctl, uma nova ferramenta de linha de comando dedicada ao Varlink dentro do systemd.

Para aqueles interessados nos detalhes dos planos do systemd sobre o uso do Varlink e os desafios enfrentados com o D-Bus, a apresentação de Lennart Poettering está disponível no site media.ccc.de e também no PDF de slides.