= Window Manager(창관리자) = == 소개글 == (글재주가 없어서 죄송합니다. 글에 지적해주시거나 코멘트 달아주시면 감사하겠습니다. :) 리눅스 사용자로서 이런 글을 쓰기에는 실력이 많이 모자라지만, 최근 늘어나고 있는 국내의 리눅스 사용자분들을 보면서 창관리자에 대해서 소개해드리고 싶어 이렇게 글을 쓰게 되었습니다. (사실 오래된 노트북에 대세를 따르기 위해 우분투를 올렸는데 화면이 끊기고 버벅대서 화가나서 이글을 작성하게 되었습니다. 혹시나 저같은 상황으로 고민하고 계신분이 없지않아 있을 것 같아서요) == Window Manager란? == 말그대로 X window 상에서의 창을 관리해주는 "매니저"역할을 하는 프로그램입니다. 창의 생성 위치, 창을 어떻게 이동시키고 어떻게 보이게 할 것인지에 대한 모든 것들을 담당합니다. 리눅스의 특성상 엄청나게 다양하고 정말로 좋은(심플하고 정말로 lightweight한) 윈도우 매니저가 있습니다만 리눅스 유저분들에게 잘 알려져 있지 않은 점이 정말 아쉬운 것 같습니다. (보통 Xlib, XCB 라이브러리를 사용하며, 여기에 대한 내용은 자세하게 언급하지는 않겠습니다. 다만, Xlib의 경우 Documentation이 잘되어있고 기존의 많은 윈도우 매니저들이 Xlib을 사용해왔었지만 최근에는 XCB라이브러리로 포팅되어 가고 있는 추세이고 문서화 작업이 느리지만 어느정도 되어가고 있는 실정입니다. XCB의 큰 장점은 Xlib보다 빠르다는 것이며 Xlib보다 많게는 5배까지 빠르다는 결과도 있습니다.) === Desktop Environment(혹은 Desktop Manager) vs Window Manager === 간혹가다 Desktop Manager와 Window Manager를 혼동하시는 분들이 계십니다. Desktop Manager는 말그대로 윈도우즈 운영체제와 비슷한 UI구성과 어플리케이션을 포함한 구성체를 말합니다. 즉, 창관리자를 포함해서 계정관리, 디바이스 관리, 시작 프로그램 관리, 문서관리툴..등등 데스크탑 환경을 위한 어플리케이션을 포함한 패키지형태를 말합니다. 예를 들면, 주로 흔히 쓰는 Gnome과 KDE, XFCE, LXDE등이 있습니다(개인적으로 Enlightenment도 포함시키고 싶지만 WindowManager에 가까우므로 빼도록 하겠습니다.) Ubuntu를 예로 들면 Gnome을 사용하되, 사용되는 Window Manager를 Unity로 한 경우입니다. === Window Manager가 왜 중요한가? === 만일 시스템의 lightweight을 중요시 한다면, desktop manager와 같은 것은 실제로 필요하지 않을 겁니다. 자동으로 마운트 해주는 것도 dbus-session으로 해결 가능하고, 필요한 유틸리티만 골라서 설치할 수 있는데, 왜 굳이 필요하지도 않은 Desktop Manager가 포함하고 있는 어플리케이션을 설치해야하는 걸까요? 제가 설명하고자 하는 바는 Desktop Manager(혹은 Desktop Environment라고도 불립니다) 를 설치하지 않고도 윈도우 매니저만으로도 충분히 데스크탑 환경을 구성할 수 있다는 겁니다. 유명한 'standalone' 창 관리자로는 Fluxbox, Openbox, Blackbox, i3, awesome, xmonad, Enlightenment, monsterwm, Ratpoison 등이 있겠습니다. 시작프로그램으로는 $HOME/.xinitrc나 $HOME/.xsession 에 구성하고 각 윈도우매니저가 가지는 설정파일을 통해 Desktop Manager를 이용할 때보다 훨씬 가볍고 간편한 데스크탑 환경을 구성할 수 있습니다. 제 노트북은 오래되긴 했지만 아치 리눅스를 사용하고 i3 윈도우 매니저를 기본으로 해서 처음 300MB정도의 메모리할당으로 GUI환경을 즐기고 있습니다. === Tiling Window Manager와 Stacking Window Manager === 아마 Tiling Window Manager라는 것을 처음 들어보신 분들도 계실 겁니다. 윈도우즈와 같이 창이 쌓이도록 하는 것을 창 관리자라 하고 창 생성시 자동으로 창을 화면크기에 분할해주는 창관리자를 Tiling Window Manager라고 합니다. 물론 이 둘을 모두 지원하는 창 관리자도 있습니다(이를 Dynamic Window Manager라고 하더군요..xmonad나 i3, awesome등이 대표적입니다). Kwin(KDE의 창관리자)의 경우도 창을 윈도우즈처렁 모서리에 갖다대면 화면크기의 1/2로 줄여주긴하지만 부족함이 없지않아 있습니다. 개인적으로 xmonad와 i3라는 창관리자가 정말 매력적이라고 생각합니다. 각설하고, 각 유저분들의 입맛에 맞는 윈도우 매니저를 쓰시면 됩니다. 각각의 장단점이 있으니까요. == 리눅스는 절대로 무겁지 않습니다 == 몇몇 분들은 리눅스가 무겁다 하십니다..정말 잘못된 생각이라고 합니다. 배포판마다 각각의 철학이 있고 일반 사용자들을 위한 편리한 인터페이스 제공을 위해 제공되는 어플리케이션에 의해 무거워진 것이지 절대로 그 기본 바탕이 되는 시스템은 무겁지 않습니다. 다양한 composite manager들의 활약 덕분에 맥 OSX와 비슷한 환경을 만들어낼 수 있는 리눅스의 GUI 환경은 충분히 리눅스에 익숙하지 않은 사람들도 끌어들이기에 매력적일 겁니다. 하지만 정말로 리눅스에 푹 빠지신 분이시라면 한번쯤은 윈도우매니저만으로 작업환경을 만들어보는 것도 좋지 않을까 생각해봅니다. 삽질하면 할수록 새로운게 나타나는 게 리눅스의 매력이죠..:)