Após três meses de desenvolvimento o lançamento do gerente de sistema .
Principais mudanças:
- Suporte adicionado para o controlador de recursos cpuset baseado em cgroups v2, fornecendo um mecanismo para vincular processos a CPUs específicas (configuração 'AllowedCPUs') e nós de memória NUMA (configuração 'AllowedMemoryNodes');
- Suporte adicionado para carregar configurações da variável EFI SystemdOptions para a configuração do systemd, permitindo ajustar o comportamento do systemd quando é complicado modificar os parâmetros da linha de comando do kernel e a configuração do disco é lida muito tarde (por exemplo, quando é necessário configurar opções relacionadas à hierarquia cgroup). Pode-se usar o comando 'bootctl systemd-efi-options' para definir a variável em EFI;
- Unidades agora suportam o carregamento de configurações de diretórios '{unit_type}.d/', vinculados aos tipos de unidade (por exemplo, 'service.d/'), que podem ser usados para adicionar configurações que abrangem todos os arquivos de unidade desse tipo;
- Para unidades de serviço, um novo modo de isolamento sandbox ProtectKernelLogs foi adicionado, permitindo proibir o acesso de um programa ao buffer de log do kernel, acessível através da chamada de sistema syslog (não confundir com a API de mesmo nome fornecida na libc). Se o modo for ativado, o acesso do aplicativo ao /proc/kmsg, /dev/kmsg e CAP_SYSLOG será bloqueado;
- Para unidades, foi introduzida a configuração RestartKillSignal, que permite redefinir o número do sinal usado para terminar o processo durante a reinicialização das tarefas (pode modificar o comportamento da parada do processo na fase de preparação para reinício);
- O comando 'systemctl clean' foi adaptado para uso com unidades de soquetes, montagem e swap (socket, mount, swap);
- Na fase inicial de carregamento, as restrições à intensidade de saída de mensagens do kernel através da chamada printk foram desativadas, permitindo acumular logs mais completos sobre o processo de inicialização em um estágio em que o armazenamento para logs ainda não está conectado (o log é acumulado no buffer circular do kernel). As configurações de limites para printk da linha de comando do kernel têm maior prioridade e podem redefinir o comportamento do systemd. Programas do systemd que escrevem diretamente logs em /dev/kmsg (isso ocorre apenas na fase inicial de carregamento) usam restrições internas separadas para evitar que o buffer fique lotado;
- O utilitário systemctl agora inclui o comando 'stop —job-mode=triggering', permitindo parar tanto a unidade especificada na linha de comando quanto todas as unidades que podem chamá-la;
- As informações sobre o estado da unidade agora incluem dados sobre unidades chamadas e chamadoras;
- Foi adicionada a possibilidade de usar a configuração 'RuntimeMaxSec' em unidades scope (anteriormente utilizada apenas em unidades de serviço). Por exemplo, 'RuntimeMaxSec' agora pode ser aplicada para limitar o tempo de sessões PAM através da criação de uma unidade scope
para a conta do usuário. O limite de tempo também pode ser definido através da opção systemd.runtime_max_sec nos parâmetros do módulo PAM pam_systemd; - Foi adicionada um novo grupo de chamadas de sistema '@pkey', que simplifica a adição de chamadas de sistema relacionadas à proteção de memória em containers e serviços;
- Na systemd-tmpfiles, foi adicionado o sinalizador 'w+' para gravação em modo de anexação no arquivo;
- Na saída do systemd-analyze, foram adicionadas informações sobre a conformidade da configuração de memória do kernel com as configurações do systemd (por exemplo, se algum programa de terceiros alterou os parâmetros do kernel);
- No systemd-analyze, foi adicionada a opção '--base-time', que permite calcular as informações do calendário em relação ao tempo especificado nesta opção, e não em relação ao tempo atual do sistema;
- No 'journalctl --update-catalog' foi assegurada a consistência na ordem dos elementos na saída (útil para organizar builds repetíveis);
- Foi adicionada a capacidade de especificar um valor padrão para a configuração 'WatchdogSec', utilizada em serviços systemd. Na etapa de compilação, o valor base pode ser definido através da opção '-Dservice-watchdog' (se um valor vazio for fornecido, o watchdog será desativado);
- Foi adicionada uma opção de compilação '-Duser-path' para substituir o valor de $PATH;
- Na ferramenta systemd-id128, foi adicionada a opção '-u' ('--uuid') para gerar identificadores de 128 bits em UUID (representação canônica do UUID);
- Agora, a compilação requer o libcryptsetup na versão 2.0.1 ou superior.
Mudanças relacionadas à configuração de rede:
- No systemd-networkd, foi adicionada a compatibilidade para reconfiguração de links em tempo real, para a qual foram adicionados os comandos 'reload' e 'reconfigure DEVICE...' no networkctl para recarregar configurações e reconfigurar dispositivos;
- No systemd-networkd, foi interrompido a criação de rotas padrão para links locais IPv4 com endereços intranet 169.254.0.0/16 (). A criação automática de rotas padrão para esses links anteriormente resultava em comportamentos inesperados e problemas de roteamento em alguns casos. Para retornar ao comportamento antigo, a configuração 'DefaultRouteOnDevice=yes' deve ser utilizada. Da mesma forma, a atribuição de endereços locais IPv6 foi encerrada se o roteamento local IPv6 para o link não estiver ativado;
- No systemd-networkd, ao conectar-se a redes sem fio no modo ad-hoc, por padrão é aplicada a configuração com endereçamento local para o link (link-local);
- Parâmetros RxBufferSize e TxBufferSize foram adicionados para configurar o tamanho dos buffers de recepção e transmissão da interface de rede;
- No systemd-networkd, foi implementada a declaração de rotas IPv6 adicionais, regulada através das opções Route e LifetimeSec na seção '[IPv6RoutePrefix]';
- No systemd-networkd, adicionou-se a capacidade de configuração de rotas 'next hop' utilizando as opções 'Gateway' e 'Id' na seção '[NextHop]';
- No systemd-networkd e networkctl para DHCP, foi assegurada a atualização dos vínculos de endereços IP (leases) em tempo real, realizada pelo comando 'networkctl renew';
- O systemd-networkd agora redefine a configuração DHCP ao reiniciar (para preservar as configurações, use o parâmetro KeepConfiguration). O valor da configuração SendRelease foi alterado para 'true' por padrão;
- No cliente DHCPv4, foi assegurado o uso do valor da opção OPTION_INFORMATION_REFRESH_TIME, enviado pelo servidor. Para solicitar opções específicas ao servidor, foi proposta a opção 'RequestOptions', e para enviar opções ao servidor — 'SendOption'. Para configurar o tipo de serviço IP, foi adicionado o parâmetro 'IPServiceType' no cliente DHCP;
- Para a lista de servidores SIP (Session Initiation Protocol) no servidor DHCPv4, foram adicionados os parâmetros 'EmitSIP' e 'SIP'. Do lado do cliente, o recebimento de parâmetros SIP do servidor pode ser ativado através da configuração 'UseSIP=yes';
- No cliente DHCPv6, foi adicionado o parâmetro 'PrefixDelegationHint' para solicitar um prefixo de endereçamento;
- Nos arquivos .network, foi assegurado o suporte para correspondência de redes sem fio por SSID e BSSID, por exemplo, para vinculação ao nome do ponto de acesso e ao endereço MAC. Os valores SSID e BSSID são exibidos na saída do networkctl para interfaces sem fio. Adicionalmente, foi adicionada a capacidade de correspondência por tipo de rede sem fio (parâmetro WLANInterfaceType);
- No systemd-networkd, foi adicionada a capacidade de configurar disciplinas de organização de filas para gerenciamento de tráfego usando novos parâmetros Parent,
NetworkEmulatorDelaySec, NetworkEmulatorDelayJitterSec,
NetworkEmulatorPacketLimit e NetworkEmulatorLossRate,
NetworkEmulatorDuplicateRate na seção «[TrafficControlQueueingDiscipline]»; - O systemd-resolved garante a verificação de endereços IP em certificados ao ser compilado com GnuTLS.
Mudanças relacionadas ao udev:
- No systemd-udevd, o tempo limite de 30 segundos para forçar a finalização de manipuladores travados foi removido. O systemd-udevd agora aguarda a conclusão dos manipuladores para os quais 30 segundos não eram suficientes para concluir normalmente as operações em grandes instalações (por exemplo, o tempo limite poderia interromper a inicialização do driver durante a troca de uma partição montada para o sistema de arquivos raiz). Ao usar o systemd, o tempo limite que o systemd-udevd vai aguardar antes de sair pode ser configurado através da opção TimeoutStopSec no systemd-udevd.service. Quando executado sem systemd, o tempo limite é ajustado pela opção udev.event_timeout;
- Para o udev, foi adicionada a ferramenta fido_id, que identifica tokens FIDO CTAP1
(«U2F») / CTAP2 com base em dados sobre seu uso passado e exibe as variáveis de ambiente necessárias (a ferramenta permite evitar listas brancas externas de todos os tokens conhecidos que foram usados anteriormente); - Implementada a geração automática de regras udev de autosuspend para dispositivos da lista branca, importada do Chromium OS (a mudança permite expandir a aplicação dos modos de economia de energia para dispositivos adicionais);
- No udev, foi adicionada uma nova configuração «CONST{key}=value», permitindo a realização direta de correspondências de valores de constantes do sistema sem a necessidade de executar manipuladores separados para verificação. Atualmente, apenas as chaves «arch» e «virt» são suportadas;
- Garantido o acesso ao CDROM em modo não exclusivo ao executar a operação de solicitação de modos suportados (a mudança resolve problemas de acesso a programas ao CDROM e reduz o risco de interrupção em programas de gravação no disco que não usam um modo de acesso exclusivo).
Fonte: opennet.ru
