가상화라는 개념은 사실 예전부터 있었습니다. 하나의 컴퓨터를 여러대의 컴퓨터로 활용하는 것은 워크스테이션시절로 거슬러 올라갈 정도로 상당히 오래된 개념입니다. 하지만, 지금과 같은 거의 완벽한 가상화는 아니었고 그냥 이미 세팅이 완료된 시스템에 User가 일정 요금을 내거나 워크스테이션 관리자의 허락을 받고 사용하는 방식이었습니다. (윈도를 처음부터 쓰신 분들은 이해가 잘 안 되실 겁니다. 윈도는 사용자 개념이 워크스테이션에서의 그것과는 거리가 멀었기 때문입니다. NT계열 등장 이후에나 Unix의 개념과 비슷해졌습니다.)


즉, 워크스테이션에서는 사용자가 로그온을 하면 홈폴더(/home/사용자이름)에 한해서지만 내 컴퓨터처럼 사용할 수 있었습니다. 이 홈폴더가 샌드박스화 되면 일종의 가상화라고 합니다. 하지만 이는 이번에 이야기할 하드웨어 가상화하고는 이야기가 다르지요. 그 시절의 가상화는 소프트 가상화로 미리 설치된 OS에 설치된 프로그램만 사용할 수 있었던 시절입니다. 이 당시에 컴퓨터를 쓰고 싶은 사람들이 원하는 프로그램이 있으면 관리자에게 요청해야 했습니다. 정확히 하면 내 컴퓨터처럼 완벽히 사용할 수는 없었습니다.


하지만, 때는 흐르고 흘러서 1인 1PC시대가 도래했습니다. 옛날처럼 하나의 컴퓨터에 여러사람들이 붙어서 사용할 일이 없어졌고, 내 컴퓨터는 나만이 사용하는 것으로 바뀌었습니다. 그로인해 워크스테이션이란 개념은 점점 사라지게 되었습니다. 그도 그럴것이 개인용 PC의 성능이 워크스테이션을 뛰어넘기 시작하면서 옛날의 방식을 쓸 이유가 없어졌습니다. 이로써 한동안 가상화라는 개념은 사라지는 듯 했습니다. 하지만 아이러니하게도 개인용 컴퓨터에서 가상화라는 형식이 등장하게 될 줄은 몰랐을 겁니다.


그리고 바야흐로 90년대~00년대에 Apple사의 OSX가 등장하면서 PowerPC계열의 컴퓨터가 등장하게 됩니다. 당시에는 멀티미디어가 대세였는데 PowerPC는 이 방면에서 정말 강력한 컴퓨터였습니다. 게다가 Apple의 컴퓨터로써 이 PowerPC기반의 Mac은 기존 MacOS9를 쓰던 사람에게 큰 충격을 준 컴퓨터였습니다. 하지만 이 당시에도 PC는 Intel+Windows가 이미 잠식한 상황이었고 쓸만한 프로그램은 다 여기에 있었습니다. PowerPC를 쓰는 사람에게 이는 너무 아쉬운 점이었습니다.

"Mac에서 intel+Windows용 프로그램을 쓸 수 있으면 참 좋을텐데..." 이 작은 소원(?)은 VirtualPC라는 프로그램이 등장하면서 해결됩니다. 이 당시는 가상화라기보다는 intel칩을 흉내내는 에뮬레이터에 가까웠습니다. 하지만 VirtualPC가 Windows용으로 포팅이 되면서 기존 PC사용자에게 입소문을 타게 되었고, 가상화는 User모드 가상화에서 하드웨어 가상화라는 새로운 모습으로 격변하게 됩니다. 즉, 기존에는 이미 설치된 OS 환경에서만 내 맘대로 주무를 수 있었다면, 이제는 한정된 하드웨어이기는 하지만, OS도 마음대로 설치하고 프로그램도 마음대로 설치할 수 있는 새로운 가상PC가 만들어진 것입니다. 사실 혁명과도 같은 물건이었는데, Microsoft가 인수를 하면서 이 혁명과도 같은 물건은 한낱 후발 주자인 VMware에게 밀려버립니다.


하지만 모두 알고 계시듯이 VirtualPC나 VMware만 하드웨어 가상화지원을 하는 것은 아니었습니다. 그 이전에 리눅스에서 Xen이란 놈이 커널에 한해서지만 리눅스 가상화(반소프트 반 하드웨어 가상화)를 지원했고, Bochs와 Qemu라는 오픈소스 가상화 프로그램도 있었습니다. VirtualPC가 Microsoft에게 인수된 이후 CPU가상화 기능이 사라진(사라진 것은 아니고 PPC에서 intel칩을 에뮬레이션 해주지 못하게 되었습니다. 가상OS마저 Windows만 지원된것은 덤 입니다.)대에 비해 이 프로그램들은 CPU도 흉내를 내주어서 Arm이나 MIPS(!!)에서 Pentium을 흉내내준다던지 하는 누가 보면 신기한 일들도 했습니다.(스마트폰에서 Windows를 구동하는 영상의 대부분은 바로 저 Qemu나 Bochs를 이용한 것입니다.)하지만 성능은 상용프로그램에 비하면 좀 모자르기도 했고, VMware나 VirtualPC에 비해 잘 알려지지도 못했습니다.


현재 가상화의 선두주자는 누가 뭐라고 해도 VMware입니다. VMware하면 VMware Workstation만 생각하시는 분이 있을텐데 VMware의 주력제품은 VirtualBox나 VirtualPC와 같은 영역과는 차원을 달리하는 ESX입니다. 별건 아니고 그냥 VMware 가상화를 사용할 수 있는 환경을 갖춘 리눅스입니다. 하지만 이를 이용해서 옛날 워크스테이션 서비스 하는 것처럼 가상의 하드웨어 세트를 계정당 하나씩 제공 가능하게 해줍니다. 즉, 사라진줄 알았던 워크스테이션이 다시 돌아온 것이지요. 다만 옛날에는 다같이 쓰는 컴퓨터에 한 OS를 나눠 썼다면 지금은 완전히 가상화된 컴퓨터를 하나 덜렁 내주는 셈입니다. 이를 잘 쓴 서비스가아마존의 AWS가 아닐까 합니다. VMware사의 솔루션을 썼을지 아니면 자체 개발한 솔루션을 썼을지는 잘 모르겠지만 상당히 VMware ESX의 원하는 방향과 AWS는 비슷합니다. 가상화된 하드웨어에 미리 준비된 디스크이미지를 부팅하여 사용자에게 서비스한다... 이를 여러대 만들어서 클러스터화 하면 실제 기기는 몇대 안 되더라도 서버가 여러대 있는 듯한 효과를 만들어내게 됩니다. 워크스테이션의 강력함이 이렇게 쓰이는 셈입니다.


얼마전에 보니 VirtualPC를 말아먹은 Microsoft는 Hyper-V란 놈을 내놓고 VMware ESX를 노리고 있더군요. 실제 성능을 보아하니 VMware보다 더 좋기는 하던데 아마도 Windows만 지원하다보니 최적화가 되어서 그럴 것이라는 생각이 듭니다. 공짜라고 좋다고 쓰시는 분이 있던데 그거 공짜 아닙니다. Windows의 Pro버전이 비싼 이유가 다 거기 있는 것입니다. 게다가 Windows는 Unix만큼의 안정성을 갖추지 못했습니다. (단 유닉스에 비해 리눅스는 좀 불안정한 감이 있습니다. 안정성을 추구하는 Debian리눅스하고 비교해도 그렇습니다.)그런데 Hyper-V가 오직 Windows만 지원되다 보니 메리트가 상당히 떨어집니다. 아무래도 Hyper-V에 대한 글을 볼때마다 씁쓸한 생각이 드는 것은 어쩔 수 없군요. VirtualPC시절만 해도 상당히 좋은 프로그램이었고 발전가능성이 무궁무진했었는데 거대기업에 먹히고 나서.....


그러고보니 VMware나 VirtualPC(현재 Hyper-V)에 맞서는 오픈소스 종족이 남아 있습니다. Oracle에서 지원하는 VirtualBox입니다. 이것은 innotek시절부터 성능이 마음이 들어서 상당히 많은 사람들이 사용하고 있습니다. innotek이 Sun사에 인수되면서 성능이 안정화 되었고 Oracle에 Sun사가 인수되면서 잠시 불안해 했었지만 Oracle이 별 터치를 안 해주면서(?)지금은 GPU가상화도 그럭저럭 해주는 물건이 되었습니다. 문제는 VMware에 비하면 부족한 디스크I/O입니다만, 이는 시간이 지나 하드웨어 성능이 무섭도록 발전하면 격차가 알아서 좁아질 운명입니다. 다만, Oracle은 VMware같이 ESX같은 솔루션을 준비할 생각이 없는 것 같습니다. 하지만, 어쨌건 가상화는 가상화, 그것도 VMware에서 사용하는 것과 비슷한 하드웨어 가상화 입니다. 좀 설정만 해주고 http등의 알려진 프로토콜로 묶어주면 ESX못지않은 시스템을 갖출 수는 있습니다. 다만, 상당히 설정이 귀찮고 ESX에 비해 성능이 영 좋지 못하다는 것이 문제이기는 합니다.


지금 현재 가상화 대결의 구도는 VMware vs VirtualBox (vs Hyper-V - 일부에만 해당 Linux/Unix는 지원이 안 되므로)입니다. 하지만 Arm칩이 여기저기 쓰이는 요즘 Qemu나 Bochs도 무시 못합니다. 가상화는 아직 발전 중이고 워크스테이션은 다시 세상의 대세가 될 수 있을까요? 그 것은 조금더 상황을 봐야 할 듯 합니다.

,

LinuxMint는 주력 환경이 MATE와 Cinnamon 환경입니다. 이 두 환경은 GTK기반으로 만들어졌다는 특징이 있습니다. (GTK2와 GTK3라는 기반 버전의 차이가 있기는 하지만) 리눅스의 그래픽라이브러리는  GTK외에 QT도 있는데 자세한 이야기는 http://moordev.tistory.com/9 여기를 읽어보시면 알 수 있습니다. 또 다른 라이브러리인 QT기반 데스크탑 환경으로는 KDE가 대표적입니다. 아니, GTK기반은 정말 많지만 QT기반은 KDE가 독보적입니다. 하지만 KDE환경에서 GTK어플리케이션 안 돌아가는 것 아니고, Gnome(GTK기반 환경의 대표적이지요)환경에서 QT어플리케이션 안 돌아가는 것 아닙니다. 그런데 문제는 Gnome 어플리케이션이나 KDE 어플리케이션이라 불리우는 해당 데스크탑환경에 종속된 어플리케이션은 해당 데스크탑 환경이 갖춰져야 합니다. 안 그러면 정상적인 동작이 보장이 안 됩니다.


대표적인 Gnome어플리케이션은 Nautilus가 있습니다. KDE종속 어플리케이션으로는 Konqurer가 있습니다. 둘 다 탐색기로는 으뜸으로 쳐 주는데, KDE에서 Nautilus를 설치하려고 하면 Gnome을 설치하려고 하고 Konqurer를 설치하려고 하면 KDE를 설치하려고 드는 것을 알 수 있습니다. 사실 이 프로그램은 해당 데스크탑 환경의 자원을 일부 사용하기 때문입니다. Xfce나 LXDE는 대부분 어플리케이션이 종속적이지 않습니다. 그냥 GTK만을 사용한다고 생각하면 편한 수준의 어플리케이션입니다. 만약 MATE나 Cinnamon을 사용한다면 GTK기반 환경이니 당연히 GTK는 설치되어 있을 것이고, LXDE나 Xfce의 어플리케이션(Leafpad나 Thunar 같은 프로그램)을 무리없이 사용 할 수 있습니다.


하지만 KDE는? MATE환경에서 실행 물론 가능합니다. QT만 설치하면 일단 실행은 됩니다. 문제는... 인터페이스가 깨지고 정상적으로 동작을하지 않습니다. Kdenlive를 자주 애용하기 때문에 LinuxMint MATE환경에서 kdenlive만 설치해봤더니 인터페이스가 엉망이 되어서 실행 되더군요. 저는 새로 나온 버전인줄 알았습니다. 하지만 자세히보니 그것이 아니더군요. 결국 KDE를 깔아야 하나...싶었는데 KDE를 완전히 다 설치할 필요는 없다고 합니다. 즉, KDE의 베이스시스템만 설치하면 KDE어플리케이션을 다른 환경에서 실행하는데에는 아무런 지장이 없습니다.


서론이 길었네요. KDE어플리케이션을 GTK기반 환경에서 정상적으로 실행을 하기 위해서는 다음과 같은 명령어 한 줄이면 필요한 환경을 다 설치해 줍니다.


sudo apt-get install systemsettings


이거면 필요한 KDE프로그램 전부를 다 설치해 줍니다. 이렇게 하면 KDE설정 프로그램하고 KDE 환경베이스만 따라와서 추가 데스크탑환경 설정 따윈 없고, 그냥 KDE어플리케이션을 정상적으로 동작 할 수 만 있게 됩니다.


여기서 한국어 사용자 분들은 한가지 생각해야 하실 것이 있는데, 한국어 사용자는 ibus가 자동적으로 따라옵니다. Uim이나 Nabi사용자 분들은 다시 입력기 설정을 해주셔야 합니다. KDE설정 프로그램이 자기 멋대로 입력기를 바꿔 버립니다. 참고하세요.

,

컴피즈는 리눅스 데스크탑을 아주 멋진 효과로 쓰는 맛이 있게 만들어주는 정말 고마운 도구입니다. 우분투에서도 8.04부터 기본 탑재해왔고, (그 전에는 저장소에는 있었지만 따로 설치를 해줘야 했습니다.) Unity인터페이스를 굴리는데 쓰이고 있습니다. 하지만 Unity는 컴피즈를 그냥 창관리자로만 쓰고 있어서 컴피즈의 다양한 효과를 쓰려면 이리저리 삽질을 해야 합니다.

 그래서일까요? 우분투가 Unity를 탑재하기 전의 모습과 흡사한 리눅스민트(특히 MATE버전)에서는 Compiz Config Setting Manager(통칭 CCSM-컴피즈 설정 관리자)를 기본 탑재하고 데스크탑 설정에서 클릭 한방으로 컴피즈를 쓸 수 있게 배려해 놓았습니다. 우분투도 10.10까지만 하더라도 설정-모양에서 바로 컴피즈를 켤 수 있었고 이는 삽질이 동반되었던 다른 배포판에 비해 참 유용했었습니다. 하지만 Unity를 탑재하기 시작하던 11.04부터 컴피즈설정이 삽질이 되기 시작했고 상당히 짜증나는 작업이었는데 리눅스민트에서 이를 다시 클릭 몇번으로 할 수 있게 해 주었네요.


14.1.8 현재 리눅스민트 17.1(MATE)에서 컴피즈를 쓰는 법은 다음과 같습니다. 아주 간단합니다.


메뉴-기본설정-데스크탑 설정으로 들어갑니다.

그리고 창 탭을 클릭하고 다음과 같이 설정합니다.


저는 지금 컴피즈가 설정이 되어있어서 이렇게 되어있지만 기본은 마르코로 되어있을 겁니다. 그러면 여러가지 옵션들이 즐비한데 컴피즈로 바꾸면 딱 이것만 뜨게 됩니다. 그럼 나머지 옵션은 어디서 하냐구요?

컴피즈 설정 관리자(일면 CCSM)으로 하시면 됩니다. 여기서 각종 효과와 비기(...)등을 쓰실 수 있게 됩니다.



다른 효과는 몰라도 저 창 출렁거림효과는 중독성이 상당히 강하다. 괜히 창을 흔들어 보고 싶을 정도

민트메뉴-설정에 가보시면 CompizConfig Setting Manager라고 있습니다. 이게 바로 컴피즈 설정 관련프로그램인데 여기서 이것저것 건드리다보면 데스크탑이 엄청 느려(...)지는 경험을 하실 수 있습니다. 물론 컴피즈니까 GPU가속은 필수입니다. 하지만 쓰다보면 중독 될 정도로 컴퓨터를 쓰는 맛이 있습니다. Unity도 괜찮은 인터페이스지만 전 반쪽짜리 컴피즈보다는 전부 다 쓸 수 있는 MATE용 컴피즈가 상당히 마음에 듭니다. 아니 이게 진짜 컴피즈이지요. 다른 것은 몰라도 애니메이션 설정하고 창출렁거림 옵션은 꼭 켜두시길 권장합니다. 나중에는 출렁거리지 않으면 이상하다고 느껴질 정도입니다. 데스크탑 큐브도 좋지만 가상 데스크탑을 적극적으로 쓰지 않는다면 볼 일이 없는 것이 함정입니다.


어쨌건 리눅스 민트 쓰신다면 컴피즈를 켜는 것을 추천합니다.


P.S 스텝매니아를 하신다면 컴피즈 설정에서 Composite에 Stepmania를 제외 시켜주시는 것이 좋습니다. 보니까 프레임이 현저히 떨어집니다.


방법은 다음과 같습니다. CCSM에서 Composite를 누르고


Unredirect Match부분에서 위 그림과 같이 내용을 추가해주시면 됩니다.

,

오늘도 역시 한글 문제가 터져주셨습니다. 하지만 그리 큰 문제는 아니었고 그냥 영문폰트와 한글폰트가 연결이 안되어서 생긴 문제였기에 큰 문제는 아니었습니다.


http://linuxmint.kr/5848


여기서 보면 ~/.fonts.conf 파일을 만들고 아래와 같은 내용을 적어서 설정파일을 만듭니다.


<?xml version="1.0"?>

<!DOCTYPE fontconfig SYSTEM "fonts.dtd">

<fontconfig>

<match target="pattern">

<test qual="any" name="family"><string>Nimbus Sans L</string></test>

<edit name="family" mode="assign" binding="same"><string>UnDotum</string></edit>

</match>

<match target="pattern">

<test qual="any" name="family"><string>DejaVu Sans</string></test>

<edit name="family" mode="assign" binding="same"><string>UnDotum</string></edit>

</match>

</fontconfig>

 

내용을 보시면 Nimbus Sans L과 DejaVu Sans를 UnDotum 폰트와 연결하는 내용입니다.

그리고 터미널에서

fc-cache -fv 한번만 쳐주시고 로그아웃 했다가 다시 스팀에 접속하시면 한글이 멀쩡히 나오는 것을 확인 하실 수 있습니다.


이전에는 포탈시리즈나 레프트4데드 시리즈를 할 때 그냥 영문(...)으로 했었는데 생각보다 간단했었군요.


2015.2추가

위의 팁은 민트에서만 통하는 것인지 루분투에선 안 통하네요.

http://www.ubuntu-kr.org/viewtopic.php?p=121681#p121681

위의 글에 의거.


ttf-wqy-zenhei 이 패키지를 깔면 잘 나온다고 합니다. 해보니...잘 되네요.


sudo apt-get install ttf-wqy-zenhei


,

역시나 까탈이는 오늘도 까탈스럽게 굴었습니다. 이유는 잘 모르겠지만 fglrx가 설치된 우분투에서 wine을 설치하려하니 fglrx를 지워야 한다고 뜨더군요.

이건 또 뭔가 하니까 wine 1.6이후에 추가 패키지로 설정된 opencl관련 패키지가 fglrx를 지우려고 드는 것이었습니다. 마음 같아서는 오픈소스로 갈아타고 싶었는데 아직 오픈소스 드라이버가 안 나온 상황이라(비마 기반 APU입니다.) 어쩔 수 없이 fglrx에 기댈 수 밖에는 없습니다.

 

 어쨌건 저랑 비슷한 상황이 있는 듯 하는 사람이 많은 듯 하여 일단 wine만 무시하고 설치하는 법만 알려 드리겠습니다.


 http://askubuntu.com/questions/540780/14-10-wine-and-fglrx-conflict


출처는 여기입니다.


 여기서는 fglrx의 패키지 설정을 바꾸는 것으로 해결하기도 하는데 그건 그거대로 삽질 같아서 wine을 그냥 강제로 설치하는 것을 알려드리겠습니다. 어차피 opencl은 fglrx 설치하면서 다 설치 되어서 필요없거든요.


 우선 wine을 deb형태로 다운로드 받습니다.

sudo apt-get download wine1.6-amd64 wine1.6-i386 wine1.6 playonlinux

여기서 playonlinux는 따로 설치하려면 설치하시고 아니면 굳이 설치 안 하셔도 됩니다. 그리고 32비트 사용자 분들은 wine1.6-amd64는 지워주세요.

이제 다 다운로드가 되었는지 확인 되셨으면 설치를 해야겠지요? 여기서 일부 옵션을 넣어줍시다.

sudo dpkg --force-all -i *.deb



이제 강제로 설치를 하려고 할텐데 그냥 메시지는 무시하셔도 됩니다. fglrx가 다 설치해 놓은 것들입니다. 구동에 아무런 지장 없습니다.

하지만 제일 좋은 것은.... fglrx를 안 쓰는 것이 가장 좋다고 생각합니다. Gallium3D가 제 칩셋을 빨리 지원해 주길 기다리면서....


2014. 1. 2

 지금 확인해보니 wine때문에 패키지 설정이 꼬여버립니다. 그냥 Playonlinux를 설치해서 이를 이용합시다. 처음 실행할 때 wine이 없다고 뭐라 뭐라 할텐데 가뿐히 무시하고 Wine versions기능으로 wine을 따로 설치해서 굴리면 됩니다.(단, PlayonLinux가 저장소에 있는 구버전이면 안 됩니다. 이건 Wine을 무조건 적으로 설치합니다.) 즉 System wine을 안 쓰면 된다는 소리.


아니면 fglrx의 패키지 설정을 수정해도 문제는 없을 것이라 믿습니다. 그런데 OpenCL 관련해서 문제가 일어날지도 모르기 때문에... 일단 Gallium3D 드라이버가 나올 때까지 기다리는 걱이 최선인듯...


2014.2.

 이미 오픈소스 드라이버는 나와있었습니다. 그동안 검색 부족과 14.10을 거들떠도 안 본 죄로(...)몰랐던 것일 뿐. 그냥 커널을 3.15로 올리고 Xorg를 PPA를 통해 버전업하면 됩니다. 아니면 oibaf PPA를 이용하시면 안정적이면서 편리한 드라이버를 설치하실 수 있습니다. 그러니까 쉽게말해서 그냥 Catalyst를 버리시면 됩니다.

,