|
VS |
|
간만의 포스팅이군요. 한동안 Long Live The Queen 한글패치 관련 작업 및 다른 일 떄문에 글을 전혀 올리지 못했습니다. 이제 원래 블로그 주제에 맞는 글을 다시 올려야지요. 다시 한번 말하지만 여기는 우분투/리눅스민트 사용 및 리눅스에 대한 이야기를 적는 블로그니까요. 기타 삽질 카테고리가 우분투 카테고리보다 늘어나면 블로그명 부터 갈아엎을 겁니다.
이제 서론은 그만두기로 하고, 이번 포스팅 주제를 다시 이야기 하도록 하겠습니다. 이번 포스팅 주제는 지는 해 Xorg와 뜨는 해 Wayland에 대해 써보도록 하겠습니다.(뜬금없이 나타난 해 - Mir는 제대로 공개가 되면 이야기 해봅시다.)
1. Xorg 이것은 무엇일까?
Xorg는 최초의 GUI 시스템인 X윈도우(X11)의 일종입니다. XFree86이 최초의 GUI 구현체였지만 이것이 라이센스가 꼬이면서 사람들은 마지막으로 라이센스가 GPL이었던 버전을 그대로 Fork해서 새로이 만들어내었습니다. 이쪽은 라이센스가 여전히 GPL 혹은 LGPL이었기에 커뮤니티 기반의 리눅스/유닉스 배포판에서 환영을 받았습니다. 물론 대부분의 배포판이 전부 Xorg로 넘어간것도 다 라이센스문제 때문이었지요. 특히 GPL이 꼬여있는 것이 문제였습니다. (이후에 비슷한 일이 OpenOffice.org와 LibreOffice에서 일어납니다.)
그런데 Xorg는 바로 전에 말했듯이 기존의 만들어졌던 XFree86의 후손이기에 소스코드가 XFree86기반이었고, 이 소스는 자그마치 80년대에 만들어진 코드였습니다. 즉, 만들어진지 30년이 된 시스템을 이리저리 때워가며 만든 것입니다. 그런데 2010년대에 들어선 지금에도 대다수 리눅스/유닉스의 GUI는 거의 Xorg 혹은 XFree86입니다. 사실 그동안 많이 쓰이기도 했고 대다수 프로그램들이 이 X11기반으로 돌아가기 때문에 당연하게도 이 Xorg를 이리저리 고쳐서 쓰는 실정입니다. 사실 중간에 격변을 거치기는 했습니다. 문제는 격변이 덩치 불리기로 이루어져서 코드 최적화가 더 이상 불가능할 정도로 안드로메다로 날아가 버렸다는 것이 문제입니다. 그리고, 새로운 그래픽 카드들은 계속 나오고 있고, 이를 지원하기 위한 각종 기술들이 들어가기 시작했고, KMS나 DRI, AIGLX 등의 많은 기능이 추가되게 됩니다. 문제는, 이를 다 쓰기에 Xorg는 너무 낡은 코드를 사용했고, 가벼운 데스크탑을 지향하기에는 조금 무리가 따르게 되었다는 것입니다. 그러던 어느날, Wayland란 녀석이 눈에 띄게 되면서 이 물건이 Xorg의 자리를 노리기 시작합니다.
2. Wayland의 정체
Wayland는 사실 레드햇 개발자가 따로 떨어져나와 시작된 프로젝트였습니다. 꼭 필요했던, 하지만 아무도 시작하지 못했던 그런 프로젝트였지요. 그런데, Wayland 이놈은 대부분 기능을 커널에 넘겨버리는 짓을 합니다. 즉, 커널이 디스플레이의 대부분을 담당하게 하면서, 자신의 몸집을 줄이는 방향을 택한 것이지요. 사실 KMS와 DRI기능이 커널에 들어가면서 이것이 가능하게 되었는데, 지금 사용하는 리눅스 데스크탑은 전부 사용하고 있는 기술입니다. 언제부터 갑자기 xorg.conf 삽질을 하지 않아도 알아서 해상도가 잡히고, 입력 장치들이 알아서 인식되는 등, 한번 Xorg에 큰 변화가 이루어진 적이 있었는데, 이것이 바로 KMS가 있었기에 가능했던 것이지요. 아마도 KMS가 본격적으로 지원된 커널이 2.6.35버전부터 였을 것입니다. 아무튼 Xorg의 코드 사용은 점점 줄어가는데 정작 Xorg는 코드가 너무 방대해서 이 코드들을 줄일 방법이 전혀 없었습니다. 지금도 레거시 지원이라는 명목으로 예전 방식 그대로 설정을 하면 그대로 먹히기는 합니다만, 해상도 설정이나 입력장치 설정 같은 것은 굳이 예전방식으로 할 이유는 없다고 봅니다. KMS방식이 훨씬 빠르기도 하고 가볍기 때문이지요.
Wayland는 이를 중점으로 삼고 기존의 X11이 사용하지 않거나 사용되지 않게 될 부분을 과감히 쳐내고 필요한 부분 만을 구현해서 만들어냅니다. 이를 통해서 훨씬 작은 시스템이 가능해지고, 가벼운 데스크탑 환경을 만들 수 있게 되었습니다. 실제로 Wayland는 Xorg의 1/10크기 정도라고 하네요.
3. Xorg는 이대로 사라질 것인가?
Xorg도 그렇고 Xfree86도 그렇고, 이 물건들은 자동차로 치면 거의 포니 수준입니다. 그런데 이 포니에 HUD장치를 달고, 내비게이션을 달고, 이것저것 장치를 주렁주렁 달려고 하다 보니, 자동차가 삐걱거리기 일쑤에 지금은 쓰지 않는 쓸데없는 것도 생기게 됩니다. 이미 낡은 자동차에 장치만 잔뜩 달면 기름도 많이 먹겠지요? 참 보는 사람도 답답할 지경입니다.
이런 차에 내비게이션 달고, ABS브레이크를 넣고, 아이팟 시스템을 달고, HID라이트를 달고... 그냥 차를 바꾸는 것이 낫지 않을까? 사진은 현대 포니 출처 - 위키피디아
분명히 지금 사용하는 X11기반 프로그램들도 Wayland로 포팅될 것은 확실해 보입니다. KDE나 Gnome같은 메이저 데스크탑 환경도 Wayland로 포팅중이고 QT5기반의 새로운 Wayland기반 데스크탑 환경도 니왔습니다. (이름은 Hawaii입니다. MAUI프로젝트에서 진행 중입니다. (http://www.maui-project.org/) 그런데 Wayland로 넘어가기 위해 우리는 어떻게 해야 할까요? 사실 우리는 Wayland가 나왔다고 무조건 바꿀 수 있는 상황이 안 됩니다. Wayland만으로는 인터넷조차 하기 버거운 상황이거든요. Firefox가 Wayland기반이 아니라 여전히 X11을 이용하기 때문에 간단한 인터넷도 현재 Wayland만으로는 부족합니다. Firefox나 Chrome도 결국에는 X11기반이 아닌 다른 물건으로 바뀌겠지만, 그것이 Wayland가 될지 아니면 다른 프로젝트의 결과물(Mir같은...)이 될지는 아무도 모릅니다. 그 때쯤이면 Xorg는 추억속의 물건이 될지도 모르겠습니다.
4. Wayland를 지금 써보고 싶다면?
현재 Wayland는 그럭저럭 쓸만한 수준까지 만들어져 있습니다. 그런데 이를 제대로 활용한 배포판이 많지가 않습니다. Debian에 Wayland는 있지만 Debian이 그렇듯이 검증 안 된 패키지는 저장소에 잘 안 들어가게 됩니다. 따라서 Debian은 Wayland를 이용하기 좀 어려운 배포판입니다.(물론 Unstable이나 Sid를 이용하면 되기는 합니다.) Wayland를 써보시겠다면 ArchLinux로 써보시길 추천드립니다. Wayland같이 안정 버전이 없거나, 검증되지 않은 패키지는 빠른 업데이트가 제일 중요한데 Arch같이 빠른 업데이트를 지원하는 배포판은 없기 때문입니다. 게다가 다른 배포판(Debian계열이나 Ubuntu계열이 대표적으로)은 wayland 패키지를 설치했어도 xorg패키지를 설치하지 않으면 GUI설정이 전혀 안되거나 스크립트를 이리저리 뜯어야 하는 문제가 있지만, Arch는 원래 GUI부터 수동이라 Wayland설정을 하기가 더 쉽습니다. 위에서 말한 MAUI프로젝트도 Arch기반인 것도 다 이유가 있는 것이지요. https://wiki.archlinux.org/index.php/wayland 여기의 내용을 그대로 따라하시면 Wayland 기반의 Arch환경을 구축 하실 수 있습니다. 여기에 X호환환경을 만들어주는(사실 Wayland내에 Xorg를 올리는 형태지만) Xwayland를 갖춰주시면 지금도 쓸만한 데스크탑환경이 됩니다.(Xwayland를 이용함으로써 X11기반 프로그램도 쓸 수 있습니다.)
반대로 Xorg환경내에서 wayland를 이용하고 싶으시다면 기존의 X11기반의 배포판에 wayland를 설치만 해주시면 weston 명령으로 wayland를 창 형태로 돌려보실 수 있습니다.다만, wayland전용의 환경은 많지 않아서 말 그대로 테스트 그 이상의 효과는 못 낼 것 같습니다. 하지만 X11용 그래픽드라이버를 이용하면서 가속도 할 수 있으니, nvidia나 따끈따끈한 신형 AMD GPU 이용자(Catalyst만이 해답인..)라면 이걸로 쓸 수 밖에 없을 것입니다. Wayland는 오로지 오픈소스 드라이버만이 사용 가능하니까요.
5. 잠깐 Xwayland라고요?
위에서 저는 언젠가는 X11기반 프로그램들이 Wayland 기반으로 포팅 될 것이라고 했습니다. 하지만, 사실 Wayland는 X11호환을 위한 라이브러리가 준비 되어있습니다. 제가 Xorg환경내에서 weston명령을 쓰면 새 X11창 내에 Wayland 환경이 뜬다고 했지요? 그걸 반대로 뒤집으면 된다고 생각하면 됩니다. Wayland환경내에 X11환경을 띄우는 것입니다. OSX도 비슷한 짓을 하니까(X11을 내부에서 돌립니다.) X11자체는 크게 패치를 할 것이 없을겁니다. 이 것을 이용하면 Wayland로 포팅이 이루어지지 않은 프로그램도 쉽게 쓸 수 있게됩니다. 예를 들면 지금의 유료프로그램을 들 수 있겠네요. Matlab이라든가, 한글2008같은 프로그램 것 말이지요. 특히 한글은 wayland로 포팅 될 일이 없을 테니 꼭 필요해 보입니다. 그런 프로그램들을 위해 Xwayland가 준비 되었는데, X11이 완전히 사라지게 되면 Wayland내에서도 바로 내 쳐질 것입니다. 어차피 호환을 위해 만들어진 기능이니까요. 하지만 X11이 30년동안 쓰여오면서 그 기반 프로그램을 무시 못하니 Xwayland가 만들어진 것입니다. 30년 동안 쓰인 GUI서버가 언제쯤 사라지게 될지는 알 수 없지만, 그 때까지 부족한 Wayland기반 프로그램들을 대신해줄 물건임에는 틀림 없습니다.
6. Wayland외의 또 다른 경쟁자는?
과거의 X11을 대체하기 위해 만들어진 프로젝트는 많았습니다. 그나마 뚜렷한 성과를 보인 것은 XGL(OpenGL기반 X11대체 프로젝트)이 있었습니다. 하지만 이도 AIGLX(X11 개선에 초점)에 의해 밀렸고, 지금까지도 X11이 쓰이게 됩니다. 즉, Wayland같이 이렇게 가시적인 성과를 보인 프로젝트는 거의 없었던 것이지요. 딱 하나만 제외하고요. 우분투를 만들어서 배포하는 캐노니컬의 Mir가 현재로써는 유일한 경쟁자로 보입니다. Mir가 어떻게 나올지 어떤 모습을 하게 될지는 캐노니컬이 공개를 하지 않아서 알 수는 없지만, Wayland와 비슷한 형태가 될 것이라고 생각은 듭니다. 어쩌면 XGL vs AIGLX 때처럼 Mir vs Wayland가 될 가능성도 있겠지요. 어떤 프로젝트가 사라지게 될지 아니면 둘 다 살아남아서 서로의 장점을 이끌어낼지는 아무도 모릅니다. 하지만 Mir가 공개된 정보가 많지가 않아서 Wayland와 다르게 알 수가 없습니다. 지금 당장 사용해 볼 수도 없고 알 수도 없어서 아직까지는 Wayland가 대세라고 생각합니다. Mir는 이 Wayland를 뛰어넘어야만 세상에 공개 될 것 같습니다.
리눅스/유닉스는 X11을 통해서 GUI란 놈을 세상에 알렸습니다. 실제로 GUI를 제대로 퍼뜨린 것은 Apple이지만, GUI의 개념을 제대로 만들어 낸 최초의 결과물은 X11이었지요. 이제 그 X11이 역사속으로 사라질 준비를 하고 있습니다. 다만, 역사속으로 사라지려면 좀 시간이 많이 걸릴 것 같네요. 과연 Wayland가 성공적으로 안착을 할 수 있을까요? Xorg는 역사 속으로 사라질 수 있을까요? 리눅스/유닉스의 GUI는 또 어떻게 바뀔까요? 모바일 시대로 넘어가는 이 때의 Wayland가 모바일 시대에 맞춰서 나올 수 있을까요? 10년 뒤의 모습이 정말 궁금합니다.
2016. 3. 23 추가
2016년이 되고보니 Mir도 공개되고 Wayland와 맞붙을 준비가 되었습니다. 아직 Mir가 지원하는 환경이 많지는 않지만 Wayland가 지금까지 걸어온 길에 비해 상당히 순항을 한 것으로 보입니다. 특히 이제는 Unity가 불편한 UI가 아닌 빠릿하고 편리한 UI라는 평가를 받는 지금 Mir가 Wayland에 비해 이득이 더 클 것으로 보입니다. 아쉬운 것은 Wayland가 아직까지도 안정화가 안 되었다는 사실입니다. Mir는 이제 16.04에 탑재 되는 것으로 잠정 결론이 났는데(15.10에서 설치가 가능합니다.)Wayland는 아직까지도 안정화가 되었다는 느낌이 없습니다.
이렇게 가다가는 Wayland를 10년뒤에나 제대로 볼 수 있을지도 잘 모르겠습니다.
'약간의 리눅스관련 고찰' 카테고리의 다른 글
Catalyst와 리눅스 말말말 (8) | 2014.09.29 |
---|---|
Distrowatch의 영향력은 얼마나 큰 것인가? (0) | 2014.08.29 |
리눅스가 게임플랫폼? 리눅스에서 게임하는 이야기 그리고 SteamOS이야기 (2) | 2014.07.29 |
리눅스와 ACPI (6) | 2014.07.24 |
리눅스 한글사용 관련 문제 (0) | 2014.07.23 |