systemd 261 e liberated-systemd 261

Após três meses de desenvolvimento disponível o lançamento do gerente de sistema systemd 261. As principais mudanças: preparação para suporte à API para verificação de idade, suporte às subsistemas Kexec Handover e Live Update Orchestration para reinicialização sem perda de estado, subsistema IMDS (Instance Metadata Service), funcionalidade para proteção de inicialização em sistemas sem TPM físico (Trusted Platform Module), componente systemd-sysinstall com a implementação do instalador.

Entre mudanças na nova versão:

  • Adicionado um novo componente systemd-sysinstall com a implementação de um instalador simples do sistema operacional, que pode ser gerenciado a partir da linha de comando ou através de uma interface de texto interativa. A funcionalidade do systemd-sysinstall foi formada a partir das capacidades já existentes do systemd: para configurar as partições do disco foi utilizado systemd-repart, para instalar o kernel e gerar o menu de inicialização — o comando “bootctl link”, para instalar o carregador de inicialização systemd-boot — o comando “bootctl install”, para configuração inicial do sistema instalado (por exemplo, seleção do local e do layout do teclado) — systemd-creds.
  • No âmbito da preparação para atender aos requisitos das leis sobre a integração no SO da API para verificação de idade na base de dados userdb foi adicionado um campo birthDate com a data de nascimento do usuário. O campo adicionado poderá ser utilizado no portal xdg-desktop-portal em desenvolvimento para distribuições e no serviço AccountsService para fornecer aplicações com informações sobre a faixa etária do usuário através da interface D-Bus org.freedesktop.AgeVerification1 ou org.freedesktop.ParentalControls. Para definir a idade na utilidade homectl, foi adicionada a opção —birth-date.
  • No manipulador PID1 foi adicionada a suporte a subsistemas do núcleo Linux LUO (Live Update Orchestration) e KHO (Kexec Handover), permitindo reiniciar e atualizar o kernel completamente sem parar o funcionamento e sem perder o estado do sistema, dispositivos e processos. KHO proporciona a capacidade de iniciar um novo núcleo a partir do antigo sem perder o estado do sistema, e LUO implementa a preservação do estado dos dispositivos e da memória operacional, além de garantir a continuidade das operações relacionadas a DMA e ao tratamento de interrupções.
    No systemd, para unidades de sistema e do usuário, foi implementada a capacidade de preservar descritores de arquivos antes da chamada kexec e recuperá-los após a reinicialização do núcleo através da kexec. Nas unidades, também é possível criar sessões próprias. LUO, armazenados e recuperados durante a execução do kexec. Para habilitar a preservação do estado do armazenamento de descritores de arquivos, a configuração FileDescriptorStorePreserve=yes deve ser utilizada.
  • O subsistema foi implementado systemd-imdsd, que fornece uma API baseada em Varlink IPC para acesso a programas locais aos serviços IMDS (Instance Metadata Service), oferecidos por diferentes provedores de nuvem. O IMDS permite que máquinas virtuais obtenham informações sobre o ambiente de nuvem, por exemplo, é possível obter dados sobre a configuração de rede, localização geográfica do nó, tipo de CPU e tamanho do armazenamento. O systemd-imdsd oferece uma API de baixo nível para acesso a campos individuais, bem como uma interface de alto nível para consultas por chaves típicas, mapeadas para chaves específicas de plataformas de nuvem individuais. Para interagir com o systemd-imdsd, foi adicionada a ferramenta systemd-imds, que permite importar campos do IMDS para o sistema local de contas.
    Para reconhecer plataformas de nuvem com base nas informações do SMBIOS e determinar a funcionalidade do IMDS disponível no nó atual, um novo banco de dados hwdb.d/40-imds.hwdb foi adicionado. O reconhecimento foi implementado para plataformas de nuvem como Amazon EC2, Microsoft Azure, Google Compute Engine, Hetzner, Oracle Cloud, Scaleway, Tencent Cloud, Alibaba ECS e Vultr. Um gerador systemd-imds-generator está disponível para automaticamente fornecer um serviço para obtenção de dados via IMDS quando uma plataforma de nuvem suportada for detectada. É possível criar imagens universais que suportem o uso do IMDS ao serem executadas em ambientes de nuvem, mas também podem operar sem o IMDS.
  • Em systemd-stub foi implementada a funcionalidade de boot secret, permitindo a geração de uma chave baseada em uma variável EFI, armazenada em uma área inacessível ao sistema operacional e inicializada com um valor aleatório. Na initrd, a chave é passada através do arquivo /.extra/boot-secret. Essa funcionalidade pode ser necessária para obter uma chave aleatória específica do sistema para verificar o processo de inicialização ou criptografia em sistemas sem TPM (Trusted Platform Module) de hardware.
  • Um serviço systemd-tpm2-swtpm.service foi adicionado para iniciar um emulador de chips TPM. swtpm (Emulador de TPM de Software), que pode ser usado para reverter automaticamente para a implementação de software TPM para inicialização segura em sistemas sem TPM de hardware. O TPM de software opera no espaço do usuário e não proporciona o mesmo nível de segurança que um TPM de hardware, mas em algumas situações é justificável seu uso em comparação com a operação sem TPM. Por exemplo, o TPM de software pode obter a chave de criptografia para as partições usando a nova funcionalidade 'boot secret' e utilizar a partição ESP (EFI System Partition) no disco para armazenar seu estado. Para ativar automaticamente o TPM de software, foi proposto o parâmetro de linha de comando kernel systemd.tpm2_software_fallback.
  • Anunciado como estável e colocado em /usr/bin/ o componente systemd-sysupdate, destinado à detecção automática, download e instalação de atualizações usando um mecanismo atômico de substituição de partições, arquivos ou diretórios (usando duas partições/arquivos/diretórios independentes, onde um contém o recurso em execução atual e o outro instala a atualização pendente, após o que as partições/arquivos/diretórios são trocados).
  • Em systemd-resolved implementou a capacidade de sobrepor ou indicar novos registros DNS ao colocar arquivos em formato JSON nos diretórios systemd/resolve/static.d/. Ao contrário de /etc/hosts, nos novos arquivos é possível não apenas vincular endereços IP a nomes de host, mas também definir registros RR de DNS diferentes de 'A' e 'AAAA'. Além disso, no systemd-resolved foram adicionadas configurações de tamanho de cache DNS: DNSCacheSize, MulticastDNSCacheSize e LLMNRCacheSize.
  • Foi adicionada a ferramenta ‘storagectl’ para inspecionar dispositivos de armazenamento e gerenciar a conexão de dispositivos de bloco e sistemas de arquivos.
  • No âmbito de iniciativas para reduzir as dependências da libsystemd, foi implementado o carregamento dinâmico das bibliotecas libgnutls, libmicrohttpd, libcurl, libcrypto, libssl, libfdisk e libcryptsetup através da chamada dlopen() em situações onde suas funções são realmente necessárias.
  • Em systemd-tmpfiles adicionado o sinalizador —inline, permitindo definir diretrizes na linha de comando sem criar arquivos de configuração em tmpfiles.d/ e sem enviar configurações via STDIN. Um novo tipo de diretrizes k/K para definir capabilitiesFoi adicionado um arquivo de configuração tmpfiles.d/root.conf, configurando permissões de acesso 0555 (-r-xr-xr-x) para o diretório raiz (/) a fim de proteger contra a definição incorreta de permissões durante a formação dinâmica do sistema de arquivos raiz.
  • No utilitário bootctl Foi garantida a preservação de um backup do carregador systemd-boot e a escrita da versão antiga na UEFI como uma opção de inicialização alternativa.
  • Em systemd-vmspawn Foi adicionada a funcionalidade de inicialização direta do kernel sem o uso do firmware UEFI. Implementada a opção —firmware-features para ativar ou desativar seletivamente recursos específicos dos firmwares. Foi adicionado o modo —console=headless para iniciar a máquina virtual sem console e tela. Implementada a opção —image-disk-type para escolher o tipo de armazenamento em bloco utilizado na VM (virtio-blk, virtio-scsi, nvme, scsi-cd). Foi adicionada a opção —coco (Computação Confidencial) para habilitar o modo de criptografia de memória das máquinas virtuais utilizando a tecnologia AMD SEV-SNP.
  • Em systemd-hostnamed e /etc/machine-info foi adicionada a suporte para anexar etiquetas arbitrárias ao sistema atual, utilizando o parâmetro Tags. As etiquetas definidas podem, então, ser utilizadas para aplicar configurações de forma seletiva, com verificação através da expressão ConditionMachineTag.
  • Adicionadas configurações EventLoopRateLimitIntervalSec e EventLoopRateLimitBurst, limitando a intensidade do ciclo de processamento de eventos no PID1 para liberar recursos de CPU em caso de looping.
  • No gerenciador de serviços, foi implementada a configuração MinimumUptimeSec para definir um tempo mínimo de operação do sistema (15 segundos por padrão). Se a finalização ou reinicialização for iniciada antes que esse tempo expire, uma pausa correspondente é adicionada na fase de finalização.
  • Para os units, novas configurações foram implementadas: CPUSetPartition para definir o tipo de partição cpuset em cgroup (root, isolated, member), RestrictFileSystemAccess para permitir a execução apenas de arquivos executáveis verificados por assinatura digital com dm-verity, e CPUPressureWatch/CPUPressureThresholdSec/IOPressureWatch/IOPressureThresholdSec para obter notificações sobre alta carga de CPU e I/O.
  • A lista de métricas fornecidas pela ferramenta systemd-reportfoi ampliada. Por exemplo, foram adicionadas informações sobre o tamanho da memória física e núcleos de CPU ativos, dados sobre o conteúdo dos campos SMBIOS e /etc/machine-info, informações sobre suporte ao modo de Computação Confidencial e dados do fabricante dos chips TPM2.
  • Em systemd-oomd Foi implementada a capacidade de definir regras para filtrar processos em caso de falta de memória no sistema. As regras podem ser especificadas no diretório /etc/systemd/oomd/rules.d/ ou em unidades de serviço através da diretiva OOMRule.
  • Em systemd-socket-proxy Adicionada suporte para o protocolo PROXY, correspondente à primeira versão do protocolo haproxy.
  • Em systemd-networkd Implantado um novo backend sd-dhcp-relay para relays DHCP. As configurações na seção [DHCPServer] — BindToInterface, RelayTarget, RelayAgentCircuitId e RelayAgentRemoteId estão obsoletadas, devendo ser substituídas pela opção DHCPRelay na seção [Network] e uma série de novas configurações na seção [DHCPRelay] e no arquivo networkd.conf. Adicionada o comando networkctl dhcp-lease INTERFACE para salvar um dump com informações sobre o vínculo de IPs (DHCP lease).
  • jot para iniciar um contêiner, utilizando a ferramenta Adicionada a opção —restrict-address-families e, para os arquivos .nspawn, a configuração RestrictAddressFamilies para limitar os tipos de famílias de endereços de sockets utilizados no contêiner. Em futuras versões, apenas as famílias AF_INET, AF_INET6 e AF_UNIX serão permitidas por padrão.
  • O suporte ao antigo formato de banco de dados udev (versão 0.x) foi descontinuado. A atualização em tempo real das versões do systemd para a versão 247 (opennet.ru) não é mais suportada.
  • Ao compilar com a biblioteca C musl, agora é necessário pelo menos a versão musl 1.2.6.

Adicionalmente, pode-se destacar lançamento Apache Traffic Control liberated-systemd 261, um fork do systemd que elimina o código que pode ser usado para monitorar usuários. A atualização proposta consiste na remoção do código que adicionava um campo birthDate ao userdb com a data de nascimento do usuário, e a opção —birth-date na ferramenta homectl para definir a idade.

Fonte: linux.org.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster