# 임베디드 리눅스에서 systemd가 문제가 되는 이유

> Clean Markdown view of GeekNews topic #17586. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=17586](https://news.hada.io/topic?id=17586)
- GeekNews Markdown: [https://news.hada.io/topic/17586.md](https://news.hada.io/topic/17586.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-11-04T21:34:22+09:00
- Updated: 2024-11-04T21:34:22+09:00
- Original source: [kevinboone.me](https://kevinboone.me/systemd_embedded.html)
- Points: 10
- Comments: 4

## Summary

systemd는 다양한 기능을 제공하지만, 임베디드 시스템에서는 오히려 자원 소모가 많고 복잡성이 증가하여 부적합할 수 있습니다. 특히, Raspberry Pi와 같은 장치에서는 systemd가 SystemV init보다 더 많은 메모리를 사용하며, 부팅 시간이 증가할 수 있습니다. 또한, systemd의 확산으로 인해 대안이 줄어들고 있어, 임베디드 환경에 적합한 더 작은 대안을 개발하고 유지할 필요가 있습니다.

## Topic Body

- systemd는 시스템 관리와 관련된 통합 애플리케이션 세트로, 전통적인 init 프로세스를 대체하며 사용자 세션 관리, 장치 관리, 로깅, 타이밍 등 다양한 기능을 포함함  
- 대부분의 Linux 사용자는 systemd의 장단점에 관심이 없으나, 일부는 강력히 반대하거나 지지  
- 주류 Linux 배포판은 systemd를 채택했으며, 이는 주로 일반적인 데스크톱 환경에서의 이점 때문임  
  
### 임베디드 Linux에서의 문제  
  
- 임베디드 시스템에서는 systemd의 장점이 오히려 단점이 될 수 있음  
- Raspberry Pi 3B에서의 메모리 사용량을 예로 들면, systemd가 SystemV init보다 더 많은 자원을 사용함  
- systemd-journald와 같은 systemd의 로깅 데몬도 자원을 많이 사용함  
- 임베디드 환경에서는 더 작은 대안이 필요하며, systemd는 이러한 환경에 최적화되지 않음  
  
### systemd의 복잡성과 부팅 시간  
  
- systemd는 부팅 시간을 줄일 수 있지만, 임베디드 시스템에서는 오히려 부팅 시간이 증가할 수 있음.  
- systemd의 복잡성과 기능은 일반적인 환경에서는 필요하지만, 임베디드 환경에서는 불필요한 경우가 많음.  
  
### 대안의 부재  
  
- systemd가 대체하는 많은 서비스는 임베디드 환경에서 더 작고 빠른 대안이 존재하지만, 일부는 더 이상 대안이 없음  
- 예를 들어, udev 데몬은 systemd 프로젝트에 통합되었으며, 독립적인 대안이 거의 없음  
  
### systemd의 확산과 대안의 감소  
  
- systemd는 많은 기능을 포함하고 있으며, 배포판 관리자에게는 편리함.  
- systemd가 점점 더 많은 기능을 흡수하면서, 대안을 유지할 동기가 줄어들고 있음.  
- 이는 임베디드 환경에서 systemd가 적합하지 않은 경우 문제를 야기할 수 있음.  
  
### 결론  
  
- systemd는 임베디드 환경에서 전통적인 대안보다 덜 효과적일 수 있음.  
- 주류 Linux 배포판에서 systemd를 사용하지 않는 것을 찾기 어려워지고 있음.  
- systemd의 확산으로 인해 Linux가 systemd 없이 상상하기 어려운 미래로 나아가고 있음.  
- 대안을 개발하거나 유지할 준비가 필요하며, systemd를 사용하지 않는 배포판을 계속 지원해야 함

## Comments



### Comment 31013

- Author: iolothebard
- Created: 2024-11-08T02:32:42+09:00
- Points: 1

어디 systemd 뿐이겠습니까…

### Comment 30789

- Author: ganadist
- Created: 2024-11-06T06:45:30+09:00
- Points: 2

busybox 의 init는 임베디드 기기를 위한 systemd의 훌륭한 대체재 입니다.  
그리고 임베디드기기 같이 제약된 시스템이면, 굳이 udev를 사용할게 아니라, 고정된 device node를 root 파일시스템에 포함하면 됩니다.

### Comment 30758

- Author: plaaat0102
- Created: 2024-11-05T14:08:12+09:00
- Points: 1

제 경우가 예외중에 예외이긴 합니다만 갤탭에 우분투 올리고 거따 vscode올려 쓰는 저로서는 systemd때문에 눈물날때가 종종 있드라구요..

### Comment 30722

- Author: neo
- Created: 2024-11-04T21:34:22+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=42036305) 
- systemd는 많은 문제를 해결하며, 커뮤니티도 매우 응답성이 좋고 도움이 됨
  - 가끔 이상한 문제가 있지만 항상 해결책이 존재함
  - 메모리 사용은 중요하지 않으며, 대부분의 임베디드 Linux 장치는 1GB 이상의 RAM을 가짐
  - 작은 장치에서는 Zypher나 FreeRTOS를 사용함

- OpenEmbedded/Yocto, Devuan, Gentoo는 여러 init 시스템을 제공함

- Rustysd는 systemd의 동작을 일부 복제하는 서비스 관리자임
  - core 기능을 제공하며, 다양한 플랫폼에 systemd와 유사한 서비스 관리자를 제공할 수 있음

- systemd를 선호하는 사람들은 주로 배포 관리자임
  - systemd는 다양한 시스템 유틸리티를 하나의 큰 빌드로 제공함

- Unix 철학은 작은 도구들이 문제를 해결하는 것임
  - systemd는 초기에는 작았으나, 현재는 웹 기반으로 비디오 회의도 가능함

- runit는 애플리케이션과 서비스를 감독하는 데 훌륭함
  - BusyBox에 내장되어 있으며 매우 가벼움
  - 설정이 매우 간단하며, 로깅 기능도 포함됨
  - Unix 철학을 거의 완벽하게 구현함

- udev 없이 임베디드 시스템을 실행할 수 있음
  - 고정된 주변 장치와 커널 모듈을 사용하는 경우 가능함

- RPi는 산업용 제어 보드의 폼 팩터를 데스크탑으로 변환함
  - 많은 소프트웨어가 이 세그먼트를 염두에 두고 작성되지 않음

- Chimera Linux는 서비스 관리와 로그인/좌석 관리에서 흥미로운 방향으로 나아가고 있음
  - systemd의 gnulibc와 gcc 확장 사용이 문제임

- systemd의 설치 크기가 임베디드 Linux에서 가장 큰 문제임
  - 64M RAM과 128M NAND 플래시를 가진 장치에서는 5M의 systemd가 비효율적임

- systemd는 250MB의 RAM을 사용하여 임베디드 Linux에서 문제가 됨
  - mainstream 배포판을 고려하지 않는 시스템에서는 큰 문제가 아님

- SysVInit는 외부 유틸리티에 의존하여 프로세스를 시작하고 중지함
  - 최소한의 경우에도 init 스크립트를 실행하기 위해 셀이 필요함
