| systemd | |
|---|---|
Arranque do systemd no Debian GNU/Linux | |
| Autores | Lennart Poettering,Kay SieversHarald Hoyer, Daniel Mack, Tom Gundersen e David Herrmann |
| Desenvolvedores | Lennart Poettering,Kay Sievers, Harald Hoyer, Daniel Mack, Tom Gundersen, David Herrmann, e outros |
| Lançamento inicial | 30 de março de2010 (15 anos) |
| Lançamento estável | 259[1] / 17 de dezembro de 2025; há 2 meses |
| Repositório | github |
| Escrito em | C[2] |
| Sistema operacional | Linux |
| Tamanho | ~9.0MB |
| Disponível em | Inglês |
| Tipo | daemoninit,software de sistema |
| Licença | LGPL 2.1+ |
| Website | freedesktop systemd |

systemd é um conjunto de softwares que fornecem blocos de construção fundamentais para umsistema operacionalLinux. Entre outros recursos, ele inclui o systemd "System and Service Manager" (em português, "Gerenciador do Sistema e Serviços" do systemd), um sistemainit usado parainicializar oespaço do usuário e gerenciar processos do sistema após a inicialização (boot). É um substituto para os sistemas init doUNIX System V e doBerkeley Software Distribution (BSD).
Um dos principais objetivos do projeto systemd é a unificação de configurações básicas e comportamentos de serviços do Linux entre todas asdistribuições Linux.[4]
A partir de 2015, a maioria das distribuições do Linux adotaram o systemd como seu sistema init padrão,[5] apesar dessa crescente adoção de systemd tem sido controversa, com os críticos argumentando que o software violou afilosofia Unix tornando-se cada vez mais complexa, e que as distribuições foram forçados a adotá-lo devido à dependência de vários outros softwares sobre ele, incluindo, o ambiente de trabalho doGNOME 3.
O nomesystemd adere à convençãoUnix de nomeação dedaemons anexando a letrad.[6] Ele também reproduz o termo "Sistema D", que se refere à capacidade de uma pessoa de se adaptar rapidamente e improvisar para resolver problemas.
É mantido porLennart Poettering eKay Sievers, com muitos outros contribuintes,[7] e publicado como software livre e de código aberto nos termos da Licença Pública Geral Menor GNU (LGPL) versão 2.1 ou posterior.[8]
Lennart Poettering e Kay Sievers iniciaram o projeto para desenvolver o systemd em 2010.[9]
Em maio de 2011, oFedora se tornou a primeira grandedistribuição Linux a habilitar o systemd por padrão.[10]
Entre outubro de 2013 e fevereiro de 2014, um longo debate entre o Comitê Técnico do Debian ocorreu nalista de discussão doDebian,[11] discutindo qual sistema init usar como padrão no Debian 8 "jessie", e culminou em uma decisão a favor do systemd. O debate foi amplamente divulgado[12][13] e, na sequência da decisão, o debate continua na lista de discussão do Debian. Em fevereiro de 2014, após a decisão do Debian ter sido tomada,Mark Shuttleworth anunciou em seublog que oUbuntu seguiria na implementação do systemd.[14][15]
Em novembro de 2014, o Desenvolvedor DebianJoey Hess,[16] os membros do Comitê Técnico do DebianRuss Allbery[17] eIan Jackson,[18] e o mantenedor do pacote systemdTollef Fog Heen[19] renunciaram às suas posições. Todos os quatro justificaram sua decisão na lista de discussão pública do Debian e em blogs pessoais com suas exposições a níveis de estresse extraordinários relacionados a disputas contínuas na integração do systemd dentro da comunidade Debian e open-source que tornaram a manutenção regular virtualmente impossível.
Em agosto de 2015, o systemd começou a fornecer um shell delogin, que pode ser chamado viamachinectl shell.[20]
Em setembro de 2016, foi descoberto umafalha de segurança que permitia a qualquer usuário não privilegiado executar umataque de negação de serviço contra o systemd.[21] Rich Felker, desenvolvedor domusl, afirmou que essa falha revela uma grande "falha no projeto de desenvolvimento do sistema".[22] Em 2017, outra falha de segurança foi descoberta no systemd, a CVE-2017-9445, que "permite a interrupção do serviço" por um "servidor DNS malicioso".[23][24]
Lennart Poettering e Kay Sievers, os engenheiros de software que trabalham para aRed Hat, que inicialmente desenvolveu o systemd, procuraram superar a eficiência do daemon init de várias maneiras. Eles queriam melhorar a estrutura de software para expressar dependências, para permitir que mais processamento fosse feito simultaneamente ou em paralelo durante a inicialização do sistema e para reduzir a sobrecarga computacional do shell.
Poettering descreve o desenvolvimento do sistema como "nunca terminado, nunca completo, mas acompanhando o progresso da tecnologia". Em maio de 2014, Poettering definiu ainda mais o sistema como tendo como objetivo unificar "diferenças sem sentido entre distribuições", fornecendo as três funções gerais a seguir:
systemd não é apenas o nome do daemon init, mas também se refere a todo o pacote de software em torno dele, que, além do daemon systemit init, inclui os daemons journald, logind e networkd, e muitos outros componentes de baixo nível. Em janeiro de 2013, Poettering descreveu systemd não como um programa, mas sim um grande pacote de software que inclui 69 binários individuais. Como um conjunto de software integrado, o systemd substitui osscripts de inicialização e os níveis de execução controlados pelo daemon tradicional do init, juntamente com os scripts de shell executados sob seu controle. O systemd também integra muitos outros serviços que são comuns em sistemas Linux ao lidar com logins de usuários, console de sistema, hotplugging de dispositivos (ver udev), execução agendada (substituindo cron),logging, hosts e locales.
Como o daemon init, osystemd é um daemon que gerencia outros daemons, que, incluindo osystemd, são processos em segundo plano.systemd é o primeiro daemon a iniciar durante a inicialização e o último daemon a terminar durante o desligamento. O daemonsystemd serve como raiz da árvore de processos do espaço do usuário; O primeiro processo (PID 1) tem um papel especial nos sistemas Unix, pois recebe um sinal SIGCHLD quando um processo do daemon (que se separou do seu pai) termina. Portanto, o primeiro processo é particularmente adequado para a finalidade de monitorar os daemons;systemd tenta melhorar nessa área específica sobre a abordagem tradicional, que normalmente não reiniciaria os daemons automaticamente, mas só os lançaria uma vez sem monitoramento adicional.
systemd executa elementos de sua sequência de inicialização em paralelo, o que é mais rápido do que a seqüência de inicialização tradicional abordagem seqüencial. [13] Para acomunicação entre processos (IPC), osystemd disponibiliza soquetes de domínio Unix e D-Bus para os daemons em execução. O estado dosystemd também pode ser preservado em umasnapshot para futura recuperação.
Ele inicializa uma plataforma, mas também serve para consolidar o registro de eventos e pode substituir o syslog. Devido a ele substituir dois sistemas administrativos, para administradores de sistema isto significa que o número de mecanismos internos do kernel que ele trata oferece uma curva de aprendizagem excessiva.
Osystemd registra as instruções de inicialização para cada daemon em umarquivo de configuração (conhecido como um "arquivo de unidade") que usa umalinguagem declarativa, substituindo osscripts de shell de inicialização por daemon tradicionalmente usados. Os tipos de arquivo de unidade incluem:
Seguindo sua abordagem integrada, osystemd também fornece substitutos para vários daemons e utilitários, incluindo os scripts de shell de inicialização, pm-utils,inetd, acpid, syslog, watchdog, cron eatd. Os principais componentes dosystemd incluem o seguinte:
systemd é um gerenciador de sistemas e serviços para sistemas operacionais Linux.
systemctl pode ser usado para intro-inspecionar e controlar o estado do sistemasystemd e gerenciar serviços.
systemd-analyze pode ser usado para determinar as estatísticas de desempenho de inicialização do sistema e recuperar outras informações de estado e rastreamento do sistema e do gerenciador de serviços.
systemd rastreia processos usando o subsistemacgroups do kernel do Linux em vez de usar identificadores de processo (PIDs); Assim, osdaemons não podem "escapar" do systemd, nem mesmo por bifurcação dupla.systemd não só usacgroups, mas tambémsystemd-nspawn emachinectl, dois programas utilitários que facilitam a criação e gerenciamento de containers Linux. Desde a versão 205, o systemd também ofereceControlGroupInterface, que é uma API para oscgroups do kernel do Linux. Oscgroups do kernel do Linux são adaptados para suportarkernfs, e estão sendo modificados para suportar uma hierarquia unificada.


Além de seu principal objetivo de fornecer um sistema de init Linux alternativo, o conjunto de sistemas fornece funcionalidades adicionais, incluindo os seguintes componentes:
systemd-consoled foi um daemon do console do usuário, com a intenção de substituir o suporte do terminal virtual do kernel do Linux por um componente de espaço de usuários mais capacitado. Sua versão preliminar foi lançada em outubro de 2014, como parte da versão 217 do sistema. Systemd-consoled foi removido do systemd em 29 de julho de 2015 por David Herrmann.
systemd-journald é um daemon responsável pelo registro de eventos, com arquivos binários anexados apenas servindo como seus arquivos de log. O administrador do sistema pode escolher se deseja registrar eventos do sistema com systemd-journald, syslog-ng ou rsyslog. A corrupção e a ofuscação do formato binário levou a um debate muito aceso.
systemd-logind é um daemon que gerencia logins do usuário e assentos de várias maneiras. Trata-se de um gerenciador de logon integrado que oferece melhorias multiseat e substitui o ConsoleKit, que não é mais mantido. Para oswindow managers X11 a substituição para logind requer uma quantidade mínima de portabilidade. Ele foi integrado na versão systemd 30.
networkd é um daemon para lidar com a configuração das interfaces de rede; Na versão 209, quando foi integrado pela primeira vez, o suporte foi limitado a endereços estaticamente atribuídos e suporte básico para configuração de ponte. Em julho de 2014, a versão 215 do sistema foi lançada, adicionando novos recursos, como um servidor DHCP para hosts IPv4 e suporte a VXLAN.
systemd-timedated é um daemon que pode ser usado para controlar configurações relacionadas ao tempo, como a hora do sistema, o fuso horário do sistema ou a seleção entre o UTC e o relógio do sistema de fuso horário local. É acessível através de D-Bus. Ele foi integrado na versão systemd 30.
udev é um gerenciador de dispositivos para o kernel do Linux, que manipula o diretório /dev e todas as ações do espaço do usuário ao adicionar / remover dispositivos, incluindo o carregamento dofirmware. Em abril de 2012, a árvore de origem para udev foi mesclada na árvore de origem systemd.
É a biblioteca padrão para utilizar udev, que permite que aplicativos de terceiros consultem recursos udev.
systemd-boot é um gerenciador de inicialização, anteriormente conhecido como gummiboot. Kay Sievers fundiu-lo em systemd com rev 220.

Algumas interfaces gráficas estão disponíveis, incluindo:
Também conhecido comosystemadm, é um front-end gráfico simples baseado em GTK+ para systemd. Ele fornece uma interface de usuário simples para gerenciar serviços e um agente gráfico para solicitar senhas do usuário. A partir de 2014, o programasystemadm recebeu pouco desenvolvimento ou manutenção nos últimos anos, porque o foco do desenvolvimento mudou para ferramentas de linha de comando comosystemctl esystemd-analyze.
Fornece um frontend do systemd gráfico para o desktopKDE Plasma 5. Ele se integra na janela de configurações do sistema e permite monitorar e controlar as unidades systemd e sessões de logind, bem como a edição gráfica de arquivos de configuração. Systemd-kcm foi renomeado para SystemdGenie e agora é um aplicativo autônomo.
systemd defines itself as a system and service manager. The project was initiated in 2010 by Lennart Poettering and Kay Sievers to create an integrated set of tools for managing a Linux system including an init daemon.
[...] a slice [.-..] is a concept for hierarchically managing resources of a group of processes.
|url= (ajuda)