리눅스를 다른 사람들에게 별로 추천하지 못하는 이유 중 하나가 응용프로그램, 그 중에서도 게임이 안 된다는 것이 주 원인입니다. 우분투 8.04 시절에 Compiz의 화려한 효과를 보여주면 사람들은 우와~ 했지만 언제나 돌아오는 질문은 "근데 이거 게임 되냐?"였습니다. 그 당시에 제가 할 수 있던 대답은 하나였지요.


"스타 정도는 삽질하면 돌아가."


네 삽질 좀 해야 스타가 돌아가던 시절이었습니다. 물론 스타가 돌아간다는 사실 만으로도 행복하던 시절이기도 했지요. 물론 리눅스용 게임으로 퀘이크가 있기는 했지만 지금이나 그때나 퀘이크는 아는 사람만 아는 게임이었습니다. 퀘이크라고 해봐야 "그게 뭔데?"라는 질문만 돌아올 정도였으니 예시로 들기에는 부적절했습니다. 그래서 하는 수 없이 그 당시에도 꾸준한 인기가 있었던 스타크래프트를 예로들었지요.이후에 Wine이 꾸준히 개발되며 호환성을 상당히 확보했고 표준 Windows API가 아닌 특이한 방법으로 만들어진 게임이 아닌 이상 어쨌건 게임이 되긴 되는 시대까지 되었습니다. Wine이 거의 완벽한 호환성을 갖추게 된 때가 아마도 2009~2010년이 되었을 때였을 것입니다.


그리하여 Wine을 이용해서 수많은 윈도용 게임을 리눅스에서 할 수 있게 되었습니다. 물론 패키지게임의 경우 DRM들이 문제를 왕창 일으키기는 했지만 No-CD, No-DVD 패치들이 인터넷에 돌아다녔기 때문에 보통 이를 이용해서 해결했습니다.


우분투 10.04시절 롤러코스터 타이쿤3 구동 스크린샷 저의 Daum블로그에 올렸던 스크린샷입니다. 그래픽은 기본 wine으로 구동 음악은 DirectX9 라이브러리 설치후 설정으로 해결

어쨌건 이제 리눅스에서 게임이 안 된다는 말은 옛말이된지 오래되었습니다. 다만 Wine을 이용한 방법은 생각 외로 복잡해서 설치하는 사람에게 고통을 자주 안겨주었습니다. 그 때 해결 방안을 함께 알려준 물건이 바로 PlayonLinux입니다.(http://www.playonlinux.com) 이전에도 포스팅을 했었지만 PlayonLinux는 Wine만으로 게임하기가 너무 불편하고 힘들자 Wine을 버전별로 관리하게 하고 각 프로그램마다 가상 윈도(즉, Wine의 FakeWindows를 말합니다.)설정을 다르게 해서 게임 별로 관리하기 쉽게 만든 것이 특징입니다. 지금은 게임 외의 다른 프로그램도 지원하지만요.



무엇보다 게임설치에 필요한 라이브러리(DirectX같은 것을 말하는 것입니다.)를 자동으로 미리 설치해주고 설치를 쉽게 하도록 안내해주고 있어서 이 프로그램을 이용하면서 리눅스에서의 윈도 게임은 쉽고 빠르게 즐길 수 있게 됩니다. 사실 PlayonLinux 이전에도 Wine을 편하게 쓰기 위해서 많은 시도가 이루어져 왔습니다. Wine-doors라던가 Cedega(이것은 자체 개발한 유료 라이브러리인 WineX라는 것을 이용합니다.)라던가 많이 있었지만 PlayonLinux와 Cedega와의 차이는 사용 라이브러리가 Wine이냐 WineX냐의 차이였고 Wine-doors는 그냥 Wine을 GUI로 쓰고자 하는 경우에 가까웠습니다. winetricks(https://code.google.com/p/winetricks/)를 통해 라이브러리르 설치하는 것도 물론 없었고요. PlayonLinux의 설치스크립트 같은 것은 없었습니다. PlayonLinux가 지금은 게임 만큼이나 다른 일반 프로그램설치도 지원하지만 지금도 게임이 제일 많이 리스트에 있습니다. 그것이 사실 처음에는 게임에 특화 시켰던 흔적 이라고도 볼 수 있습니다. 


하지만 PlayonLinux는 모든 게임을 자동으로 완벽하게 해주지는 못했습니다. 바로 No-CD,DVD패치가 법적인 문제가 있어서 이용자가 따로 패치를 하도록 구성을 할 수밖에 없었기 때문입니다. "패치만 해주면 되는데 상관없지 않나?"라고 생각하시는 분들도 있을 수 있는데 처음 쓰는 사람에게는 그것도 은근히 고역입니다. 게다가 No-CD,DVD패치를 구글링 해야하는 수고도 필요했고요. 그런데 이때 DRM-FREE를 표방한 사이트가 등장하게 됩니다. 바로 GOG.com입니다. 이 GOG.com에서 파는 게임들은 따로 패치를 하는 수고로움이 없어졌기에 PlayonLinux에 리스트업됩니다. 이 때 상당히 업데이트가 잦았던 것으로 기억합니다. GOG.com에 새로운 게임이 올라오면 그 순간 새 설치리스트가 올라올 정도였습니다.


DRM-FREE게임을 판매하는 GOG.com 이제는 윈도용 뿐만 아니라 리눅스게임도 팔고 있습니다.


이제 리눅스에서는 Wine의 힘을 얻고 윈도용으로 출시된 게임들을 할 수 있게 되었습니다. 하지만 인간의 욕심은 끝이 없지요. 컴퓨터의 최고 성능을 끌어내야 하는 게임에서 Wine을 한번 거쳐야 한다는 사실은 게임에게는 좀 부족했었던 것 같습니다. 특히 네이티브 리눅스 지원게임과 윈도게임을 Wine으로 돌리는 것은 정말 큰 차이가 났습니다. 이후로 리눅서들은 리눅스 네이티브 게임을 갈망했는데 이를 한번에 뚫어준 것은 다름 아닌 세계 최대 게임유통사(?) Valve였습니다.

스팀에서 팔고있는 리눅스 지원 게임들 자그마치 600여개가 넘어간다. 그 중에서 문명5도 포함되어져 있다.

Valve는 아시는 대로 Steam이란 거대 유통망을 가지고 있는 회사입니다. 그리고 PlayonLinux에 따로 Steam이 있을 정도로 Steam을 이용한 게임을 돌리기 위한 노력도 정말 많이 있었습니다. 그런데 어느날 Valve는 Mac용 Steam을 발표하면서 FAQ부분에 의미심장한 부분이 추가되게 됩니다.


Q : Linux용은 없나요?

A : 아직 Linux용은 개발되지 않았습니다. 하지만 Wine을 이용해서 Windows용 Steam을 실행해 볼 수 있습니다.


정말 이렇게 나와있었습니다. 아마도 Mac용이 출시 된다고 했을 때 Linux용에 대한 문의가 많았던 것 같습니다. 그래서인지 Wine으로 실행이 가능하다고 친절(?)하게 답을 달아주었습니다. 실제로 이 때 Wine으로 Valve사 게임은 충분히 돌아갔으므로 틀린 말은 아니었지요. 하지만 이 일이 기폭제가 되었을지는 잘 모르겠습니다. 어느날 Valve는 갑자기 Linux용 Left4Dead2를 시연하면서 Linux용 Steam을 발표하게 됩니다. Steam의 전부는 아니지만 Steam의 이용 목적이라고 할 수 있던 Valve사의 게임을 Linux로 포팅 하겠다는 발표도 빼놓지 않았습니다. 리눅스 커뮤니티는 전부 뒤집어졌습니다. 어떤 분은 이런 글을 남기셨더군요.

"Valve가 리눅스로 도망간 내 지갑을 또 노리고 있다."

어쨌건 이로써 Lefrt4Dead나 TeamFortress2 등의 굵직한 게임들이 리눅스 네이티브로 출시되게 되었습니다. 물론 리눅스용이 따로 있었던 게임들도 Steam을 통해서 리눅스용을 구입할 수 있게 되었습니다.

 사실 이렇게 되어버린 것도 시장경제논리에 따른 것입니다. 그 원인은 Microsoft가 만든 것이고요. 무슨 말이냐면 Microsoft가 WindowsStore를 Windows8에 끼워넣자 Valve는 Steam의 영향력이 줄어들 것이라 생각하고는 Windows외의 도피처를 생각하게 됩니다. 사실 Microsoft의 윈도 끼워넣기로 잘 나가던 회사가 망한 것이 한둘이 아님을 감안하면 충분히 예상은 가능했지요. 이 때 Valve가 생각한 것이 바로 리눅스였던 것입니다. MacOSX도 있지만 어차피 얘네도 앱스토어가 있어서 자신들이 직접 게임을 팔겠다고 나서기 충분한 상황이었습니다. 지금도 실제로 팔고 있고요. 그 다음 플랫폼은 바로 리눅스입니다. 점유율은 다른 OS에 비하면 박살이기는 했지만 충분히 경쟁력은 있다고 생각했음이 분명합니다. 어쨌건 Valve는 결국 리눅스 중에서도 특히 데스크탑용으로 많이 쓰이는 우분투 용으로 Steam은 출시되게 됩니다. 그리고 우분투 게이머들은 환호했구요. (물론 그들의 지갑은 가벼워졌다고 합니다.)


그런데 Valve는 Microsoft를 보면서 한 가지 더 생각한 것이 있었던 것 같습니다. Microsoft가 자신의 플랫폼을 가지고 시장을 좌지우지 한다고 판단한 것인지 Vavle는 리눅스를 기반으로 한 SteamOS를 발표하게 됩니다. 이미 자사 게임들을 리눅스 용으로 내놓았고 리눅스용 게임도 충분하니 이 SteamOS도 크게 꿀릴 것인 없다고 판단한 모양입니다. 아니면 Steam의 점유율을 새로운 플랫폼 창조로 잇겠다는 극히 Valve스러운 행보일 수도 있고요.


이 SteamOS는 리눅스를 기반으로 한 또 다른 OS이기도 하지만 오로지 Steam만을 위한 OS이기도 합니다. 사실 일반 적인 리눅스 데스크탑에 Steam을 설치한 것과는 크게 다르지 않습니다만 필요한 것만 설치하고 다른 것은 일체 배제함으로써 OS를 게임용으로 최적화를 가능케 한 면이 있지요.


그리고 이 SteamOS를 기반으로 소위 SteamBox란 것도 있고 터치패드를 이용한 Steam용 게임패드도 개발중에 있습니다. 즉, Steam을 이용해서 거실의 최강자 Microsoft와 Sony 그리고 Nintendo의 자리까지 노리겠다는 수로 보입니다. 어찌보면 Micorosoft에게 복수한 것이 아닐까 생각이 들 정도네요.


하지만 이 SteamOS의 성공을 판가름할 열쇠도 다름 아닌 리눅스용 게임들입니다. Valve는 WindowsPC에서 스트리밍해서 플레이 가능케 하겠다고 하는데 그래봐야 리눅스 네이티브 보다 성능이 떨어질 것은 뻔합니다. 다시 한번 말씀드리지만 게임이란 하드웨어의 성능을 제일 많이 필요로 하는 프로그램입니다. 스트리밍만으로 부족할 가능성이 높습니다. 무엇보다 아직까지도 스트리밍이 구현되었다는 소리를 못 들었습니다. 스트리밍의 성능이 어느정도 나올지는 일단 나와봐야 알 것 같고 현재 SteamOS에서 돌아가는 것은 오로지 리눅스용 게임들 뿐입니다. 이 게임 중에 킬러컨텐츠는 얼마나 있을까요? SteamOS가 성공하면 리눅스는 이제 게임하기 어려운 OS가 아니게 될 것입니다. 다른 프로그램을 몰라도 게임하나 만큼은 자신있는 플랫폼이 될 수도 있습니다. 제 나름대로는 이 SteamOS가 꼭 성공하기를 바랄뿐입니다.


제가 리눅스를 처음 접했던 시절에는 정말 게임하기 힘들었습니다. 아니 애초에 게임을 하려고 한 발상자체가 말이 안 되던 시절이기도 했지요. 그런데 이제 7년정도 지나가니 리눅스가 게임 전용 플랫폼이 되기도 하네요. 덕분에 요즘에는 몇몇 친구들 한정해서 우분투 써보라고 하기도 합니다. 왜냐하면 게임도 잘 돌아간다고 얘기해 줄 수 있거든요.

,

컴퓨터를 쓰다보면 ACPI란 말을 자주 듣게 된다. 사실 윈도를 설치할때 몇번 듣게 됨과 동시에 전원이 자동으로 꺼지지 않으면 사용하란 말도 듣게된다. 이 ACPI란 무엇일까? 

ACPI란 일종의 컴퓨터 전력관리 표준규격에 일종이다. 우리가 시스템종료를 실행했을때 따로 스위치조작없이 전원이 나가는것도 이 ACPI때문이며 노트북에서 배터리모드로 자동 전환되는것도 바로 이 ACPI의 규격에 나와있는것이다. 헌데 이 ACPI가 표준그대로 잘 만들어지면 크게 문제는 없겠는데 PC제작사에서 대충 동작만 가능하게끔 만들어놓곤 하는것이 문제다. 이 동작여부도 오로지 당시의 대세윈도만 여부를 판단한다. 지금시점이라면 윈도7이 될것이다. 대기업PC라면 미리 탑재된 윈도만 동작확인을 하며 다른OS는 신경도 안쓰기 마련이다.

사실 윈도에서도 규격에 맞지않게 만들어졌다면 당연히 정상작동을 안해야 하는데 윈도란것이 워낙 괴랄한 하드웨어지원을 하는터라(레거시지원이 제일 잘되는OS가 바로 윈도)신기하게도 작동을 한다. 

문제는 여기서 발생되는데 다른OS를 설치해서 사용하는경우 이 ACPI설계가 개판이면 정상작동여부가 불투명해진다는 것이다. 대표적인것이 2.6.38때 벌어진 pci-e과열사태가 있다. 윈도야 워낙 잘 돌아갔지만 aspm을 강제 활성화하지 않은경우 리눅스에서는 배터리광탈 및 과열을 일으켜버리고 사망하시는 일이 일어났는데 일부 비표준ACPI지원과 관련이 있다고 한다. 그도 그럴것이 리눅스를 미리 탑재하고 출시되는 PC는 몇 안되니 리눅스의 점유율을 높이려면 기존 윈도와 동거(?)하던가 윈도를 밀어내고 자리를 차지하는 수밖에 없다. 그런데 그 윈도 기본탑재PC들이 저런 개판ACPI를 달고 다니는 경우가 꽤 있다보니 리눅스도 윈도마냥 괴랄한지원을 추가하는 수밖에 없다.

그런 비표준ACPI지원하려다 생겨난 버그도 생기고 하는터에 최근 리눅스는 전력관리 테이블조차 윈도의 것을 그대로 쓰는것으로 밝혀졌다. 아니, 사실 PC마다 멋대로이기는 해도 OS별 전력관리테이블이 존재해서 팬컨트롤이나 cpu스로틀링 같은것을 해당테이블에 맞춰 운영하게 되어있는데 보통은 리눅스용 테이블이 만들어져있어서 이것을 이용하지만 이것마저 개판인 경우도 많다보니 그냥 리눅스에서 리눅스용 테이블대신 윈도용 테이블을 가져다가 사용한다는 것이다. 제 아무리 많은 발전을 한 리눅스라고는 해도 윈도와 전원관리 철학이 다르지 않았던가(리눅스는 전원절약보다는 안정을 선호 윈도는 노트북에 한해 전력최소를 지향)하지만 워낙PC제조사들이 막장짓을 자주해서인지 커널부터 윈도용을 가져가 쓴다니...(물론 부트옵션으로 리눅스용 테이블을 쓰게끔 할 수도 있다)

어쨌건 불행인지 다행인지 옛날에 꽤 문제를 닐으키던 ACPI활성화 문제는 적당히 해결이 됐는지도 모르겠다. 하지만 지금도 가끔 최신 하드웨어에서 전력관리가 안 되어서 과열및 전력광탈 현상이 아직도 목격되고 있다. 시간이 지나면 자연스럽게 해결될 문재라고는 한다. 그런데 그게 언제냐고...

옛날이야기를 하자면 우분투 라이브 옵션 중에 acpi=off 옵션이 붙어있었다. 이것은 아에 acpi를 무시하겠다는 의미로 팬이 왕왕돌아가면서 사용자의 귀를 간지럽히게 된다. 그리고 자동 셧다운도 작동하지 못했다. 어떤의미인줄 알겠는가? 리눅스에서 acpi를 지금수준으로 지원하는것도 거의 기적이라고 생각이 들 정도다. 이러니 아직도 리눅스가 전력관리 못한다는 소릴듣지...

정말 리눅스는 언제쯤 메인 대세가 될 수 있을 것인가... 아니면 PC제조사들이 신경써서 표준그대로 설계하면 참 좋을텐데(실제 호환이 가장 뛰어난 하드웨어는 애플의 물건이다)

,

리눅스 데스크탑에서 매번 겪는 문제중 하나는 바로 한글과 관련된 문제이다. 워드프로세서 한글이 아닌 글자 한글이 문제인 것이다. 지금은 보통 UTF-8이(당연하게도)기본 환경이므로 한글을 띄우는데에 삽질이 필요치 않지만 가끔 EUC-KR을 요구하는 환경이라던지(주로 M$환경에서 작업한 결과물이 이런 식이다.) 아니면 폰트가 가끔 빠져서 한글을 띄우기는 하는데 네모네모네모로 뜬다던지 하는 현상이 일어나곤 한다.

초기 리눅스 민트의 경우 한글폰트가 빠진채로 배포가 되어서 한국어로 설치를 하면 모든 설명이 네모로 나와서 사람을 고생시키곤 했었다. 그런데 리눅스민트도 아니고 한동안 별 문제를 안 일으켰던 우분투14.04에서 난데없는 한글글꼴문제가 터지고 말았는데 이번에는 이전과 반대로 리눅스민트나 다른 데스크탑환경이라면 별 문제는 없지만 Unity환경을 사용한다면 꽤나 치명적인 문제가 되어버렸다. 나는 리눅스민트로 이미 넘어간지 오래지만 안드로이드 관련 개발을 하는 사람들은 그냥 별 생각없이 Unity환경의 우분투를 사용하고있다. 이런 사람들은 배포판을 업그레이드 했다가 멘붕을 조금 먹었다고 한다. 다행히도 이를 해결하는 스크립트가 나왔다고 하는데 이런 일이 있을 때마다 리눅스 데스크탑을 추천해주기가 민망해진다. 이런 간단한 문제조차 삽질을 하게 만드는데 과연 어떤 사람들이 리눅스 데스크탑을 쓰려고 할까?

게다가 리눅스 점유율을 끌어올려줄거라 믿었던 Steam 리눅스용도 약간 한글 문제를 겪고 있다. Steam자체내에서는 문제가 없는데 Steam용 게임들에서 문제가 일어나는 것이다. 한글로 떠야할 자막이 폰트문제로 네모네모로 뜨는 문제다. 특히 Valve사 게임에서 이런 일이 자주 일어나는데 Source엔진의 문제인 것인지 아니면 리눅스환경 자체의 문제인지는 잘 모르겠다. 엉뚱한 폰트를 자꾸 찾는 것 봐서는 Source엔진의 한글지원 문제로 보인다.

윈도에서 압축을 한 파일의 경우에도 리눅스에서 그냥 생각없이 풀어버릴 경우 한글로 된 파일명이 와장창 깨지는 것을 볼 수 있다. 이것은 Repairer라는 노틸러스 확장이나 wine으로 설치한 반디집으로 해결 가능하다. kozip이라는 것도 개발되었고 반디집의 경우 리눅스데스크탑을 설치하면 Playonlinux를 설치한 다음 바로 설치하는 프로그램이기 때문에(alz와 egg지원을 위해서) 딱히 불편함을 느끼지 못한다. 하지만 이것은 어디까지나 유니코드표준인 UTF-8이 아닌 CP949환경을 사용하는 윈도 때문이며 기존의 호환성을 최대한 끌고가는 윈도 특성상 코드가 갑자기 UTF-8로 바뀔일은 없을 것으로 보인다.

폰트의 다양성 문제는 이미 해결이 된 것을 보인다. 과거 백묵글꼴의 경우 매우 가독성 안 좋고 보기 영 안 좋기로 유명 했는데 언제부터인가 은 글꼴이 나오면서 리눅스에서도 굉장히 미려한 글꼴이 가능해졌다. 물론 그 시절에도 저작권있는 글꼴 가져다가 때려박는 사람들이 있기는 했지만 그런 글꼴이 좋았냐고 하면 그건 그것대로 영 아니었던지라 은 글꼴은 순식간에 한글표준글꼴화가 되어버렸다. 지금은 은 글꼴도 아니고 나눔글꼴이 그 역할을 수행중이며 우분투에서 기본 한글글꼴이 되면서 "나눔"이라는 말에 맞게 상당히 많이 퍼지게 되었다. 윈도에서의 굴림같은 존재가 리눅스에서는 나눔고딕이 되었는데 언젠가는 이 나눔글꼴도 새로운 폰트에 자리를 내놓게 될지도 모를 일이다. 어쨌건 그만큼 한글글꼴은 꽤 다양해진 편이다. 이 점은 그나마 다행이라고 생각한다.

하지만 한글과 리눅스는 별로 친하지 않은 것으로 보아 이를 해결하기 위해서도 리눅스 데스크탑의 점유율이 문제인 것으로 보인다. 매번 한글과 관련하여 문제가 터진다는 것은 그만큼 한국인이 개발에 참여하기 어렵다는 의미이며 한글문제를 메일로 날려도 워낙 수가 적어서 이슈화되지 않는 것도 문제다.그나마 Steam은 좀 확인 하는 것으로 보이는데 이게 해결되기까지 얼마나 걸리게 될지는 알 수 없는 일이다.

한국리눅서들은 오늘도 고달픈 삽질중이다.

,

사람들에게 "리눅스가 무엇인지 아십니까?" 라고 물어보면 100중 30정도는 "안다"라고 하지만, 사실은 리눅스가 그저 까만화면에 커서 깜빡이는 그런 텍스트기반의 OS인줄 아는 사람들이 상당히 많습니다. 그도 그럴것이 리눅스 데스크탑의 점유율은 그저 1%남짓입니다. 

사실 이렇게 되어버린 원인 중 하나는 리눅스의 어마어마한 배포판의 수도 문제라고 하는 사람들이 많습니다. 

참고: https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg

리눅스 배포판의 타임라인입니다. 2012년 기준이니 지금 이 순간에도 새로운 배포판이 만들어져서 배포되고 있을 겁니다.

그렇기 떄문에 리눅스용 프로그램중 오픈소스가 아닌 경우 우분투나 레드햇 같이 메이저한 배포판을 제외하면 "동작하지 않도록 만든 경우"가 많습니다. 사실 동작하지 않게 만든 것이 아니라 라이브러리나 기타 다른 이유로 인하여 "동작하지 않은 것"에 가깝습니다. 대표적인 예가 한글2008입니다. 이제는 지원도 안 해주는 버려진 OS인 아시아눅스만이 한글2008이 정상적으로 동작합니다. 우분투에서 동작하는 팁 들이 인터넷 여기저기 돌아다니고 있지만  우분투의 버전이 올라가면 올라갈 수록 아시아눅스와 차이가 생기면서 이것저것 문제가 생겼습니다.(다른 것보다 프린터 문제가 가장 시급합니다.) 한글과컴퓨터가 한글을 새로운 라이브러리에 맞춰서 다시 컴파일하면 되기는 되겠지만 그렇게 해 줄 리가 없겠지요. 만약 아시아눅스가 지금까지 개발되고 있었어도 한글2008이 우분투나 다른 배포판에서 정상적으로 작동하리란 보장도 없습니다. 왜냐하면 아시아눅스는 아시아눅스 나름의 라이브러리를 이용해서 만들어진 배포판이니까요.

상황이 이러니 리눅스 용 상용 응용프로그램은 거의 전무한 실정입니다. Steam에서 리눅스용 게임을 상당히 많이 팔고 있기는 하지만 엄연히 말하자면 이마저도 리눅스용이라기 보다는 우분투용이라고 보는 것이 더 맞습니다. Valve에서도 우분투에 최적화된 상태로 배포한다고 했으니까요. 페도라에서 Steam과 Steam 플랫폼의 게임들이 정상적으로 작동하는 영상이 보이지만 Valve의 공식입장은 아닙니다. 페도라와 우분투의 차이가 라이브러리 차이가 많이 나지 않아서 작동하는 것이지 한글2008같이 차이가 벌어지면 작동하지 않을 수도 있습니다.

그래서 다들 리눅스 데스크탑의 실패 이유 중 하나가 바로 이 배포판의 다양함이라고 이야기 합니다. 얼핏 들으면 맞는 말 같습니다. 배포판이 다양하다는 것은 그만큼 개발할 때 테스트 장비가 많이 필요하고 개발비가 더 올라간다고 합니다. 이와 비슷한 일이 안드로이드에서도 일어나고 있습니다. 그런데 안드로이드는 그렇다고 개발비가 어쩌고 하지는 않습니다. 왜냐하면 이미 점유율이 상당히 높고 그만큼의 개발비가 회수되기 때문입니다. 결국 "닭이 먼저냐 달걀이 먼저냐"의 문제가 되는데 배포판의 다양함이 문제라고 한다면 우분투나 페도라 어느 하나의 배포판을 기준으로 개발하고 테스트하면 됩니다. (바로 위에서 예를 든 한글2008이 이런 식으로 개발되어졌고 그래서 지금 문제를 일으키고 있는 것입니다.) 그리고 다른 배포판에는 안 팔면 됩니다. 하지만 리눅스 데스크탑의 점유율은 다 합쳐봐야 1% 뿐. 돈이 안 되니까 개발비 운운하는 것 아닐까하는 생각이 듭니다. 개발비가 회수가 안 되니까요.

이렇게 배포판의 파편화가 문제라고 했지만 리눅스의 장점도 또한 이 다양함이라는 것도 참 아이러니 합니다. 선택의 폭이 넓으니 이걸 장점이라고 할 수 있는 겁니다. OSX는 선택의 폭이 참 좁은 OS입니다. 오로지 애플하드웨어만 이용할 수 있으며 인터페이스는 오로지 OSX 본연의 것만 사용 가능합니다. 윈도우는 반대로 레거시 하드웨어까지 지원하는 괴랄함의 극치를 보입니다. 하드웨어의 선택이 상당히 넓으며 최근 윈도8의 인터페이스가 마음에 안 든다고 별도의 프로그램을 이용해서 시작메뉴를 되살리기까지 합니다. 리눅스는 윈도와 OSX 어디에 가까울까요? 그리고 윈도와 OSX 어디가 더 성공한 OS인가요? 제가 생각하기에 리눅스는 OSX보다는 윈도에 훨신 더 가까워 보이는데요. 결국에는 어느 한 배포판이 윈도 수준의 점유율을 먹지 않는 이상 이 문제는 해결될 것 같지는 않네요.

그리고 리눅스라는 것도 엄연히 말하자면 그저 커널의 이름일 뿐입니다. 저 수많은 배포판들을 보면 리눅스는 정말 많은 수를 가진 OS라는 이야기가 됩니다. 하지만, 저건 그저 리눅스를 이용한 OS들일 뿐입니다. 흔히들 리눅스/윈도우/OSX 가 3대 OS라고 합니다. (데스크탑에 한해서 리눅스는 너무 적은 수준이긴 합니다.) 하지만 저는 리눅스는 그저 커널 이름일 뿐이고 각 배포판은 다른 OS라고 생각합니다. 이렇게 되면 각각의 OS점유율이 정말 처참할 정도로 박살나 버리기는 하지만 각 응용프로그램을 어떻게 개발해야할 것인지 알 수 있게 됩니다. 막말로 "안드로이드와 우분투가 같은 OS인가?" 이와같은 질문의 답은 모두 다 "아니오"일 것입니다.  같은 커널을 썼지만 다른 OS취급을 하듯이 우분투와 페도라도 다른 OS이고 우분투기반인 리눅스민트와 우분투도 다른 OS취급을 해야 할 겁니다. 이러면 파편화 때문에 리눅스는 망했다? 절대로 그렇게 생각 못합니다. 리눅스가 망한 것이 아니라 해당 OS가 망한것입니다. 왜냐하면 점유율이 바닥이라서 그렇습니다. 간단한 문제이네요.

아치리눅스, 우분투, 페도라, 오픈수세, 데비안, 기타 다른 리눅스 배포판들. 어느 하나의 배포판만이 성공해야 "파편화"라 불리우는 "OS난립"의 문제를 해결 할 수 있을 것입니다. 하지만 그렇게는 절대로 될 수 없을 겁니다. 당연하게도 그것이 리눅스의 장점이니까요.

,

이전글 보기 : http://moordev.tistory.com/7





 

 




저번에는 KDE와 Gnome에 대한 글을 적당히적었는데요. (사실 제대로 된 고찰도 아니었습니다.) 이번에는 KDE와 Gnome 각 환경의 기반이 되는 라이브러리인 QT와 GTK에 대한 이야기를 하려고 합니다.

GDI란 라이브러리로 만들어진 데스크탑환경(?)의 대표적인 예

QT와 GTK의 차이를 알아보기 전에 이 라이브러리가 하는 것이 무엇 인지를 알아야할 것 같습니다. 우선 익숙한 윈도에서의 비교가 필요할 것 같습니다. 윈도에서는 프로그램들의 모습이 비슷비슷하다는 것을 알 수 있을 겁니다. 그건 윈도에서는 GUI를 만들기 위해 사용하는 라이브러리가 GDI/GDI+라는 녀석을 쓰기 때문입니다. 사실 이 외에는 생각하기 힘들지요. QT나 GTK로 만들어지는 경우도 없지는 않습니다만 (다음클라우드는 QT로만들어져있고, Gimp for Windows는 GTK for Windows로 만들었다고 합니다.) 작업표시줄이라던가 시작메뉴, 탐색기 등의 구성 오브젝트 들, 시스템의 전반적인 것들이 GDI로 만들어져있기 때문에 윈도용 QT,GTK 프로그램들은 KDE나 Gnome의 경우하고는 다르다고 봐야 할 겁니다. 윈도용 QT, GTK프로그램은 아무래도 KDE에서 돌아가는 GTK 프로그램과 같은 방식으로 돌아간다고 생각하셔도 됩니다. 즉 그래픽 라이브러리란 화면에 그리기 위한 수단 중 하나입니다. 윈도는 기본으로 GDI/GDI+를 통해서 그리는 것이고 KDE는 QT를 이용해서, Gnome과 그 친척들(XFCE,LXDE 등)은 GTK로 그리는 것입니다. 작업표시줄이나 바탕화면조차도 하나의 프로그램이라는 개념으로 보세요. 그리고 그 프로그램은 어떤 라이브러리로 만들어졌는가를 생각해보세요. 그럼 이제 좀 이해가 될 것입니다.


QT와 GTK는 경쟁자라기 보다는 그냥 서로 협력관계로 보시는 편이 맞을지도 모르겠습니다.GTK가 만들어지게 된 배경이 QT로 그래픽 프로그램을 개발하기 어려워서 만들어진 것 입니다. GTK개발후에 만들어지게 된 프로그램이 그 유명한 Gimp이고요. QT의 부족함을 채우기 위해 만들어지게 된 것이니 경쟁자라고 보기는 좀 어렵지요. 지금이야 GTK로 데스크탑환경도 만들지만 당시에는 Gimp를 위해 만들어졌던 라이브러리였습니다. GTK이전에는 QT가 윈도에서의 GDI와 같은 입장이 아니었을까 합니다.

그렇지만 QT는 약간의 맹점이 하나 있습니다. 다름아닌 저작권이 약간 붕 떠있었다는 것입니다. 리눅스의 근간은 Unix였고 이 Unix의 X환경이 라이센스문제로 엉키던 시절(XFree86에서 Xorg로 넘어가던 시절)부터 QT는 노키아가 마지막으로 라이센스를 가지고 있었는데 지금의 LGPL로 바뀌기 전까지는 이 라이센스 문제때문에 오픈소스프로젝트들이 기피하게 되었습니다. 그러다 대안을 찾은 것이 GTK이고 이걸로 데스크탑환경과 각종 프로그램들을 만들어냈습니다. 그래서였는지 QT기반은 좀 오래된 프로젝트들이 많고 GTK기반은 비교적 최근에 시작된 프로젝트들이 많습니다. 사실 GTK가 다른언어로도 여기저기 포팅된 것도 한몫했습니다. QT데스크탑환경이 KDE만 있는것도 이와같은 영향이 아닐까라는 생각도 듭니다.


이전에도 말했듯이 QT프로그램이 Gnome환경에서 돌아가고 GTK프로그램이 KDE환경에서 돌아간다는 말 한적이 있었나요? 사실 이것도 라이브러리만 있으면 돌아가기 때문입니다. 걔중에는 데스크탑환경에 종속된 물건도 있기는 합니다만 (Nautilus라던가 Konqurer라던가 자세히 보니 대부분 파일탐색기류네요.) 데스크탑환경과는 관계없이 라이브러리만 써서 만든 프로그램들이 훨씬 더 많습니다.

대표적인 프로그램이 다음과 같은데

KDE에 GTK설치하게 만든 범인(?)인 Firefox와 Chrome이 있군요.

그리고 Gnome에 QT 설치하게 만드는 VLC미디어플레이어와 SMPlayer가 있습니다. Amarok도 있네요.

그래픽 라이브러리의 선택은 결국 개발자의 몫이기 때문에 사용자 입장에서는 어떤 라이브러리를 쓰든 상관할 필요는 없습니다. 특히 용량이 넘쳐나는 지금 데스크탑환경이라면 KDE에서 Nautilus쓴다고해도 크게 문제는 없어 보이는군요. (Nautilus는 Gnome을 설치해야 돌아갑니다. 그만큼 용량이 넘쳐난다는 의미입니다.)

제 생각에는 그저 리눅스 데스크탑은 사용라이브러리나 최적화를 떠나서 그저 필요한 프로그램을 쓸 수 있는 것이 가장 좋은 것이 아닐까 생각합니다.

,

간만에(그래봐야 티스토리 2일차입니다만) 기존 블로그에서 이사한 글이 아닌 처음으로 적는 정보성 글입니다.

리눅스 데스크탑을 보면 참 배포판마다 개성이 상당히 넘칩니다. 사실 이 중에서 가장 대중적으로 쓰이는 환경은 KDE와 Gnome환경입니다. 그리고 이 둘은 상당히 다른 철학을 가지고 만들어지고 있습니다.

적당히 비교하자면 다음과 같습니다. 우분투에서 쓰이는 유니티나 GTK로 만들어진 XFCE,LXDE도 일단 넘어가기로 합시다. (Unity도 Gnome의 하나의 분파로 보시면 됩니다. XFCE나 LXDE도 Gnome의 친척이고요. 기반 프레임워크가 같습니다.)


 

KDE

 Gnome

 그래픽 라이브러리

 QT

GTK

설정항목의 수

최대한 많이 보여준다.

필요한것만 보여준다

 기본 텍스트에디터

kate

 gedit

기본 브라우저

Konquerer

 Web

 토렌트 클라이언트

kTorrent

 Transmission

 파일 탐색기

 Konquerer

 Nautilus

대충 이 정도인데 이것도 배포판 나름대로 이리저리 바꾸는 터라(대표적인 것이 브라우저 대개 Firefox나 Chrome으로 바꿔버립니다.) 같은 KDE와 Gnome이라고 해도 Gnome의 어플리케이션(Nautilus,gedit 등)을 사용하면서 GnomeShell대신 Unity를 사용하는 우분투나 Gnome3로 만들어진 Cinnamon을 쓰는 리눅스민트 등도 있습니다.

사실 KDE vs Gnome은 워낙 많은 이야기가 오고 가곤 해서 이 둘의 차이는 조금만 검색해보면 쉽게 알 수 있습니다. 그렇지만 Gnome환경에서 KDE프로그램 못 쓰는것 아니고 KDE에서 Gnome프로그램 못쓰는 것 아니라서 그건 또 그것 나름대로 굳이 차이를 느낄 필요가 있을까란 생각도 드는군요.

저 같은 경우에도 QT기반인 VLC미디어플레이어를 쓰면서 Transmission을 토렌트 클라이언트로 씁니다. 게다가 Nautilus의 MATE버전인 CAJA를 쓰고 Kdenlive로 동영상을 편집합니다. 이쯤되면 프로그램을 통한 구분은 어려워지는군요. 그렇다면 사용하는 윈도우매니저가 무엇인가에 따라 달라 질 수도 있겠는데요. KDE는 보통 kWin을 씁니다. Gnome은 워낙 많아서 잘 모르겠군요, Mutter, Metacity, 기타등등 그냥 kWin쓰면 KDE환경이라고 할 수 있겠군요. 이게 결국 답으로 보입니다. 

저 설정 항목이란 것도 구분법중 하나가 될 수 있겠군요. KDE의 설정은 정말 무시무시하게 많습니다. 정말 세세한 것 까지 설정이 가능합니다. 이는 윈도우즈와 비슷하지요."에이, 무슨 윈도가 설정을 세세하게 한다고 그래~" 라고 하시는 분들. 제어판 항목으로 가서 관리도구로 가보십시요. 정말 미친 듯이 많습니다. 그에비해 Gnome은 설정을 필요한 것을 제외하고는 최소한으로 줄입니다. 정말 군더더기 없어 보입니다. 이는 GTK프레임워크도 한 몫하지요. 그런데 그만큼 설정 할 수 있는 항목이 적습니다. 이게 결국 철학의 차이입니다.

XFCE나 LXDE는 어떻냐구요? 얘네들도 GTK프레임워크를 이용합니다. 윈도우 매니저는 Gnome과 또 다르지만 (보통 Openbox를 쓰는걸로 알고 있습니다.) 그것도 참 설정이 군더더기 없습니다. Gnome과 친인척 관계다보니 여기서 비슷한 형상을 취하는 것입니다. 물론 가볍게!가 모토인 만큼 그러한 형태를 취하는 것이 더 현명해 보이긴 합니다.

사실 사람마다 입맛이 다르다보니 두 환경의 철학이 다른 것으로 보입니다. 결국 설정항목의 차이가 이 둘을 갈랐다고 볼 수도 있겠네요.

KDE와 Gnome 이야기를 마저 하려면 두 그래픽 라이브러리인 QT와 GTK 이야기를 안 할 수는 없는데요. 이건 다음에 이야기 하도록 합시다.

,