Openbox

700px
단순한 외양이지만 제 역할은 다 하는 리눅스(+유닉스) GUI의 창 관리자. [1]
공식 홈페이지.
Microsoft Windows를 작업 표시줄 없이, 바탕화면 아이콘 없이, 제어판 없이, 탐색기(explorer.exe) 없이(!) 쓴다면 Openbox와 매우 흡사하다. 그리고 터미널 제외 아무것도(!) 없이쓴다면 twm이된다

1 창 관리자란

Window Manager.
리눅스(+유닉스)의 GUI는 대개가 X 윈도 시스템이다. X 윈도 시스템은 서버 - 클라이언트 구조로 되어 있고 TCP/IP 네트워크 기반의 X 프로토콜로 통신을 한다.

(출처 : commons.wikimedia.org/wiki/File:X_client_server_example.png)
X_client_server_example.png
X 서버와 X 클라이언트를 이해하기 위해, 메모장을 예로 들어보자. 메모장은 X 클라이언트가 된다. 웹브라우저, 동영상 재생기, 게임 같은 모든 실행 프로그램을 X 클라이언트라고 생각해도 무리는 없다. 위키 작성을 위해뻘글을 적기 위해 Openbox 메뉴에서 메모장을 클릭하면

  1. X 클라이언트 메모장에 실행 명령이 전달되고
  2. 호출을 받은 메모장은 X 서버에 "가로세로 크기는 이만큼, 배경색과 글자색은 이렇게, 커서는 깜빡일 것."하고 X 서버로 X 프로토콜을 날린다.
  3. 이제 X 서버는 그래픽 카드와 모니터로 하여금 메모장이 표시되게 하고
  4. 네가 키를 두들기면 같은 식으로 해당 글자들도 화면에 나타나게 된다.

정리를 하면 X 서버는 X 클라이언트의 요청에 대한 결과를 디스플레이 장치에 출력하거나 키보드, 마우스, 터치 스크린과 같은 사용자 입력을 X 클라이언트에 전달하는 역할을 한다.원격 시스템의 X 클라이언트도 로컬 시스템의 X 서버에서 담당할 수 있는데 X 윈도가 네트워크 기반의 서버/클라이언트 방식이기에 가능한 것이다.

이제 메모장을 쓰다 Alt+TAB을 눌러 파이어폭스로 넘어가거나, 야구 동영상을 감상하다 문밖의 인기척을 느끼고 Win+D을 누르는 경우를 생각해 보자. 작업 전환(Alt+TAB), 창의 크기/위치 변경, 다른 가상 작업공간(바탕화면)으로 이동, 창 숨김/최대화, 프로그램 종료 등의 프로그램 창(Window)Lance 제어에 해당하는 일체의 동작은 별도의 프로그램에서 처리되도록 해두었는데 이것이 바로 창 관리자다. 그래서 창 관리자는 X 클라이언트이면서도 X 서버와 다른 X 클라이언트들 사이에서 인터페이스로 작동하는 특권을 갖는다.

파일:OMUSIKY.png
또한 창 관리자는 창의 제목 표시줄, 버튼, 테두리 장식 표현도 담당하며(X 윈도에서 특정하게 지정해놓지 않았기에 가능한 일이다) 저마다 고유한 외형을 갖는다. 그래서 창 관리자를 바꾸면 마치 옷을 갈아 입듯 전혀 다른 인터페이스로 모습이 바뀌는 걸 볼 수 있다. 이것은 X 윈도의 구조가 객체지향 구조기 때문에 가능한 것이다. OS X을 닮은 것, M$ 윈도우를 닮은 것(윈도우 95를 닮은 것도 있다...), 넥스트스텝을 닮은 것 외에 다양한 스타일의 외형을 제공하기에 리눅스를 쓰면서 입맛에 맞는 창 관리자를 주 GUI로 채택하는 일도 큰 장점이자 재미있는 일이다.(단 한번 하고 나면 끝이니 꿀잼인 것까지는...;;) 만약 X 서버만 띄어둔 채로 X 클라이언트를 실행하면? 창 테두리가 없는 채로 실행되며 창 제어 역시 불가능하다.

Windowmanager_ohne.png
(출처 : commons.wikimedia.org/wiki/File:Windowmanager_ohne.png)
다만 리눅스에서 일반적으로 X 윈도를 실행하면 창 관리자나 데스크톱 환경까지 같이 실행을 하게 되므로 일부러 창 관리자 프로세스를 종료하지 않는 한 이러한 화면을 보게 될 일은 없다.

1.1 데스크톱 환경이란

GNOME을 예로 들어보면, Gtk 툴킷으로 김프를 만들다 이왕 만든 김에 같은 툴킷으로 계산기를 만들고 메모장을 만들고 탐색기를 만들고 웹브라우저를 만들고 음악 재생기를 만들면 모두 같은 모양의 유저 인터페이스를 띄게 될 것이다. 내친 김에 창 관리자도 만들고(이건 툴킷으로 만드는 건 아님), 작업 표시줄도 만들고 시작 메뉴도 만들고 바탕 화면 기능도 지원해서 아이콘을 깔아 드래그-앤-드롭을 하게 하고 아이콘 테마와 커서 테마, 월페이퍼까지 끼워준 다음에 제어판 비슷한 걸로 이 모든 것들의 설정과 다양한 시스템 설정도 건드릴 수 있게 해놓았다면, 이 일관되게 통합되어 프로세스간 정보 교환이 가능한 GUI 집합체가 바로 테스크톱 환경이라고 할 수 있다. 데스크톱 환경은 리눅스(+유닉스) 유저들이 더 쉽고 편리한 GUI를 사용하려는 의도에서 출발하였다.

윈도우나 OS X도 데스크톱 환경이라고 할 수 있는데 이들은 구성 요소가 고정되어 있어 일반적인 방법으로는 변경이 불가능하다. 이에 비해 리눅스(+유닉스)의 데스크톱 환경은 모듈화가 잘 이루어져 있기에 자유자재로 변경이 가능하다보니 GNOME의 탐색기로 KDEKonqueror 쓰기나[2] KDE에서 Gtk 기반인 Firefox 실행하기는 애교에 불과하며 마개조에 가까운 시도를 하는 경우도 종종 목격된다. LXDE 데스크톱 환경이 Openbox를 창 관리자로 채택했는데 비슷한 사례에 해당한다고 볼 수 있다.

2 개요

Openbox는 X 윈도용 창 관리자의 한 종류다. GPL 라이선스. 사망한 프로젝트인 블랙박스 0.65로부터 갈라져 나왔으며 외관도 비슷하다. 하지만 C 언어로 코드를 다시 짜기 시작했고 3.0 버전부터는 블랙박스와 전혀 무관하게 됐다. 작고 빠르며 Inter-Client Communication Conventions Manual (ICCCM)과 Extended Window Manager Hints (EWMH)를 전적으로 준수한다. 하지만 실행 속도를 좌우하는 건 어차피 프로그램의 무게이므로 초기 구동 속도를 제외하고는 KDE, 그놈과 넘사벽의 차이를 보이지는 않는다.(메모리 사용량은 제법 차이가 난다) ICCCM과 EWMH 역시 KDE의 kwin, 그놈의 metacity나 compiz 같은 웬만한 창 관리자는 잘 준수한다. 따라서 오픈박스를 선택하는 데는 유저의 취향이 크게 작용하는 편. 윈도우를 쓰다 처음 리눅스로 넘어온 유저라면 EWMH를 준수하는 창 관리자의 무수한 기능에 조금 놀랄 수 있다.(그리고 무수한 단축키 개수에도...)

3 특징 및 주요 기능

빠르고 가볍다

데비안 8.0에서 오픈박스로 X 윈도를 시작한 후 메모리 사용량을 확인하면 80 MB 정도가(...) 나오는 수준이다. 최소로 설치한 뒤 확인할 경우 무려 30MB 이하(...) 리눅스를 새 하드에 맨 처음 설치해서 오픈박스로 X 윈도를 실행하면 썰렁함에 당황할 가능성이 높다. 처음에는 에러인줄 알았다(...) 그리고 왜 가벼울 수밖에 없는지 직감적으로(...) 느끼게 된다. 반면 부가 기능 같은 게 부족하다. 데스크톱 환경들은 윈도우 제어판의 네트워크 센터나 장치 관리자, 전원 옵션, 접근성 센터 같은 항목을 포함하고 있는 데 비해, 창 관리자는 창의 관리와 장식만 맡으므로 저러한 설정을 개별 프로그램에서 따로따로 해야 하는 불편함이 있다. 그래도 오픈박스 및 가벼운 창 관리자를 좋아하는 사용자들은 KDE나 GNOME을 비대한 소프트웨어라고 까면서 꿋꿋이 쓴다.(...)(우분투의 유니티도 돼지 취급을 받는다...) M$ 윈도우와 OS X 역시 비대한 대다 돈독(땡스빌고소왕)까지 올랐다고 예전엔 악마 취급 비슷하게까지 했다.[3] 하여튼 속도와 저용량을 편리함과 맞바꾸었다고 볼 수 있다.

  • 바탕화면에 아이콘을 놓을 수 없다. 창 관리자이므로 당연한 일. (그놈과는 다르다. GNOME과는)
  • 배경화면도 유틸리티를 써서 직접 깔아야 한다(...)
  • 화면 위쪽 또는 아래쪽의 작업표시줄(리눅스에선 보통 툴바, 패널, 테스크바라고 부른다)이 없다. 아무런 세팅 없이 처음 오픈박스를 실행하면 텅빈 바탕화면에 마우스 커서만 달랑 나타난다. 오픈박스는 테스크바따윈 제공하지 않기에(...) 마우스 오른쪽 버튼을 눌러 메뉴를 열 수 있는 게 그나마 다행이지만 이조차 프로그램 목록이 대부분이다.
  • Compiz로 대표되는 3D 화면 효과가 전혀 없다. 이 때문에 통상 "가벼운" 창 관리자로 통한다.
  • 메뉴에 , Python, Perl 등의 스크립트 결과값을 표시할 수 있다. 파이어폭스의 라이브 북마크를 떠올리면 대충 감이 잡히는데 Pipe menu라는 명칭을 쓴다. 스크립트 덕후들은 이 기능을 이용해 날씨, 메일 수신, 시스템 상황, RSS 따위 자질구레한 정보를 쓸데없이 시간과 재능을 낭비하는 방식으로 확인한다. 서버 데몬의 시작과 종료, 볼륨 조절, 원격 터미널 접속, 마운트/언마운트와 같은 다양한 작업을 수행하고 명령을 실행하는 것 역시 가능하다.

4 기타

철저히 창 관리자 본연의 기능만 수행하므로 작업 표시줄이며 바탕화면 배경그림 등 필요한 부분을 직접 가져다 써야 한다. [4] 그놈, KDE, 시나몬 등이 편의성을 위한 자원 + 개별 프로그램을 위한 자원 구성으로 나뉘어서 편이성이 증가될수록 필요한 사양이 높아지는것에 반해서 openbox는 개별 프로그램[5] 이 필요한 자원할당을 제외하곤 편의성부분을 거의 대부분 사용자에게 부담시킴으로써 자원을 최대한 적게 사용하는 성격이라고 보면 된다. 그렇기에 초보자에겐 정말 비추천하게 된다.

openbox보다 좀더 편의성이 적은(...) awesome[6]라는 물건도 있지만 끝판왕은 twm[7]이다.
  1. 단순함의 최종형태는 twm이 있다 https://ko.m.wikipedia.org/wiki/Twm
  2. 다만 이러한 경우 두 가지 라이브러리가 모두 로딩되어 메모리 사용율이 훌쩍 올라간다(...)
  3. 2015년 기준으로 빌 게이츠는 은퇴 후 게이츠 재단을 비롯한 막대한 기부 활동으로 대인배 찬사를 받고 있고, 고소남발에 무정자증 드립까지 처가며 친자 확인을 거부한 적 있는 스티브찌질이 잡스 역시 고인이 된 터라 날선 비난은 삼가는 편이다
  4. 전원관리는 xfce걸 가져와서 사용한다든지 철저하게 사용자에게 모든걸 맡긴다
  5. 해당 작업을 위한
  6. [1]
  7. 위키백과의 Twm 문서