본문으로 이동

오픈RC

위키백과, 우리 모두의 백과사전.
(OpenRC에서 넘어옴)
OpenRC
원저자로이 마플스
개발자OpenRC 개발자
발표일2007년 4월 5일(18년 전)(2007-04-05)
안정화 버전
저장소
프로그래밍 언어C,[1] sh
운영 체제리눅스, FreeBSD, NetBSD
크기~1.6 MB
종류Init 데몬
라이선스2-조항 BSD 라이선스
웹사이트wiki.gentoo.org/wiki/Project:OpenRC

오픈RC(OpenRC)는 유닉스 계열 운영체제를 위한 의존성 기반의 Init 시스템이다. 이는 젠투 리눅스 프로젝트에서도 활동한 NetBSD 개발자 로이 마플스가 만들었다.[2][3]

오픈RC로 아틱스 리눅스 부팅 중
부팅 과정

채택

[편집]

오픈RC는 다음의 기본 Init 시스템 또는 프로세스 관리자이다.

오픈RC는 다음의 Init 시스템 또는 프로세스 관리자로 사용할 수 있다.

설계

[편집]

오픈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]

각주

[편집]
  1. “openrc”, 《Analysis Summary》 (Ohloh), 2012년 11월 5일에 원본 문서에서 보존된 문서, 2012년 3월 10일에 확인함 
  2. “History”. 《GitHub. 2020년 4월 6일에 확인함. 
  3. “Developers”. 2020년 4월 6일에 확인함. 
  4. “OpenRC - Alpine Linux”. 《wiki.alpinelinux.org》. 2025년 7월 21일에 확인함. 
  5. “Devuan ASCII 2.0.0 stable release” (영어). 2021년 1월 18일에 확인함. 
  6. “OpenRC - ArchWiki”. 《wiki.archlinux.org》. 2025년 7월 21일에 확인함. 
  7. “Adding systemd for PostmarketOS” (영어). 2025년 6월 13일에 확인함. 
  8. “OpenRC - Debian Wiki”. 《wiki.debian.org》. 2025년 7월 13일에 확인함. 
  9. “user guide”. 《GitHub. 2020년 4월 6일에 확인함. 
  10. “service script guide”. 《GitHub. 2020년 4월 6일에 확인함. 
  11. “OpenRC/openrc-init”. 2023년 2월 6일. 2023년 10월 7일에 확인함. 
  12. “runit guide”. 《GitHub. 2020년 4월 6일에 확인함. 
  13. “s6 Guide”. 《GitHub. 2020년 4월 6일에 확인함. 
  14. “CGroups Support”. 2020년 4월 5일에 확인함. 
  15. “openrc/NEWS.md” (영어). 《GitHub》.