리눅스 데스크탑에서 매번 겪는 문제중 하나는 바로 한글과 관련된 문제이다. 워드프로세서 한글이 아닌 글자 한글이 문제인 것이다. 지금은 보통 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은 좀 확인 하는 것으로 보이는데 이게 해결되기까지 얼마나 걸리게 될지는 알 수 없는 일이다.

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

,

PlayonLinux를 이용하면 윈도용 프로그램 들을 리눅스에서 쉽게 설치할 수 있습니다. 하지만 이것은 어디까지나 스크립트가 준비된 프로그램들에 한해서 쉬운것이지 한글이나 Solidworks같은 프로그램들은 정말 삽질 아닌 삽질을 해야만 합니다. 특히 CAD들은 제대로 동작하는 것의 확인이 불가능 할 정도로 기능이 다양한데, 필요한 라이브러리들은 정말 다양하게 많습니다. 어쨌건 설치하고 쓸 수 있을 정도로 라이브러리를 설치하는 등의 삽질을 끝냈는데, 만약 배포판 업그레이드나 배포판 교체등으로 시스템을 리셋해야 한다면 Playonlinux로 또 삽질하기가 꺼려집니다. 그래서 PlayonLinux는 백업 도구를 미리 준비해 두었습니다.

이름하여 PlayOnLinux Vault

Vault란 대피소란 의미더군요. 폴아웃에서 나오는 그 볼트 맞습니다. 사실 구버전의 Playonlinux를 사용하시는 분들은 그냥 ~/PlayOnLinux's virtual drives/ 내부를 복사하면 그만이었지만 보안상 문제인지 언제부터인가 복사가 불가능해졌습니다. 심지어 관리자 권한도 안 먹히더군요. 대신에 Playonlinux에 기본 포함된 플러그인중 하나가 바로 이 PlayOnLinux Vault입니다.

사용방법은 아주 간단합니다. 기본 설치 플러그인이기 때문에 메뉴에서 플러그인 - PlayOnLinux Vault를 선택해주시면 됩니다. 그러면 두가지 선택이 나옵니다. Save할 것인가? Restore 할 것인가? Save를 눌러봅시다.

그러면 어떤 프로그램을 백업하고 싶은지 물어봅니다. 선택 후에 Next를 선택하면 전체적인 크기와 Prefix 이름이 나오고 Continue를 하면...


갑자기 어려운 것을 물어봅니다. bz2는 느리지만 압축률이 좋고 lzop는 압축률은 조금 떨어지지만 빠르다고 합니다. 물론 압축안하고 마는 것도 있지요. 이 셋 중 아무것이나 골라주시면 되는데 bz2나 lzop 둘다 라이브러리가 미리 설치 되어있어야 합니다.

sudo apt-get install bzip2 lzop

이후에 저장할 곳을 선택하라고 합니다. 그리고 다음을 누르면 확장자가 poApp이란 파일이 만들어집니다. 만약 백업 이후에 다시 복구하신다면 아까 처음에 Save대신 Restore를 선택하시면 됩니다. 그냥 poApp파일만 있으면 되므로 설치하기 어려운 프로그램같은 것은 이렇게 백업해두는 것도 나쁘지는 않을 것 같습니다.

,

Android-x86은 초창기에는 그래픽도 가속이 안되고 호환되는 프로그램도 상당히 적었으며 어떤경우에는 비정상 작동으로 작동이 중지되기 하는 말 그대로 테스트 그 이상 그 이하도 안 되는 OS였습니다. 1.6때 말그대로 그냥 돌아가는 것이 신기한 그런 OS였는데 2.3부터 그래픽가속을 시도하더니 4.2 젤리빈에 들어오면서 리눅스와 동일한 KMS도 지원하기 시작했습니다. 4.4킷캣인 지금은 일단 가속이 지원만 된다면야 네이티브로 빠르게 동작하는 안드로이드를 볼 수 있습니다.

문제는 가속이 지원되는 카드가 생각보다는 적다는 것입니다. 초창기 인텔(i915)만 지원하던 때보다야 낫지만 지금도 그렇게 네이티브 해상도를 만들어 내지는 못합니다. 심지어 radeon모듈에서 지원하는 카드의 경우 일부 칩셋에서 정상적으로 동작되지 못하는 현상이 발생하기도 합니다. KMS를 끌경우 부팅은 되지만 화면이 나오지를 않고 KMS를 켜면 화면은 나오나 심하게 깜빡거려서 쓸 수 없는 상태가 됩니다. 문제는 바로 여기서 터진다고 봅니다.

어쨌건 그래픽가속이 되는 순간 해당 x86머신은 안드로이드가 정상적으로 작동하면서 지금까지 만들어져왔던 수많은 모바일 페이지와 모바일 앱을 이용할 수 있게 됩니다. Genymotion같은 가상화 도구 없이 안드로이드 단독 네이티브 OS로써 말이지요.

앱호환성도 많이 개선되었습니다. MX플레이어의경우 x86용 코덱을 따로 제공해주고 있습니다. 이것을 이용함으로써 소프트디코딩도 완벽해집니다. 참고로 x86은 하드웨어 코덱이 그냥 없다고 보는 것이 좋습니다. 가속도 지원이 잘 안 되는 판군에 GPU영상 가속은 그냥 없는 셈 치셔야지요.

그리고 만약 x86바이너리가 지원이 안 되어도 인텔이 ARM호환 라이브러리(libhoudini)를 만들어서 x86기반 스마트폰에 테스트 겸 샘플 겸 넣었기 때문에 이것을 이용하면 ARM바이너리도 실행이 가능해 집니다. 일부 앱은 여전히 작동이 안 됩니다만(대표적인 것이 Unity3D엔진을 이용한 모바일 게임입니다.) 앵그리버드 같은 NDK를 직접 이용한 앱은 거의 잘 작동합니다. 같은 Unity3D라도 아스팔트는 잘 작동하는 것을 보면 게임마다 조금 다를지도 모릅니다.

하지만 libhoudini는 인텔에 저작권이 있으므로 함부로 배포해서는 안 됩니다. 오로지 인텔의 공인된 롬만이 해당 라이브러리를 이용할 수 있습니다. Buildroid나 Genymotion의 경우에는 이 라이브러리를 따로 가상 시스템에 적용하는 것으로 저작권을 피해갔습니다. Gapps와 비슷한 경우이지요. 하지만 이 라이브러리도 안드로이드 버전이 올라갈 때마다 호환성 체크를 해야만 하며 인텔이 2.3진저브레드용 이후로는 제공을 안 하는 것으로 보입니다. 4.0시절에는 2.3호환패치를 따로 적용해야만 이 라이브러리가 작동했던 것으로 알고 있습니다. 지금은 패치가 기본 적용되어 배포됩니다만 여전히 불편하게 따로 적용해야만 하는 것은 동일합니다.

일단 제 예상입니다만 대부분의 안드로이드 어플은 C를 사용하지 않고 오로지 JAVA만을 사용합니다. JAVA만의 어플은 분명 잘 작동할 겁니다. 그건 JAVA의 특성상 바이트코드는 동일하고 자바VM만 포팅되면 어디서든 잘 작동하니까요.

하지만 대부분 게임류나 그래픽작업용 어플은 C가 필수적으로 들어가서 칩셋 호환성 패치가 필요합니다. libhoudini가 어디까지나 강력한 x86칩셋의 힘을 이용했기에 정상적으로 되는 것처럼 보이지 성능이 조금만 떨어져도 엄청 기어가는 모습을 보이곤 합니다. 기본적으로 강력하니까 그냥 묻어버리는 수준인 겁니다. 그도 그럴 것이 바이너리를 번역하는 과정이 필요한데 이게 아무리 빨라봐야 네이티브 작동에 1/2정도로 떨굴 수 밖에 없을 겁니다.

일단 센트리노1.2GHz 2GB메모리 노트북에 작동시켜본 결과 가속이 안 잡혀서 화려한 효과가 들어가는 순간 답답한 화면만이 나옵니다. 하지만 이 정도면 그래도 그럭저럭 인터넷 쇼핑도 가능할 것으로 보입니다. 까놓고 말해서 OSX나 PC용 리눅스보다 안드로이드가 인터넷쇼핑하기에는 100배 낫습니다. 은행도 물론이고요. 브라우저 호환안 된다고 칭얼대봐야 들어먹지도 않는 시절때와 비교하면 많이 발전했네요. 그 와중에 nProtect는 왜 설치하라고 하는 것일 까요. OSX나 리눅스는 윈도나 안드로이드에 비하면 엄청 튼튼하게 만들어진 OS인데 (안드로이드는 프레임워크 버그로 인해 허구한날 보안이 뚫리고 합니다. GingerBreak같은 것이 대표적입니다.)nProtect를 설치함으로써 이 보안이 도리어 박살 나는 것은 아닐지 조심스럽게 고민해 봅니다.

만약 은행업무나 인터넷쇼핑이 필요하다면 가상머신을 이용해서 안드로이드를 돌려보는 것도 나쁘지는 않겠네요. 굳이 그래픽가속 필요없다면 Virtualbox용으로 만들어진 이미지로 바로 구동하면 OSX나 리눅스데스크탑에서도 얼마든지 결제까지 끝낼 수 있습니다. 하지만 모바일 게임은 Genymotion도 그닥 빠르지는 않네요. 쓸만은 하지만 그래도 약간은 모자라 보입니다. 게다가 Genymotion 실행을 막는 게임도 나왔으니 도리어 게임에 쥐약이 될 수 도 있습니다. 그러니까 게임을 제외한 나머지로는 사용 가능이라고 합격점 주고 싶네요.

,