우분투, 리눅스 최초로 X를 버린다

2010년 11월 6일 캐노니컬의 창립자이자 우분투 재단을 이끌고 있는 마크 셔틀워스는 자신의 블로그에

우분투는 X를 버리고 Wayland로 갈 것

이라고 밝혔습니다. 그보다 며칠전에는 11.04에서는 GNOME 쉘을 채택하지 않고, 우분투만의 UI 시스템인 Unity 데스크탑을 사용한다고 했었지요. Unity와 Wayland는 완전히 통합되어 멀티터치를 지원하고, GL 인터페이스를 기본으로, Compositing을 사용하게 될 것으로 보입니다. 이제 Compiz가 꺼지면 볼 수 있는 윈도 3.1 같은 화면을 더이상 볼 수 없게 되는 것이죠.(데스크탑 효과를 꺼도 기본적으로 Dock 같은 것은 쓸 수 있다는 것입니다.)X윈도우 시스템(X-Window System)은 1984년에 MIT에서 개발된 유닉스 표준 디스플레이 시스템입니다. 역사로 따지자면 벌써 30년이 다 되어가네요-_-;; 흔히 맥OS가 GUI의 시초인 것처럼 알려져 있지만, X윈도의 역사를 보면 그렇지도 않습니다. 맥OS와 비슷한 시기, 혹은 보다 앞선 시기에 이미 유닉스에서는 GUI가 쓰이고 있었으니까요.(물론 개인용 컴퓨터에서 유닉스를 쓰는 경우는 거의 없었지만 말이죠.) X는 이후에 리눅스에 포팅되어 더욱 널리 사용되었습니다. 이후 20년간 리눅스의 표준 디스플레이 시스템으로서 자리잡아왔죠.그러나 X는 다른 OS처럼 리눅스에 완전히 통합되어있는 형태는 아닙니다. 커널 위에서 동작하는 많은 응용프로그램의 하나로서 보는 것이 적당합니다. 그렇기 때문에 윈도나 맥OS에 비해 항상 구조적으로 느릴 수 밖에 없다는 비판을 받아왔습니다. 그로인해 X를 대체하려는 움직임도 계속 있었죠.대표적인 움직임이 노벨에서 제시한 GL을 기본으로 지원하는 X윈도우인 XGL이었습니다. XGL은 X를 완전히 대체하여 3D 인터페이스를 가능하게 하는 디스플레이 시스템이었죠. 그리고 XGL 위에서 그런 특징을 잘 살리도록 개발된 창관리자가 Compiz라는 녀석이었습니다. 반면 레드햇에서는 AIGLX라는 것을 제시했는데요, 이것은 X를 대체하는 것이 아닌 X를 개선하여 3D 가속을 지원하도록 하는 것이었습니다. XGL과 AIGLX는 리눅스의 오랜 전통처럼 둘 다 채택되어 사용되다가 XGL 쪽이 더이상 업데이트가 되지 않아서 Freedesktop.org에서 XGL을 폐기해버렸습니다. 최근에 우분투에서 Compiz를 사용하는 것은 X를 개선한 AIGLX입니다. X는 또 한번 제 자리를 지킨 것이죠.그런데 Wayland는 XGL과는 또 다른 양상을 띄고 있습니다. XGL은 X를 대체하여 사용되는 형태이긴 했지만, 사실 X가 하는 모든 역할을 대신하는 것에 지나지 않았습니다. 즉 X나 XGL이나 사실은 똑같은 X라는 것이지요.(뭔가 말이 오해가 있을 법한) 그러나 Wayland는 XGL처럼 네이티브 GL 가속을 지원하지만 예전에 X가 하던 일을 상당부분 커널에 맡겨버립니다. 그렇기 때문에 더 가볍고, 간단하며 성능에서도 X에 비해 우위를 낼 수 있습니다.Wayland는 2008년에 레드햇의 개발자인 Kristian Høgsberg가 시작한 프로젝트입니다. 기술적으로 자세한 부분은 저도 잘 모르겠지만, X와 Wayland가 다른 점을 요약한다면 딱 두가지입니다. “모든 것을 Direct Rendering하고, KMS를 사용한다” 모든 것을 Direct Rendering한다는 것은 X서버를 거치지 않고 하드웨어에서 직접 렌더링한다는 것을 의미하고, KMS(Kernel Mode Setting)을 사용한다는 것은 X에서 사용하던 UMS(User-space Mode Setting)을 사용하지 않고, 커널에 세팅을 맡긴다는 것을 의미합니다. 기술적인 부분은 저도 헷갈리니-_- 각설하고 말하자면 X보다 Wayland쪽이 커널에 더 의존적입니다.Direct Redering(DRI)와 KMS는 이렇게 말하면 무척 새로워 보이지만 이미 이 글을 읽고 계신 분들이 사용하고 계시는 우분투에 다 적용되어있는 기술입니다. DRI 덕분에 Compiz 같은 3D 효과가 존재하는 것이고, KMS가 있기 때문에 더 빠른 부팅 속도와 Plymoth 같은 미려한 부트 스플래쉬가 가능한 것입니다. 즉 이미 X에 다 적용되어 있는 기술들입니다.그러나 Wayland가 진짜 의미를 가지는 것은 바로 이러한 부분’만’ 담고 있다는 것입니다. X는 30년이라는 세월을 거치면서 발전해오는 동안 지나치게 방대해지고, 낙후된 코드들 담고 있는 경우가 많았습니다. 최근의 리눅스 시스템에서 사용되는 부분은 X의 지극히 일부분이고, 나머지는 다 쓸데없는 부분이라는 것이죠. Wayland는 리눅스에서 사용되는 그 작은 부분만을 구현하고 있습니다. 덕분에 X에 비해 더 가볍고, 빠른 퍼포먼스가 가능한 것이죠. Wayland의 소스는 3200줄의 C코드에 불과하다고 합니다.분명 Wayland는 낙후된 X보다 장점이 많은 시스템입니다. 그렇지만 Wayland가 X를 완전히 대체할 수 있을까요? 일단 기존의 X에서 실행되던 응용프로그램들 포팅되어야 하겠죠. 이부분은 gtk+나 QT의 이식 작업이 완료되었다고하니 크게 걱정할 것은 없어보입니다. 그 외에도 많은 프로그램들이 포팅되고 있고, 또 호환성을 높이기 위한 작업도 수월하게 진행되고 있으니 프로그램의 호환성 문제는 없다고 봐도 좋을 정도입니다.(게다가 이들 프로그램은 모두 오픈소스입니다. 포팅이 더욱 수월하겠죠^^)문제는 응용프로그램이 아니라 하드웨어 벤더입니다. 리눅스용 인텔 그래픽 드라이버는 EXA에서 UXA로 넘어오는 동안 무수한 삽질을 지속해왔습니다. GMA815부터 GMA3150에 이르기까지 다양한 그래픽카드를 하나의 드라이버에서 통합적으로 지원하다보니 성능도 제각각이고 문제 해결도 늦을 수 밖에 없었죠. 그렇다보니 X에서 Wayland로 이전하는 작업 또한 수월하지 않을 것 같습니다.현재 리눅스에서 최고 성능을 내는 드라이버인 Nvidia의 경우는 어떨까요? 인텔 드라이버는 그나마 오픈소스입니다. Nvidia는 하드웨어 업체에서 드라이버를 제공하는 독점 드라이버이죠. 커뮤니티 차원에서 Wayland에 포팅하는 것은 불가능합니다. NV나 Nouveau 같은 대체 오픈소스 드라이버도 있지만 아직 조악한 단계이죠. 또 설상가상으로 Nvidia는 드라이버를 Wayland에 포팅할 계획이 없다고 못박기도 했습니다. 그러면 ATI는 어떨까요? ATI의 카탈리스트 드라이버도 독점 드라이버이죠. 그나마도 리눅스에서 성능이 제대로 나오지 않고 있습니다-_- 그런 ATI가 성능 좋은 Wayland용 드라이버를 만든다. 가능성이 희박한 시나리오입니다.물론 Wayland 측도 이런 것을 대비하여 X와 드라이버를 최대한 호환되도록 만들고 있다고 합니다. 그렇지만 아직 Wayland는 초기 단계에 불과하기 때문에 얼마나 구현할 수 있을지는 미지수입니다. 그렇지만 하드웨어 벤더의 지원보다는 이 쪽이 더 희망적이네요-_-우분투 11.10에 Wayland가 탑재된다는 마크 셔틀워스의 말은 개인적으로는 믿기 힘듭니다. Wayland가 1년안에 우분투에 탑재될 정도로 완성될지는 아직 모릅니다. Wine도 원래 예정대로였다면 10.04쯤에 기본으로 탑재되었어야 하지만, 완성도가 떨어지다보니 여전히 탑재되지 않고 있죠. Wayland도 완성도에 따라 더 늦게 탑재될 가능성이 충분히 있습니다.그러나 세계에서 제일 많이 쓰이는 리눅스 벤더의 CEO로서 마크 셔틀워스의 선언은 큰 의미를 가집니다. 그 선언 이후 Wayland의 개발이 활발해졌기 때문입니다. 많은 우분투 개발자들이 자발적으로 Wayland 프로젝트에 뛰어들었고, 많은 테스터와 활발한 메일링을 갖게 되었습니다. Wayland를 창시한 Kristian Høgsberg는 그저 “취미로 여가 시간에 조금씩 하던 일”이라고 말했지만 마크 셔틀워스가 한번 선언했으니 이제 더이상 그런 단계에서 끝나지는 않겠죠^^Wayland의 발전과 함께 우분투는 맥OSX나 윈도 같이 가볍고 빠르고 Compositing을 기본으로 지원하는 디스플레이 시스템을 갖게 될 것입니다. Wayland의 발전을 기대해봅니다^^덧. 위 글은 기술적인 부분에서 오류를 담고 있을 가능성이 있습니다. 오류를 지적해주시면 달게 받아들이겠습니다ㅠㅠ덧2. 마크 셔틀워스의 발표 이후, id 소프트의 창립자이자, FPS의 아버지, 퀘이크의 개발자로 불리는 스타 개발자 존 카맥이 자신의 트위터에 Ubuntu + Wayland에 “시간이 있으면 기여하고 싶다”라는 메시지를 남겼습니다. 이와 더불어 인텔에서는 모바일 운영체제 Meego에 X대신 Wayland를 탑재한다는 계획을 발표하기도 했습니다.2008년 기사만 봐도 저사양 배포판, 리눅스 기반 ATM기에 쓰이면 성공이라는 평가를 받았던 Wayland가 마크 셔틀워스의 블로그 글 하나로 크게 달라지고 있습니다. Nvidia는 현재로서는 계획이 없다고 공식 발표했지만, 결국 대세에 따를 수 밖에 없겠죠. 새삼 리눅스와 우분투의 발언력이 이렇게 커졌나 싶은 생각이 듭니다^^

Ubuntu에 게시되었습니다