이 Plumbing Layer 란 Kernel 에서의 가장 기초적인 하드웨어 핸들링에서부터,
그것들간의 유기적 연결을 위한 Core Library (ABI 등) 을 총체적으로 칭하는것이다.
새 커널이 나와서 갑자기 생긴것도 아니고, 사실은 당신들이 잘 알고 있는
udev, hal, /sys 시스템 등이 전부 이 "배관" 층에 속하는 아이들이다.
또한 이것들을 주로 다루거나 개발하는 용자들을 일컬어 "Plumber" 라고 부른다.
내가 LWN 에서 하필 이 기사에 대해서 왜 포스팅하는가에 대해서는 지난주 올라왔던,
"The return of Unix Wars?" 라는 기사를 먼저 이해하면 좋다.
(http://lwn.net/Articles/494248/)
이 내용을 설명하기엔 1990년대 이전이나 그 즈음의 DOS 시절 얘기부터 해야하므로
너무나도 방대한 역사를 내가 일일히 설명해 줄 수 없을뿐더러,
엔지니어라면 다들 그냥 살아오면서 자연스럽게 겪어야 하는 역사이기때문에
단순 링크만 걸어 놓겠다.
(난 이때 10살쯤일텐데 대체 어떻게 다 잘 아는건지 이해할 수가 없긴하다만..)
뭐 무튼, 이 기사이후 IRC 나 메일링등에서 뭔가 좀 토의가 있었나보다.
즉, 리눅스도 배포판들이 Mobile 버젼이다 뭐다 하면서 여러가지로
갈라져 유닉스처럼 서로 표준화되지 않은 라이브러리들과 구조를 유지하느라
쇠퇴하여 자멸하지 않을거라는 근거가 어디있는게냐 라는 건데...
그것들에 대한 근거로 Corbet 은 "Linux Plumber" 들의 뛰어난 역할과 열정을 든다.
물론 배포판들은 수많은 갈래로 나뉘어져 있지만, 그걸 연결해주기위한 가장 밑 또는,
중간중간에 존재하는 "배관층" 이 리눅스 커뮤니티에 대한 공동체적인 파워 (Union Power)
를 잘 유지시키고 있기 때문에, 새로운 배포판이 나온다고 해도, 현재의 배관공들의
집합체라고 할 수 있는 "systemd" 로 대동단결 하면 되지 않냐 라는 주장이고
이로인해 지난주 기사에서 살짝 언급한 "Ubuntu 까기" 로 시끌벅적했던 논란을
정리하는 글이라고 할 수 있겠지.. 이전기사 보고오자 우분투에선 systemd 안쓰겠다고 했단다.
사실 systemd 로 오기 전에 이미 LSB(Linux Standard Base) 라고 하여
커널보다 높은 수준의 "범용배포용코어(Common Distribution Core)" 를
만들고자 하는 노력이 있었지만, 이미 공개되거나 밝혀진 부분의 시스템들에 대해서
제공되는 공통라이브러리도 매우 적었고, 쉽고 빠르며 공통된 배포를 위한 목적에도
부합되지 않아 커뮤니티의 관심을 이끌어내는데 크게 실패했었다..
또 LSB 말고 존재했던 "Unitied-Linux Project" 에 대해서도 기사에선 언급하고 있다.
이건 뭐 각자 알아보자 나도 모든 히스토리들을 다 알고 있지 않을뿐더러,
직접 찾아보는 재미가 있어야 술자리에서 할말도 많이 생기는 법이다 ㅡ.,ㅡ
무튼 Corbet 님 께서는 이런 리눅스 플럼버들의 엄청난 노력끝에,
D-Bus, udev, Bootstrap, Initializing 등의 모든 리눅스 커널에 아주 필요한 배관시스템이
마련되왔고, 이것을 정리하고자 하는 노력 끝에 만들어진게 "systemd" 라고 자랑하는데,
사실 Corbet 이사람이 아마 systemd 로의 대동단결을 애초에 주창했던걸로 기억하고,
안드로이드를 무쟈게 기대하고 바라보다 결국 버려졌던게 이 레이어가 지저분해서고,
나중에 다시 안드로이드 커널을 받아준 이유가 안드로이드가 systemd 를 채택했기때문에
이 모든 과정에 대해서 Corbet 의 입김이 작용되었다는 후문도..?? ㅋㅋ
게다가 이 모든 과정들은 C 라이브러리 형태로 제작되었기때문에 어떤 리눅스 배포판이라해도
커널에 잘 기반하여 결코 떨어지지 않을 라인을 구축하고 있는게 장점이란다..
단한가지 ABI 의 안전성문제인데, 워낙 "표준" 에 입각하지 않은 코드나 라이브러리를
사용하는 사람들 때문에 전체 플럼빙-레이어 ABI 에 잦은 변경이 발생 될 수 있고,
그걸로 인해 플럼버들이 엄청난 고통을 겪고 또 겪고 그러다 죽을지도 모른다는
절망감에 빠지는 일들이 발생할 수 있다는 것이다...
결론적으로 Corbet 이 하고자 하는 얘기는 단순히 "SYSTEMD" 가 뛰어나다던가,
이대로 안가면 표준이 아니야! 라기보다,
미래를 예측하기 힘들 만큼 선례를 찾기 어려운데,
모든 경우의 수를 가정해 보았을때, 그것에 대한 POSIX 표준이란것은 없으므로,
지금 가장 표준화 잘 되어있는 "systemd" 를 잘 숙지하고 따라와서 깊이와 감각을
유지할 필요가 있다! 라는 것이 결론..
기사에선 또한 데비안 개발자인 "Marco d'Itri" 의 메일을 인용하여
얼굴이 파랗게 질릴정도로 쉽지않고 불안함에 쩔어버릴 수도 있겠지만,
레드햇이 대부분의 리눅스 코어 컴포넌트들을 유지,관리하고 있는 이래로,
우리가 할 수 없었던 그 것들이 더더욱 할 수 없는 일이 되버렸다.
라고 표현했던 것을 재인용하기도 했다.
(표준화의 어려움과 이끌어 나가는것에대한 더 어려움을 표현한듯)
"배관계층" 개발에 있어서 누군가를 제외하거나 무시하는 것은 특별히 존재하지 않는다.
다만, 이것의 중요성을 인식, 인지하고 혼자서만 쓰거나 개발할 수 있는 코드가 아닌,
여럿이 공유하고 함께하여 통일된 거대한 힘 (Union Power) 을 이끌어 낼 수 있도록
노력하자는 것이 또하나의 결론인것 같다.
댓글들 보면서, 외쿡엔 역시 우분투 맹빠들이 많고, 은근 Upstream 에 대한
반감이 강한것을 알 수 있었는데,
덕분에 다시금 "Redhat" 이 추구하는 Open Source Business 의 목적은
"표준을 제공하는 것이다" 라고 했던 것이 떠올랐다.