<colbgcolor=#f6f5f4><colcolor=#000> systemd | |
| |
개발 | Lennart Poettering 외 |
개발 언어 | C언어 |
홈페이지 | |
소스 코드 |
[clearfix]
1. 개요
systemd는 Linux 시스템을 구성하는 기본 요소들의 묶음을 제공하는 소프트웨어 스위트이다.Canonical이 주도했던 Upstart와 마찬가지로, 기존의 고전적인 init 시스템을 대체하기 위해 개발되었다. 시스템 부팅 시 가장 먼저 시작되어, PID 1로 동작하는 시스템 및 서비스 관리자를 제공한다. 적극적인 병렬화와 소켓 및 D-Bus를 활용한 서비스 관리가 특징이다.
오늘날 대부분의 Linux 배포판은 SysVinit과 같은 다른 init 시스템 대신 systemd를 사용한다. 기존 유닉스의 전통을 파괴함으로서 오히려 유닉스의 고질적인 문제점들을 상당 부분 해결되었기에 사용자의 평가는 상당히 좋은 편이다.
반면에 Gentoo Linux 등 몇몇 배포판의 경우 systemd가 UNIX의 전통을 훼손하고 있다며 OpenRC 등 기존 init 시스템에 잔류하기도 한다.
2. 역사
Red Hat에서 일하던 Lennart Poettering와 그 동료 개발자들은 2010년 전통적인 System V init을 대체하기 위해 systemd를 개발했다. 2010년 4월에 Poettering의 블로그에서 "Rethinking PID 1"라는 제목의 글과 함께 처음으로 공개되었다.[1]2011년 5월, Fedora에서 가장 먼저 채택하여 Upstart를 대체했다.[2]
2012년 10월, Arch Linux에서 기존 SysVinit에서 systemd로, 기본 init 시스템을 이주했다.[3]
2014년 2월, Debian은 2013년 10월부터의 오랜 논쟁을 끝내고, 투표를 통해 새로운 기본 init 시스템으로 Upstart 대신 systemd를 선택했다.[4] 데비안 기반의 Ubuntu 또한 같은 init 시스템으로 이주하기로 결정했다.[5]
3. 특징
- .service 설정 파일 사용
ini 파일을 닮은 구조로, 설정이 강력하며 아주 다양한 옵션을 집어넣을 수 있다. rd.d 의 골치아픈 설정보다 훨씬 이해하기 쉽다.
- 의존성 옵션 지정 가능
특정 서비스가 시작되고 난 뒤에 다른 서비스를 띄우거나, 인터넷에 연결되면 서비스를 띄우거나 등등 다양한 옵션을 설정할 수 있다.
- 다양한 부가기능
cron을 대신할 수 있는 .timer, 한번 실행한 뒤(일반적으로 부팅 후 단 한번만 수행하면 되는 작업 등) 종료되는 Type=oneshot 등을 설정할 수 있다. 이것의 존재로 인해 아예 Arch linux에서는 cron이 기본으로 딸려 나오지 않고, 내장된 반복 작업들은 모두 systemd로 처리된다. 종종 포럼에 가서 보면 왜 systemd timer를 쓰지 cron을 설치하냐는 글도 볼 수 있을 정도... 심지어 NixOS 공식 위키에서는 아예 cron 대신 systemd timer를 쓰라고 권장할 정도이니 말 다했다.
- systemd 시리즈의 기타 도구
systmd 외에도 systemd-timesyncd, systemd-resolved 등 유닉스 환경에서 쓸 수 있는 도구들을 추가로 설치할 수 있다. 이들은 과거 다른 소프트웨어 개발진들이 만들어 내어 사용되던 것이지만, 일관적인 설정 파일 양식으로 사용할 수 있게 된 것이다. 단, 이는 하나의 프로그램은 하나의 기능만 수행한다는 유닉스 사상과 어긋난다는 비판도 많이 받고 있다. 그러나 설정이 강력하고 편리하다는 것은 부정할 수가 없다.
4. 관련 문서
[1] https://0pointer.de/blog/projects/systemd.html[2] https://fedoraproject.org/wiki/F15_one_page_release_notes[3] https://archlinux.org/news/systemd-is-now-the-default-on-new-installations[4] https://lwn.net/Articles/572805[5] https://web.archive.org/web/20140908011326/http://www.markshuttleworth.com/archives/1316