오픈RC
![]() OpenRC 로고 | |
| 원저자 | 로이 마플스 |
|---|---|
| 개발자 | OpenRC 개발자 |
| 발표일 | 2007년 4월 5일 |
| 안정화 버전 | |
| 저장소 | |
| 프로그래밍 언어 | C,[1] sh |
| 운영 체제 | 리눅스, FreeBSD, NetBSD |
| 크기 | ~1.6 MB |
| 종류 | Init 데몬 |
| 라이선스 | 2-조항 BSD 라이선스 |
| 웹사이트 | wiki |
오픈RC(OpenRC)는 유닉스 계열 운영체제를 위한 의존성 기반의 Init 시스템이다. 이는 젠투 리눅스 프로젝트에서도 활동한 NetBSD 개발자 로이 마플스가 만들었다.[2][3]

채택
[편집]오픈RC는 다음의 기본 Init 시스템 또는 프로세스 관리자이다.
오픈RC는 다음의 Init 시스템 또는 프로세스 관리자로 사용할 수 있다.
- 아틱스 리눅스
- 데부안[5]
- 파라볼라 GNU/리눅스-리브레
- 아치 리눅스 (아치 사용자 저장소를 통해 사용 가능)[6]
- PostmarketOS[7]
- 데비안[8]
설계
[편집]오픈RC는 여러 모듈식 구성 요소로 이루어져 있으며, 주요 구성 요소는 init(선택 사항), 핵심 의존성 관리 시스템, 데몬 관리자(선택 사항)이다. C와 POSIX 호환 셸로 작성되어 BSD 및 리눅스 시스템에서 사용할 수 있다.
오픈RC의 핵심 부분은 의존성 관리 및 init 스크립트 파싱을 처리한다. 오픈RC는 런레벨을 스캔하고, 의존성 그래프를 구축한 다음, 필요한 서비스 스크립트를 시작하여 작동한다. 스크립트가 시작되면 종료된다. 기본적으로 오픈RC는 데몬 관리를 위해 start-stop-daemon의 수정된 버전을 사용한다.[9]
Init 스크립트는 SysVinit에서 사용되는 스크립트와 유사하지만, 스크립트 생성을 단순화하는 여러 기능을 제공한다. 스크립트는 start(), stop(), status()를 가지고 있다고 가정하며, 시스템은 이미 선언된 변수를 사용하여 기본 함수를 생성한다.[10] depend 함수는 SysVinit에서 LSB 헤더로 수행될 다른 서비스에 대한 의존성을 선언하는 데 사용된다. 구성과 메커니즘은 conf.d 디렉토리의 구성 파일과 init.d 디렉토리의 init 파일로 분리된다.
openrc-init은 버전 0.25에서 /sbin/init의 선택적 대체품으로 처음 등장했다. 이는 젠투 리눅스의 기본 init 시스템인 SysVinit을 대체할 수 있다.[11]
Supervise-daemon은 OpenRC에 감독 기능을 부여하며 버전 0.21에서 처음 등장했다. supervise-daemon이 데몬을 시작하고 모니터링하도록 init 스크립트에서 활성화할 수 있다. Runit[12] 및 s6[13]을 포함한 여러 다른 데몬 감독자가 지원된다.
기능
[편집]- 리눅스, FreeBSD, NetBSD 간 이식 가능
- 병렬 서비스 시작 (기본적으로 비활성화)
- 의존성 기반 부팅
- Cgroups를 통한 프로세스 분리[14]
- 서비스별 리소스 제한 (ulimit)
- 코드와 구성 분리 (init.d / conf.d)
- 확장 가능한 시작 스크립트
- 상태 저장 init 스크립트 (이미 시작되었는가?)
- 여러 구성 요소 시작을 위한 복잡한 init 스크립트 (삼바 [smbd 및 nmbd], NFS [nfsd, portmap 등])
- 자동 의존성 계산 및 서비스 순서 지정
- 모듈식 아키텍처 및 선택적 구성 요소 분리 (Cron, 시스로그)
- 표현력 있고 유연한 네트워크 처리 (VPN, 브리지 등 포함)
- 자세한 디버그 모드
- 사용자 서비스[15]
각주
[편집]- ↑ “openrc”, 《Analysis Summary》 (Ohloh), 2012년 11월 5일에 원본 문서에서 보존된 문서, 2012년 3월 10일에 확인함
- ↑ “History”. 《GitHub》. 2020년 4월 6일에 확인함.
- ↑ “Developers”. 2020년 4월 6일에 확인함.
- ↑ “OpenRC - Alpine Linux”. 《wiki.alpinelinux.org》. 2025년 7월 21일에 확인함.
- ↑ “Devuan ASCII 2.0.0 stable release” (영어). 2021년 1월 18일에 확인함.
- ↑ “OpenRC - ArchWiki”. 《wiki.archlinux.org》. 2025년 7월 21일에 확인함.
- ↑ “Adding systemd for PostmarketOS” (영어). 2025년 6월 13일에 확인함.
- ↑ “OpenRC - Debian Wiki”. 《wiki.debian.org》. 2025년 7월 13일에 확인함.
- ↑ “user guide”. 《GitHub》. 2020년 4월 6일에 확인함.
- ↑ “service script guide”. 《GitHub》. 2020년 4월 6일에 확인함.
- ↑ “OpenRC/openrc-init”. 2023년 2월 6일. 2023년 10월 7일에 확인함.
- ↑ “runit guide”. 《GitHub》. 2020년 4월 6일에 확인함.
- ↑ “s6 Guide”. 《GitHub》. 2020년 4월 6일에 확인함.
- ↑ “CGroups Support”. 2020년 4월 5일에 확인함.
- ↑ “openrc/NEWS.md” (영어). 《GitHub》.
