Após três meses de desenvolvimento, está disponível a versão do gerenciador de sistema systemd 262. A nova versão implementa a incorporação de um conjunto mínimo de arquivos unit, oferece suporte à construção com vinculação estática, integrou-se ao dm-clone para clonagem de dispositivos em bloco, adicionou a manutenção de um banco de dados de arquivos instalados no systemd-sysupdate e proporciona verificação criptográfica dos relatórios do systemd-report.
Entre as mudanças na nova versão:
- No arquivo executável do gerenciador de sistema, um conjunto de arquivos unit básicos (basic.target, sysinit.target, multi-user.target, reboot.target, shutdown.target, systemd-poweroff.service, etc.) foi incorporado, que é utilizado quando não é possível carregar os arquivos unit do disco. Essa incorporação permite que contêineres com processo init (PID1) baseados no systemd sejam iniciados sem a necessidade de instalar os arquivos unit.
- Foi adicionada a compatibilidade para a construção na forma de um único arquivo executável estaticamente vinculado, que pode ser usado para inicializar e iniciar serviços em contêineres com uma configuração mínima. Para construção com vinculação estática, ao iniciar o meson, devem ser especificadas as flags: "—default-library=static —prefer-static -Dbuild-static=true -Dsystemd-multicall-binary=true".
- Integração do suporte ao módulo do kernel dm-clone, permitindo a criação de um clone de um dispositivo em bloco disponível em modo somente leitura, que permite gravação. As configurações de /etc/clonetab são processadas pelo systemd-clonesetup-generator e são salvas na forma de unidades systemd-clonesetup@.service, vinculadas ao clonesetup.target. Para a criação e remoção de clones de dispositivos em bloco, foi adicionada a ferramenta systemd-clonesetup.
- As funcionalidades da ferramenta systemd-sysupdate foram ampliadas para detectar, baixar e instalar automaticamente atualizações usando um mecanismo atômico de substituição de partições, arquivos ou diretórios (são utilizados dois partições/arquivos/diretórios independentes, um dos quais contém o recurso em funcionamento atual e o outro recebe a próxima atualização, após o que as partições/arquivos/diretórios são trocados). Foi implementada a manutenção de um banco de dados com informações sobre todos os arquivos instalados. A comando "systemd-sysupdate cleanup" foi adicionada para remover arquivos que se tornaram desnecessários após a atualização do sistema ou que não correspondem ao modelo atual de configuração. Comandos como "systemd-sysupdate enable-feature/disable-feature/enable-component/disable-component" foram adicionados para gerenciar a ativação das funcionalidades e componentes. A conceito de componentes recomendados foi implementado, por exemplo, com o comando "systemd-sysupdate enable-component --component-suggested" podem ser ativados drivers necessários para o funcionamento do hardware existente. A opção "--component-all" foi adicionada ao comando "systemd-sysupdate update" para atualizar todos os componentes de uma vez.
- No systemd-report, foi adicionada a opção "--sign=", que implementa a capacidade de assinar digitalmente os relatórios gerados pelos comandos "generate" e "upload". Três backends foram propostos para a assinatura dos relatórios: systemd-report-sign-plain (Ed25519), systemd-report-sign-tsm (configfs TSM) e systemd-report-sign-tpm2 (TPM2 PCR).
- Para suavizar a carga em caso de reinicialização em massa de serviços após falhas, foi proposto o parâmetro RestartRandomizedDelaySec, que adiciona um atraso aleatório antes do reinício automático do serviço, limitado a margens definidas.
- Nos slices-units, foi adicionado o parâmetro ActivatingConcurrencyMax para limitar o número máximo de unidades ativas simultaneamente na hierarquia.
- Para serviços, foi implementado o parâmetro LUOSession, destinado a criar sessões do Live Update Orchestrator, utilizadas para atualizar o kernel em modo ao vivo sem interromper a operação e sem perder o estado do sistema, dispositivos e processos.
- Nos socket-units, foram implementados os parâmetros XAttrEntryPoint, XAttrListen e XAttrAccept, permitindo anexar atributos estendidos (xattr) a sockets UNIX para sua marcação.
- Para a designação automática de nomes de host fáceis de lembrar (\/etc\/hostname), foi implementado um novo caractere de substituição «$», que é substituído por um elemento da lista de palavras selecionado por meio de hashing associado ao identificador do sistema.
- Na ferramenta run0 foram adicionadas opções compatíveis com sudo -k/—reset-timestamp, -K/—remove-timestamp e -v/—validate para revogar ou atualizar a autorização temporária realizada via polkit.
- Na ferramenta systemd-escape foi adicionada a opção «—stdin» para leitura de strings da entrada padrão.
- Na vconsole foi adicionada a variável de ambiente FONT_SCALE para ajustar o nível de escala das fontes, semelhante ao parâmetro do núcleo vconsole.font_scale (atualmente, apenas 100% e 200% são suportados).
- Todas as comandos que suportam a opção «—help» agora incluem a opção «—introspect-cli» para gerar dicas em formato JSON, facilitando a automação na verificação da presença de opções necessárias de extensões e scripts.
- Na autenticação usando tokens FIDO2, agora é exibido o contador de tentativas restantes para inserir o código PIN.
- No systemd-networkd, na seção «[Match]» dos arquivos .link, .network e .netdev, foi adicionada a verificação MachineTag, que permite vincular as configurações de rede à presença ou ausência de tags específicas. O comando «networkctl reload» agora inclui a opção «—no-reconfigure» para recarregar os arquivos .network e .netdev do disco sem reconfigurar as links de rede existentes. Nos arquivos .network, nos parâmetros IPoIB, IPVLAN, IPVTAP, MACsec, MACVLAN, MACVTAP, Tunnel, VLAN, VXLAN e Xfrm, agora é permitido especificar vários nomes de dispositivos de rede, separados por espaço.
- No systemd-journald, o mecanismo FSS (Forward Secure Sealing), que garante a imutabilidade dos logs, foi transferido para o uso de funções criptográficas da biblioteca OpenSSL em vez de libgcrypt. A biblioteca libsystemd não está mais vinculada ao libgcrypt.
- Na ferramenta systemd-sysctl foi adicionada a opção «—verify», pela qual o valor do parâmetro sysctl é lido após a configuração e verificado com o valor original para assegurar que a modificação foi aplicada. Foram adicionadas opções «—save=FILENAME» e «—revert=FILENAME» para salvar e restaurar configurações do sysctl localizadas no diretório \/run\/sysctl.d\/.
- Adicionada a compatibilidade para compilação com a biblioteca OpenSSL 4.
Fonte: opennet.ru
