본문 바로가기

Linux

systemd란

systemd

 위키백과에 따르면, systemd는 일부 리눅스 배포판에서 init시스템 대신 사용자 공간을 부트스트래핑하고 최종적으로 모든 프로세스를 관리하는 init시스템이다. 실제 systemd의 PID는 1이다. 즉 init이 하던일을 대체하는 새로운 process라는 것을 알 수 있다. 즉 Systemd는 Linux 시스템이 부팅할 때 실행되는 프로세스를 제어하기 위한 표준 프로세스이다.

systemd process

예전의 PID 1이었던 init은 현재로부터 수 십 년 전에 처음 소개된 프로그램인데 그 때의 구조를 거의 바꾸지 않고 계속 기능이 추가되며 날이 갈수록 복잡해지는 프로그램들로 인해 효율이 떨어졌습니다. 그리고 그 구조라는 것이 시작할 프로그램을 구동하는 쉘 스크립트를 특정 run-level의 rc 디렉토리에 추가하는 것이고, init은 부팅 과정에서 단계적으로 run-level을 올려가며 해당 run-level에 포함된 스크립트들을 순차적으로 실행시키니 설정의 난잡함 뿐만 아니라 속도마저 느렸습니다.
이런 문제들을 해결하기 위해 Red Hat에 근무하는 Lennart Poettering과 Kay Sievers란 사람들이  systemd를 만들기 시작했습니다. 이렇게 만들어진 systemd는 당연하지만 init보다 우월한 성능과 직관적인 설정을 가지게 되었습니다. 의존성을 해치지 않으며 가능한 한 병렬로 시작 프로그램들을 실행시키는 것으로 부팅 속도를 끌어올리고, 프로그램 실행을 위한 파일로는 쉘 스크립트가 아니라 .service라는 systemd만의 unit을 통해 체계적이면서 가독성이 좋게 설정이 가능해졌습니다.

게다가 systemd는 단지 init 뿐만 아니라 다른 프로그램들의 기능들마저 뺏어오기까지 합니다. 실제로 컴퓨터의 네임서버 주소를 설정하는 resolvconf의 자리를 systemd-resolved가, DHCP 서버에서 IP를 받아와서 네트위크 인터페이스에 설정하는 dhcpcd의 자리를 systemd-networkd가 대체할 수 있습니다. 이외에도 시스템 내부의 udev가 systemd에 포함되는 등 여러 방면에서 systemd의 존재가 강력해지고 있습니다. 이렇게 systemd가 여러 영역을 아우르는 것을 보고 혹자들은 하나만 잘하자 라는 UNIX의 철학에 어긋난다고 말하기도 합니다. 이건 제 개인적인 생각입니다만 UNIX 철학같은걸 따지기보다 실제 사용에 있어서 편리성과 앞으로의 발전 가능성을 보는 것이 더 바람직하다고 생각합니다. 그리고 systemd는 PID 1의 임무를 착실하게 수행하고 있으며 다른 부분에 대해서는 systemd-*의 이름으로 따로 존재하니 UNIX 철학에 너무 벗어나지 않는 것처럼 보이기도 합니다.

출처 : https://stackframe.tistory.com/12

systemd의 구조

systemd 구조 - 출처 위키백과

  • systemd : init 데몬
  • systemd-journald : 다른 데몬(프로세스)들의 출력(syslog, 표준, 에러 출력), 로그 저장 데몬
  • systemd-logind : 사용자 로그인, 세션 등 관리 데몬
  • systemd-udevd : 장치 관리자 데몬
  • systemd-networkd : 네트워크 관리 데몬. DHCP 뿐만 아니라 Virtual Lan 설정까지 가능
  • systemd-resolved : DNS 해석 데몬
  • systemd-timesyncd : NTP로 컴퓨터 시간 동기화 데몬
  • systemd-boot : UEFI 부트로더

 

Summary

systemd가 무엇인지 정말 간단하게 알아보았다.. init과 차이점, 순차적 병력적, systemd의 구성 및 더 자세한 내용은 나중에 더 자세히 알아보도록 하자.

 

systemd 공식문서 :

www.freedesktop.org/wiki/Software/systemd/

 

systemd

Welcome to Fedora 20 (Heisenbug)! [ OK ] Reached target Remote File Systems. [ OK ] Listening on Delayed Shutdown Socket. [ OK ] Listening on /dev/initctl Compatibility Named Pipe. [ OK ] Reached target Paths. [ OK ] Reached target Encrypted Volumes. [ OK

www.freedesktop.org

 

잘 정리되어있는 글 :

lunatine.net/2014/10/21/about-systemd/

 

systemd 살펴보기 :: Lunatine's Box — Lunatine's Box

systemd 살펴보기 우선, systemd가 이렇게 급 부상하게 될 줄은 솔직히 몰랐다. 워낙 많은 오픈소스 프로젝트들이 나오고 있기 때문에 그 중 하나 정도로만 생각했는데 어느 순간 Fedora에 적용이 되더

lunatine.net

 

참고자료

stackframe.tistory.com/12

 

 

 

 

 

 

'Linux' 카테고리의 다른 글

service, systemctl 란?  (0) 2020.12.21
심볼릭 링크 (symbolic link)  (0) 2020.12.20