본문 바로가기
리눅스

(번역) Window manager

by 다움위키 2025. 2. 5.

원문 보기: https://dawoum.duckdns.org/wiki/Window_manager

 

Original article: w:Window manager

윈도우 관리자(window manager)는 그래픽 사용자 인터페이스에서 윈도잉 시스템 내에 윈도우의 배치와 모양을 제어하는 ​​시스템 소프트웨어입니다. 대부분의 윈도우 관리자는 데스크탑 환경 제공을 돕기 위해 설계되었습니다. 그것들은 요구된 기능—그래픽 하드웨어, 포인팅 장치 및 키보드에 대한 지원—을 제공하는 기본 그래픽 시스템과 함께 작동하고 종종 위젯 툴킷을 사용하여 작성 및 생성됩니다.

윈도우 관리자 중 일부는 윈도잉 시스템과 윈도우 관리자 사이의 명확한 구분과 함께 설계되었습니다. 윈도우 메타포를 기반으로 하는 모든 각 그래픽 사용자 인터페이스에는 어떤 형태의 윈도우 관리가 있습니다. 실제로, 이 기능의 요소는 매우 다양합니다. 보통 윈도우 관리자와 결합된 요소는 사용자에게 윈도우 오양새를 포함하여 실행 중인 윈도우를 열고, 닫고, 최소화하고, 최대화하고, 이동하고, 크기를 조정하고, 추적하는 것을 허용합니다. 많은 윈도우 관리자에는 작업 표시줄, 프로그램 실행기, 화면에서 윈도우를 반으로 나누거나 4등분하는 데 도움이 되는 도크, 윈도우를 그룹화하기 위한 작업 공간, 데스크탑 아이콘, 배경 화면, 선택한 윈도우를 포그라운드에 유지하는 기능, 윈도우를 "롤업"하여 제목 표시줄만 표시하고, 윈도우를 계단식으로 배열하고, 윈도우를 그리드에 쌓고, 작업 표시줄에서 같은 프로그램의 윈도우를 그룹화하여 공간을 절약하고, 선택적 다중-행 작업 표시줄과 같은 다양한 유틸리티와 기능도 제공됩니다.

History

1973년, Xerox Alto는 작동하는 WIMP GUI와 함께 제공된 최초의 컴퓨터가 되었습니다. 그것은 겹치는 윈도우를 허용하는 스택킹 윈도우 관리자를 사용했습니다. 어쨌든, 이것은 시대를 너무 앞서 있었기 때문에 그 디자인 패러다임은 10년 이상 지나서야 널리 채택되었습니다. Microsoft Windows에 Apple의 클래식 Mac OS에서 복사한 디자인이 포함되어 있는지는 불분명하지만, 둘 다 스태킹 윈도우를 사용하여 GUI를 생산한 최초의 컴퓨터는 아니었습니다. 1980년대 초, Alto의 후속 제품인 Xerox Star는 대부분의 주요 응용 프로그램 윈도우에 타일링을 사용했고, 대화 상자에만 겹침을 사용하여 스태킹의 필요성을 대부분 제거했습니다.

클래식 Mac OSQuickDraw를 통한 일종의 스태킹 윈도우 관리를 사용한 GUI의 가장 초기 상업적 성공 사례 중 하나였습니다. 후속 버전인 macOSMac OS X 10.0부터 합성을 지원해 온 다소 더 진보된 윈도우 관리자를 사용하고, Mac OS X 10.2에서 Quartz Compositor를 통한 하드웨어 가속 합성을 지원하도록 업데이트되었습니다.

Digital Research로부터 GEM 1.1은 모든 윈도우를 겹칠 수 있는 스태킹 윈도우 관리자가 포함된 운영 환경이었습니다. 그것은 1980년대 초에 출시되었습니다. GEMAtari TOS를 실행한 Atari ST에서 사용된 주요 GUI로 포함된 것으로 유명하고, Microsoft Windows가 널리 사용되기 전에 MS-DOS에 대한 인기 있는 GUI이기도 했습니다. Apple에 의한 소송으로 인해, Digital Research는 GEM 2.0에서 스태킹 기능을 제거해야 했고, 이로 인해 윈도우 관리자가 타일링 윈도우 관리자가 되었습니다.

1980년대 중반, Amiga OS에는 Intuition (AmigaOS의 저수준 라이브러리 중 하나로, Amiga 시스템 ROM에 존재)이라는 초기 합성 윈도우 관리자의 예가 포함되어 있었으며, 어떤 윈도우가 그둘 중 일부가 가려져 있고, 어떤 윈도우가 포그라운드에 있고 완전히 보이는지 인식할 수 있었으며, 따라서 새로 고침이 필요한 화면 부분만 그릴 수 있었습니다. 추가적으로, Intuition은 합성을 지원했습니다. 응용 프로그램은 먼저 현재 디스플레이 영역 외부의 메모리 영역을 요청하여 비트맵으로 사용할 수 있습니다. 그런 다음 Amiga 윈도잉 시스템은 시스템의 하드웨어 블리터를 사용하여 일련의 비트 블리트를 사용하여 이들 응용 프로그램의 비트맵과 버튼 및 슬라이더를 디스플레이 메모리에 합성하여 이들 응용 프로그램이 비트맵을 다시 그릴 필요가 없도록 합니다.

1988년에, Presentation Manager가 OS/2의 기본 쉘이 되었으며, 첫 번째 버전에서는 명령줄 인터페이스 (CLI)만 사용했습니다. IBM과 Microsoft는 OS/2를 DOS와 DOS을 위한 Windows의 후속 버전으로 설계했습니다. 어쨌든, Windows 3.10이 성공한 후, Microsoft는 Windows를 선호하여 프로젝트를 버렸습니다. 그 후, 미래의 OS/2 버전 3에 대한 Microsoft 프로젝트는 Windows NT가 되었고, IBM은 OS/2 쉘을 완전히 재설계하여, OS/2 1.x의 Presentation Manager를 OS/2 2.0에서 데뷔한 객체-지향 Workplace Shell로 대체했습니다.

Examples

X window managers

Main article: X window manager

X 윈도우 시스템을 사용하는 시스템에서, 윈도우 관리자와 윈도잉 시스템 사이에 명확한 구분이 있습니다. 엄밀히 말해서, X 윈도우 관리자는 비디오 하드웨어, 마우스, 또는 키보드와 직접 상호 작용하지 않습니다 – 이는 디스플레이 서버의 책임입니다.

X 윈도우 시스템 사용자는 GNOME 2에서 사용되는 Metacity, KDE Plasma Workspaces에서 사용되는 KWin 등 여러 다른 윈도우 관리자를 쉽게 사용할 수 있습니다. 많은 윈도우 관리자가 모듈식이므로, 사람들은 윈도우 관리자를 대체하는 Compiz (3D 합성 윈도우 관리자)와 같은 다른 윈도우 관리자를 사용할 수 있습니다. 다른 한편, Sawfishawesome은 엄격한 윈도우 제어를 제공하는 확장-가능한 윈도우 관리자입니다. 다른 윈도우 관리자의 구성 요소도 심지어 혼합될 수 있고 일치시킬 수도 있습니다; 예를 들어, KWin으로부터 윈도우 모양새를 GNOME의 데스크탑도크 구성 요소와 함께 사용할 수 있습니다.

X 윈도우 관리자는 역시 응용 프로그램을 재-부모로 지정할 수 있는 기능을 가지고 있으며, 처음에는 모든 응용 프로그램이 루트 윈도우 (필연적으로 전체 화면)에 의해 채택되지만, 루트 윈도우 내에서 시작된 응용 프로그램은 또 다른 윈도우에 의해 채택될 수 있음을 의미합니다 (즉, 다른 윈도우 내부에 놓일 수 있습니다). X 윈도우 시스템 아래에서 윈도우 관리자는 루트 윈도우에서 응용 프로그램을 채택하고 그것들을 재-부모로 지정하여 윈도우 장식 (예를 들어 타이틀 바 추가)을 적용합니다. 재-부모로 지정은 한 윈도우의 컨텐츠를 또 다른 윈도우에 추가하는 데에도 사용될 수 있습니다. 예를 들어, 플래시 플레이어 응용 프로그램은 브라우저 윈도우로 재-부모로 지정될 수 있고, 사용자에게는 해당 프로그램의 일부인 것처럼 보일 수 있습니다. 그러므로 재-부모로 지정하는 윈도우 관리자는 하나 이상의 프로그램을 같은 윈도우 내에 배열할 수 있고, 다양한 방식으로 타일링스태킹을 쉽게 결합할 수 있습니다.

Further information: Re-parenting window manager

Microsoft Windows

Microsoft Windows는 Windows 2.0부터 통합 스태킹 윈도우 관리자를 제공했습니다; Windows Vista는 선택적 하드웨어-가속 대안으로 컴포지팅 데스크탑 윈도우 관리자 (dwm.exe)를 도입했습니다. Windows에서, GDI는 커널의 일부이므로, 윈도우 관리자의 역할은 커널의 그래픽 하위 시스템과 밀접하게 결합되어 있고 대체로 대체할 수 없지만, 타사 유틸리티는 그러한 시스템 꼭대기에서 타일링 윈도우 관리자를 시뮬레이션하기 위해 사용될 수 있습니다. Windows 8부터, Direct3D-기반 데스크탑 윈도우 관리자가 더 이상 비활성화될 수 없습니다. 그것은 단축키 조합 Ctrl+Shift+Win+B로만 다시 시작될 수 있습니다.

Windows 탐색기 (explorer.exe)는 최신 Windows 시스템에서 작업 표시줄과 파일 관리자를 제공하기 위해 기본적으로 로 사용되고 여러 윈도우 관리자 기능을 함께 제공합니다; Windows의 일부 측면은 제공된 구성 유틸리티를 통해 수정하여, Windows 레지스트리를 수정하거나 WindowBlinds 또는 Resource Hacker와 같은 타사 도구를 사용하여 수정할 수 있습니다.

Cygwin/X를 통해 멀티윈도우 모드 (및 다른 X 윈도우 시스템 구현)에서도 유닉스 세계에서 포팅된 윈도우 관리자의 사용을 허용하는 완전한 X 윈도우 서버는 Microsoft Windows에 대해 제공될 수 있습니다. 그에 따라, 예를 들어 같은 기계의 같은 Cygwin 환경에서 또는 네트워크를 통해 Linux, BSD Unix 등의 시스템에서 X 윈도우 시스템 클라이언트 프로그램을 실행하고, 해당 GUI만 Microsoft Windows 환경 꼭대기에 표시되고 사용할 수 있습니다.

Microsoft와 X Window System은 유사한 개념을 설명하기 위해 서로 다른 용어를 사용함에 주목하십시오. 예를 들어, Microsoft에 의해 윈도우 관리자라는 용어를 거의 언급하지 않는데 왜냐하면 윈도우 관리자가 통합되어 있고 대체할 수 없고, 과 다르기 때문입니다. Windows 은 다른 그래픽 사용자 인터페이스 시스템의 데스크탑 환경 개념과 유사합니다.

ChromeOS

2021년부터 ChromeOS에는 Ash라는 자체 윈도우 관리자가 함께 제공됩니다. Chromium과 Ash는 공통 코드베이스를 공유합니다.[17] 과거에는 호환 시스템에서 google-chrome --open-ash를 사용하여 실행할 수 있었습니다.

Types

윈도우 관리자는 종종 세 개 이상의 클래스로 나뉘며, 이는 윈도우가 그려지고 업데이트되는 방식을 설명합니다.

Compositing window managers

합성 윈도우 관리자는 모든 윈도우를 별도로 만들고 그리고 그런-다음 다양한 2D 및 3D 환경에서 함께 배치하고 표시하도록 허용합니다. 가장 진보된 합성 윈도우 관리자는 인터페이스 모양과 느낌의 다양성을 크게 허용하고, 고급 2D 및 3D 시각 효과의 제공을 허용합니다.

Stacking window managers

겹치는 윈도우를 가지고 합성 윈도우 관리자가 아닌 모든 윈도우 관리자는 스택킹 윈도우 관지라이지만, 모두가 같은 방법을 사용하지는 않을 수 있습니다. 스태킹 윈도우 관리자는 먼저 배경 윈도우를 그림으로써 윈도우를 겹치게 할 수 있으며, 이는 페인터의 알고리즘으로 참조됩니다. 변경 사항은 때때로 모든 윈도우를 다시-쌓거나 다시 그리도록 요구하며, 보통 모든 윈도우를 다시 그리는 것을 포함합니다. 어쨌든, 배경 윈도우를 앞으로 가져오기 위해 보통 하나의 윈도우만 다시 그리도록 요구하는데, 왜냐하면 배경 윈도우에는 다른 윈도우의 일부가 그려져 있을 수 있으므로, 덮인 영역이 효과적으로 지워지기 때문입니다.

Tiling window manager

Main article: Tiling window manager

타일링 윈도우 관리자는 모든 윈도우를 나란히 또는 위아래로 배치함으로써 화면에 그리므로, 어떤 윈도우도 다른 윈도우를 덮지 않습니다. Microsoft Windows 1.0은 타일링을 사용했고, i3, awesome, 및 dwm과 같은 다양한 X에 대해 타일링 윈도우 관리자가 제공됩니다.

Dynamic window manager

동적 윈도우 관리자는 타일링 또는 플로팅 윈도우 레이아웃 사이를 동적으로 전환할 수 있습니다. X에 대해 동적 윈도우 관리자는 다양합니다.

Features and facilities of window managers

  • Autohide : 자동 숨기기 기능은 포인터가 화면 가장자리에서 멀리 옮져질 때 메뉴-막대를 사라지도록 활성화합니다.
  • Borders : 테두리는 일부 윈도우 관리자에 의해 제공하는 윈도우 모양새 구성 요소로, 활성 윈도우 주위에 나타납니다. 일부 윈도우 관리자는 배경 윈도우 주위에 테두리를 표시할 수도 있습니다. Context Menu 일부 윈도우 관리자는 대안적인 클릭 이벤트가 데스크탑 구성 요소에 적용될 때 나타나는 컨텍스트 메뉴를 제공합니다.
  • Desktop Wallpaper : 일부 윈도우 관리자는 루트 윈도우에 배경 그림을 표시하는 데스크탑 배경 기능을 제공합니다.
  • Focus Stealing : 포커스 스틸링은 일부 윈도우 관리자가 제공하는 기능입니다. 그것은 포커스가 없는 응용 프로그램에게 갑자기 포커스를 얻도록 허용하고 이전에 포커스가 맞춰진 응용 프로그램에 대한 사용자 입력을 훔칠 수 있습니다.
  • Iconification : 아이콘화 기능은 사용자에게 실행 중인 응용 프로그램을 데스크탑 아이콘이나 작업-패널 아이콘으로 최소화하도록 허용합니다.
  • Joined Windows : 일부 윈도우 관리자는 사용자에게 응용 프로그램 윈도우 프레임을 결합하도록 허용하는 결합된 윈도우 기능을 제공합니다.
  • Keyboard Equivalents : 일부 윈도우 관리자는 키보드로 마우스 기능을 복제할 수 있는 키보드 대체 기능을 제공합니다.
  • Menubar : 메뉴바는 메뉴를 통해 프로그램을 시작하는 기능을 제공하고 시작 단추, 작업 표시줄, 및 시스템 트레이 등의 추가 기능을 포함할 수 있습니다.
  • Menu Panel : 메뉴 패널은 일부 윈도우 관리자의 구성 요소로, 메뉴를 사용하여 프로그램을 시작하는 기능을 제공합니다. 메뉴 패널메뉴바와 비슷하지만, 수평 또는 수직 막대가 아닌 떠 있는 패널로 나타납니다. 메뉴 패널에는 시작 단추, 작업 패널, 및 시스템 트레이 등의 추가 기능이 포함되어 있을 수 있습니다.
  • Mouse focus : 마우스 포커스 모델은 포인팅 장치가 윈도우 관리자 내의 입력 포커스에 어떤 영향을 미치는지 결정합니다. 포커스 모델은 포인터가 화면 주위로 이동함에 따라 그래픽 사용자 인터페이스의 어떤 구성 요소가 현재 입력을 받도록 선택되어 있는지 결정합니다.
  • Mouse warping : 마우스 워핑은 활성화된 현재 응용 프로그램에 포인터를 중앙으로 배치하는 기능입니다.
  • Multiple Desktops : 윈도우 관리자는 다중 데스크탑 기능을 제공할 수 있습니다. 이것은 여러 루트 윈도우 데스크탑 사이에 전환을 활성화합니다. 이것은 응용 프로그램이 다른 데스크탑에서 실행될 수 있으므로 루트 윈도우의 어수선함을 방지합니다.
  • Pager : 일부 윈도우 관리자는 다중 데스크탑 사이를 전환할 수 있는 기능을 제공하는 페이저 도구를 제공합니다. 페이저는 화면 윈도우로 나타나거나 작업 표시줄이나 작업 패널의 가젯으로 나타날 수 있습니다.
  • Plugins : 일부 윈도우 관리자는 필요에 따라 플러그-인 모듈을 통해 기능을 제공할 수 있는 모듈식 구조를 가지고 있습니다.
  • Rollup : 롤업 기능은 윈도우를 데스크탑에 제목 표시줄로만 표시하도록 활성화합니다.
  • Root Menu : 일부 윈도우 관리자는 루트 윈도우데스크탑 배경을 터치할 때 나타나는 루트 메뉴를 제공합니다.
  • Shortcuts : 일부 윈도우 관리자는 사용자에게 특정 프로그램이나 기능에 접근하는 아이콘을 루트 윈도우에 놓을 수 있는 바로 가기 기능을 제공합니다.
  • Tabbed Windows : 일부 윈도우 관리자는 공통 프레임으로 함께 응용 프로그램을 그룹화하는 탭 방식의 윈도우 기능을 제공합니다.
  • Task Switching : 윈도우 관리자는 사용자에게 현재 포커스가 맞춰진 응용 프로그램을 변경하도록 허용하는 다양한 작업 전환 기능을 제공할 수 있습니다. 여기에는 다음이 포함됩니다:
  • Taskbar : 일부 윈도우 관리자는 실행 중인 응용 프로그램을 보여주는 작업 표시줄을 제공합니다. 작업 표시줄최소화된 응용 프로그램을 포함하여 실행 중인 모든 응용 프로그램을 보여줄 수 있고, 이들 사이에 초점을 전환하는 기능을 제공할 수 있습니다. 작업 표시줄은 일부 윈도우 관리자의 메뉴 표시줄에 통합될 수 있습니다.
  • Task Panel : 작업 패널작업 표시줄과 비슷하지만, 수평 또는 수직 막대가 아닌 떠 있는 패널로 나타납니다.
  • Start Button : 시작 단추는 실행될 수 있는 프로그램의 메뉴를 제공하는 데스크탑 위젯입니다. 시작 단추는 전형적으로 화면 하단에 메뉴바에 배치됩니다.
  • Notification Area : 알림 영역데스크탑 윈도우를 가지지 않는 시스템과 프로그램 기능에 대한 아이콘을 표시하기 위해 사용됩니다. 그것은 주로 상태 정보와 새 메일 메시지 도착과 같은 알림을 나타내는 아이콘을 포함하고 있습니다. 일부 시스템은 알림 영역에 시계를 표시할 수도 있습니다.
  • Title Bars : 타이틀바는 일부 윈도우 관리자가 각 윈도우의 상단에 제공하는 윈도우 모양새 구성 요소입니다. 타이틀바는 전형적으로 응용 프로그램 이름이나 열려 있는 문서 이름을 표시하기 위해 사용되고, 응용 프로그램 윈도우를 최소화, 최대화, 닫기 또는 롤업하기 위한 타이틀바 버튼을 제공할 수 있습니다.
  • Title Bar Buttons : 타이틀바 버튼은 일부 윈도우 관리자의 타이틀바에 포함되어 있고, 응용 프로그램 윈도우를 최소화, 최대화, 롤업 또는 닫는 기능을 제공합니다. 일부 윈도우 관리자는 타이틀바가 아닌 작업 표시줄이나 작업 패널에 타이틀바 버튼을 표시할 수 있습니다.
  • Virtual Desktop : 가상 데스크탑 (스크롤링 데스크탑이라고도 함)은 일부 윈도우 관리자가 제공하는 기능으로 데스크탑을 실제 화면보다 크게 만들 수 있습니다.

Windows navigation

활성 윈도우는 현재 윈도우 관리자에서 현재 포커스가 맞춰진 윈도우입니다. 다른 윈도우 관리자는 현재 활성 윈도우를 다른 방식으로 표시하고 사용자가 다른 방식으로 윈도우 사이를 전환할 수 있도록 합니다. 예를 들어, Microsoft Windows에서, 메모장Microsoft 페인트 둘 다가 열려 있으면, 메모장 윈도우에서 클릭하는 것은 해당 윈도우가 활성화되는 원인이 될 것입니다. Windows에서, 활성 윈도우는 다른 색상의 제목 표시줄을 가짐으로써 표시됩니다. 어쨌든, 클릭하는 것이 활성 윈도우를 선택하는 유일한 방법은 아닙니다: 일부 윈도우 관리자 (예를 들어, FVWM)는 마우스 포인터 아래에 있는 윈도우를 활성화합니다—마우스를 움직이는 것만으로도 윈도우를 전환할 수 있습니다; 클릭할 필요가 없습니다.

윈도우 관리자는 종종 마우스의 대안으로 키보드를 사용하여 활성 윈도우를 선택하는 방법을 제공합니다. 공통적인 키 조합 중 하나는 Windows와 KDE에 의해 사용되는 Alt+Tab (기본값이지만 사용자가 구성할 수 있음)입니다; 또 다른 하나는 Macintosh에 의해 사용되는 apple 키-tilde입니다. 적절한 키 조합을 누르는 것은 전형적으로 모든 표시 윈도우를 어떤 순서로 순환하지만 다른 동작도 가능합니다.

모든 윈도우 관리자는 아니지만 많은 윈도우 관리자가 화면의 각 윈도우에 대한 어떤 종류의 시각적 제어 (종종 단추)를 포함하는 화면의 영역을 제공합니다. 각 단추는 전형적으로 윈도우 제목을 포함하고 아이콘도 포함할 수 있습니다. 화면의 이 영역은 일반적으로 어떤 윈도우가 활성화되어 있는지에 대한 어떤 종류의 시각적 표시를 제공합니다—예를 들어, 활성 윈도우의 단추는 "눌려져" 보일 수 있습니다. 역시 보통 적절한 단추를 클릭함으로써 활성 윈도우를 전환할 수도 있습니다. Microsoft Windows에서, 화면의 이 영역은 작업 표시줄이라고 불립니다; Apple Macintosh 시스템에서, 화면의 이 영역은 도크라고 불립니다.

활성 윈도우가 항상 화면의 다른 모든 윈도우 앞에 있는 것은 아닙니다. 활성 윈도우는 키보드에서 입력한 키가 전송되는 윈도우일 뿐입니다; 그것은 다른 윈도우에 의해 시각적으로 가려질 수 있습니다. 이것은 특히 활성 윈도우를 변경하기 위해 클릭이 필요하지 않은 윈도우 관리자에서 그렇습니다: 예를 들어 FVWM은 마우스 커서 아래에 있는 윈도우를 활성화하지만 Z-순서 (어떤 윈도우가 나타나는 순서, 배경에서 전경까지 측정)는 변경하지 않습니다. 대신 윈도우의 테두리를 클릭하여 전경으로 가져와야 합니다. Microsoft Windows와 같은 클릭-투-포커스 윈도우 관리자에서 활성 윈도우가 가려지는 상황도 있지만 이는 훨씬 덜 공통적입니다.