같은 터미널 한 줄에서 pacman -S neovim과 apt install nginx를 나란히 실행할 수 있는 배포판이 있어요. 바로 Bedrock Linux인데, 여러 배포판의 사용자 공간(userland)을 하나의 커널 위에서 동시에 실행시켜 진짜로 “섞어 쓰는” 걸 가능하게 만드는 메타 배포판이에요. 그래서 Bedrock Linux, 여러 배포판을 하나의 시스템에서 섞어 쓰는 방법은 정확히 어떻게 되는 걸까요?
메타 배포판이라는 개념
Bedrock Linux는 그 자체로 완전한 배포판이 아니라, 여러 배포판을 조합하는 프레임워크에 가까워요. 설치 후 원하는 배포판들을 “스트랏(strata)“이라는 단위로 시스템에 추가할 수 있어요.
예를 들어 Arch 계열 배포판을 기본 스트랏으로 두고, 여기에 Debian과 Alpine을 추가로 붙이면, 세 배포판의 명령어와 패키지를 하나의 셸 세션에서 동시에 쓸 수 있게 돼요.
실제로 어떻게 동작하는가
각 스트랏은 독립된 루트 파일시스템을 가지고 있지만, Bedrock의 핵심 기술인 “크로스디스트로(crossdistro)” 바인드 마운트를 통해 서로의 파일시스템 일부를 공유해요. 사용자가 pacman(Arch)과 apt(Debian) 명령어를 같은 터미널에서 그대로 입력하면, Bedrock이 내부적으로 각 명령어를 해당 스트랏의 실행 파일로 라우팅해요. 배포판마다 다른 패키지 관리자를 하나의 셸에서 그대로 섞어 쓸 수 있다는 게 Bedrock의 핵심 매력이에요.
brl fetch arch # Arch 스트랏 추가
brl fetch debian # Debian 스트랏 추가
# 이후 터미널에서
pacman -S neovim # Arch의 pacman으로 설치
apt install nginx # Debian의 apt로 설치
이 두 명령으로 설치된 프로그램은 같은 시스템, 같은 홈 디렉터리에서 동시에 실행돼요. 실행 파일 경로 탐색(PATH)도 Bedrock이 관리해서, 어느 스트랏의 프로그램이든 그냥 이름만 입력하면 실행돼요.
왜 이런 게 필요한가
Bedrock이 필요한 이유는 크게 세 가지 실용적인 동기 때문이에요.
- AUR의 최신 패키지 + 서버용 배포판의 안정성: Arch 스트랏에서 최신 개발 도구를 쓰면서, 프로덕션 서비스는 Debian이나 CentOS 계열 스트랏에서 안정적으로 운영할 수 있어요.
- 특정 배포판에만 있는 패키지 활용: 어떤 소프트웨어가 A 배포판 저장소에만 있고 B 배포판엔 없을 때, 컨테이너나 가상머신 없이 그냥 A 스트랏을 추가해서 바로 쓸 수 있어요.
- 점진적 배포판 전환: 다른 배포판으로 옮기고 싶을 때, 새 스트랏을 추가해 병행 사용하다가 완전히 확신이 서면 기존 스트랏을 제거하는 방식으로 부드럽게 전환할 수 있어요.
대가: 복잡성과 불안정성
Bedrock Linux는 공식적으로 “실험적” 성격이 강한 프로젝트예요. 여러 배포판의 라이브러리 버전이 충돌하는 경우가 생길 수 있고, 특히 시스템 라이브러리(glibc 버전 등)가 스트랏마다 다르면 예기치 못한 오류가 발생하기도 해요. 개발자 커뮤니티도 매우 작아서, 문제가 생겼을 때 참고할 자료가 제한적이에요.
또한 이 정도로 복합적인 시스템을 유지보수하는 것 자체가 상당한 리눅스 내부 지식을 요구해요. 각 스트랏이 정확히 어떤 파일을 공유하고 어떤 파일을 독립적으로 갖는지 이해하지 못하면, 문제 발생 시 원인을 추적하기 어려워요.
어떤 사람에게 맞을까
Bedrock Linux는 크게 세 부류의 사용자에게 맞아요.
- 실험적인 사용자: 여러 배포판의 장점을 동시에 누리고 싶고, 시스템이 복잡해지는 걸 감수할 수 있는 사람이에요.
- 특정 도구가 필요한 사용자: 특정 배포판에서만 제공되는 도구를 컨테이너 오버헤드 없이 네이티브로 쓰고 싶은 경우예요.
- 깊이 이해하고 싶은 학습자: 배포판 자체의 설계 철학과 리눅스 패키지 관리 시스템의 내부 동작을 깊이 이해하고 싶은 사람이에요.
결론
Bedrock Linux는 “왜 하나의 배포판만 써야 하는가”라는 질문에서 출발한 흥미로운 실험이에요. GNU Guix 같은 함수형 배포판이 패키지 관리 자체를 근본부터 다시 설계했듯이, Bedrock도 배포판이라는 개념 자체를 다른 각도에서 다시 생각해보게 만들어요.
실용성보다는 개념 자체의 참신함이 더 부각되는 프로젝트지만, 한 번쯤 살펴볼 가치는 충분해요.
자주 묻는 질문
Q1. Bedrock Linux는 하나의 완전한 배포판인가요?
아니요, 그 자체로는 완전한 배포판이 아니라 여러 배포판을 스트랏 단위로 조합해 동시에 쓸 수 있게 해주는 프레임워크에 가까워요.
Q2. Arch와 Debian 명령어를 정말 같은 터미널에서 같이 쓸 수 있나요?
네, 크로스디스트로 바인드 마운트로 각 스트랏의 파일시스템 일부를 공유해서, pacman과 apt를 같은 셸 세션에서 그대로 입력해 쓸 수 있어요.
Q3. 실사용 환경에 써도 안전한가요?
공식적으로 실험적 성격이 강한 프로젝트라 스트랏 간 라이브러리 버전 충돌이 발생할 수 있고, 커뮤니티도 작아 문제 해결 자료가 제한적이에요.
Q4. 왜 컨테이너나 가상머신 대신 이 방식을 쓰나요?
특정 배포판에만 있는 패키지를 컨테이너 오버헤드 없이 네이티브로, 같은 홈 디렉터리에서 바로 쓸 수 있다는 점이 달라요.
Q5. 어떤 사람에게 적합한가요?
여러 배포판의 장점을 동시에 누리고 싶고 시스템 복잡도를 감수할 수 있는 실험적인 사용자나, 패키지 관리 시스템의 내부 동작을 깊이 이해하고 싶은 학습자에게 적합해요.
BFQ 비디오 재생 벤치마크: 반응성을 높인 대가로 프레임이 얼마나 떨어졌나
BFQ+의 low-latency 휴리스틱이 반응성을 높이는 대신 소프트 실시간 애플리케이션에 어떤 지연 시간 대가를 요구하는지 논문의 비디오 재생 벤치마크로 확인합니다.
NCQ가 켜지면 디스크 스케줄러 보장이 무너지는 이유 (BFQ 논문 실측)
Native Command Queueing이 활성화되면 BFQ, CFQ 같은 OS 스케줄러의 공정성·지연 보장이 어떻게 무력화되는지 논문의 실측 데이터로 설명합니다.
BFQ+ vs BFQ vs CFQ 실측 벤치마크: 처리량과 앱 기동 시간 비교
BFQ 논문이 세 대의 리눅스 시스템에서 실측한 집계 처리량과 bash·konsole 기동 시간 벤치마크 결과를 수치 그대로 정리합니다.