윈도 시스템
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
윈도 시스템은 사용자 입력을 처리하고 애플리케이션의 출력을 모니터에 표시하는 디스플레이 서버를 핵심 구성 요소로 한다. X11, Wayland, Mir, SurfaceFlinger, Quartz Compositor, 데스크톱 창 관리자(DWM) 등 다양한 종류가 있으며, 유닉스 계열, 윈도우 NT 계열, 웹 환경 등 여러 운영 체제 및 환경에서 사용된다.
더 읽어볼만한 페이지
- 윈도 시스템 - 파일 탐색기
파일 탐색기는 윈도우 운영체제에서 파일, 폴더 등을 관리하는 시스템 유틸리티로, 윈도우 95부터 시작하여 리본 인터페이스, 다크 모드, 탭 기능 추가 등 지속적인 개선을 거쳐 사용자 편의성을 높여왔다. - 윈도 시스템 - GEM (소프트웨어)
GEM은 Digital Research가 개발한 GUI로, MS-DOS 환경에서 매킨토시와 유사한 경험을 제공하려 했으나, 애플과의 소송과 오픈 소스화 이후 FreeGEM, OpenGEM 등의 파생 프로젝트로 개발이 이어졌다. - X 서버 - X 윈도 시스템
X 윈도 시스템은 네트워크 기반 분산형 윈도 시스템으로, 다양한 운영체제에서 GUI 환경을 제공하며 클라이언트-서버 모델 기반의 네트워크 투명성을 특징으로 한다. - X 서버 - XFree86
XFree86은 유닉스 계열 운영 체제에서 PC 호환 그래픽 하드웨어를 지원하는 X 윈도 시스템의 자유 소프트웨어 구현체였으나, 개발 방식 및 라이선스 문제로 X.Org 서버로 대체되었고 2011년에 프로젝트가 중단되었다.
윈도 시스템 | |
---|---|
개요 | |
유형 | 그래픽 사용자 인터페이스 |
개발자 | 제록스 스탠퍼드 대학교 매킨토시 마이크로소프트 윈도우 X |
상세 정보 | |
구성 요소 | 창 관리자 합성 관리자 |
입력 장치 | 키보드 마우스 터치스크린 |
출력 장치 | 컴퓨터 모니터 |
2. 기술적 세부 사항
윈도 시스템의 핵심 구성 요소는 디스플레이 서버(윈도 서버 또는 컴포저라고도 불림)이다. 디스플레이 서버는 사용자의 입력을 처리하고 각 애플리케이션(클라이언트)에 전달하며, 애플리케이션의 출력을 화면에 표시하는 역할을 한다. 디스플레이 서버와 클라이언트는 디스플레이 서버 프로토콜을 통해 통신한다.[3]
프로그래머의 관점에서 윈도 시스템은 글꼴 렌더링, 선 그리기 등 그래픽 기본 요소를 구현한다. 이는 윈도 매니저와 같은 그래픽 인터페이스의 상위 요소에서 사용할 수 있도록 그래픽 하드웨어의 추상화를 제공한다.
디스플레이 서버 프로토콜은 네트워크 투명성을 지원하여 원격 애플리케이션의 창을 로컬에서 표시할 수 있게 한다. X 윈도 시스템이 대표적인 예시이다.
2. 1. 디스플레이 서버 프로토콜
'''디스플레이 서버''' 또는 '''창 서버'''는 운영 체제의 나머지 부분, 하드웨어, 그리고 서로 간의 입출력을 조정하는 것이 주요 역할인 프로그램이다. 디스플레이 서버는 통신 프로토콜인 디스플레이 서버 프로토콜을 통해 클라이언트와 통신하며, 이는 네트워크 투명성을 가질 수 있어 씬 클라이언트 구현을 용이하게 한다.[3]
디스플레이 서버는 모든 그래픽 사용자 인터페이스, 특히 윈도 시스템의 핵심 구성 요소이며, 사용자는 윈도 시스템을 통해 여러 GUI 애플리케이션을 동시에 표시할 수 있다. 각 애플리케이션은 일반적으로 직사각형 영역의 창에 대응된다.
운영 체제에 따라 윈도 시스템과 윈도 매니저의 경계가 모호하다.
대표적인 디스플레이 서버 프로토콜로는 X11, Wayland, Mir 등이 있다.
2. 1. 1. X11
X 윈도 시스템(X11)은 디스플레이 서버 개념의 구현 중 하나로, 현재 사용되는 버전은 X.Org 서버와 Xlib, XCB 클라이언트 라이브러리이다.[3] X.Org 서버는 디스플레이 서버이지만, 현재 구현에서는 합성을 수행하기 위해 Mutter 또는 KWin과 같은 합성 윈도우 매니저에 의존한다.[3]X.Org 서버, XFree86, XQuartz, Cygwin/X는 X11 디스플레이 서버 프로토콜을 구현하는 대표적인 디스플레이 서버이며, Xlib와 XCB는 X11 디스플레이 서버 프로토콜을 구현하는 클라이언트 라이브러리이다.[3]
X 윈도 시스템은 계층화되어 있으며, GUI의 룩 앤드 필과 동작은 윈도 매니저, 위젯 툴킷, 데스크톱 환경에 맡긴다.[3]
2. 1. 2. Wayland
Wayland 디스플레이 서버 프로토콜을 구현하는 디스플레이 서버를 '''Wayland 컴포지터'''라고 부른다. 모든 디스플레이 서버와 마찬가지로 Wayland 컴포지터는 클라이언트에 대한 입력 및 출력을 처리하며, X11과 달리 컴포지팅(창 효과 처리)도 함께 수행한다. Weston, Mutter, KWin, Enlightenment 등이 대표적인 Wayland 컴포지터이다.[2]
Wayland 컴포지터는 Wayland 디스플레이 서버 프로토콜을 통해 Wayland 클라이언트와 통신한다. 이 프로토콜은 클라이언트가 EGL 렌더링 API를 사용하여 프레임 버퍼에 데이터를 직접 쓸 수 있도록 정의한다. 디스플레이 서버는 어떤 창이 최상위에 있는지, 즉 사용자에게 보이는지를 결정하며, evdev의 입력 장치 관련 데이터를 클라이언트에 전달하는 역할을 한다.[2]
Wayland는 페도라와 같은 일부 리눅스 데스크톱 배포판에서 사용되고 있다. 또한 타이젠, 세일피시 OS, AsteroidOS와 같이 스마트폰 및 태블릿 중심의 프로젝트에도 채택되어 모바일 컴퓨팅에도 적합하다.[2]
Wayland는 MIT 라이선스 하에 libwayland-client 및 libwayland-server 라이브러리로 구현되어 제공된다.[2]
ChromeOS에 Wayland 지원을 추가하기 위한 노력이 진행 중이다.[2]
2. 1. 3. Mir
Mir는 캐노니컬이 개발한 디스플레이 서버 및 프로토콜이다. X11, Wayland와는 다른 자체 Mir 디스플레이 서버 프로토콜을 사용하며, X11 프로토콜도 지원한다. Mir는 우분투의 주력 디스플레이 서버로 계획되었으나, 2017년에 우분투 데스크톱 에디션에서는 Wayland로 대체되었다.Mir 디스플레이 서버 구현체인 libmir-server 및 libmir-client 라이브러리는 GPLv3에 따라 사용할 수 있다.
3. API를 사용하는 윈도 시스템
윈도 시스템의 주요 구성 요소는 디스플레이 서버라고 불리며, 윈도 서버 또는 컴포저라고도 불린다. 윈도에서 GUI를 실행하고 표시하는 모든 응용 프로그램은 디스플레이 서버의 클라이언트이다. 디스플레이 서버와 클라이언트는 응용 프로그래밍 인터페이스(API) 또는 통신 프로토콜을 통해 서로 통신하며, 이를 디스플레이 서버 프로토콜이라고 한다. 디스플레이 서버는 클라이언트와 사용자 간의 중재자 역할을 한다. 커널로부터 모든 입력을 수신하고, 커널은 키보드, 포인팅 장치, 터치스크린 등 연결된 입력 장치로부터 입력을 받아 올바른 클라이언트에 전송한다. 또한 클라이언트의 출력을 컴퓨터 모니터로 처리하는 역할도 한다.
프로그래머의 관점에서 윈도 시스템은 글꼴 렌더링, 화면에 선 그리기 등 그래픽 기본 요소를 구현한다. 이는 윈도 매니저와 같은 그래픽 인터페이스의 상위 요소에서 사용할 수 있도록 그래픽 하드웨어의 추상화를 제공한다.
디스플레이 서버 프로토콜은 네트워크를 지원하거나 네트워크 투명성을 가질 수 있어 씬 클라이언트 구현을 용이하게 한다.
'''디스플레이 서버''' 또는 '''창 서버'''는 운영 체제의 나머지 부분, 하드웨어, 그리고 서로 간의 입출력을 조정하는 것이 주요 역할인 프로그램이다. 디스플레이 서버는 네트워크 투명하거나 네트워크를 사용할 수 있는 통신 프로토콜인 디스플레이 서버 프로토콜을 통해 클라이언트와 통신한다.
디스플레이 서버는 모든 그래픽 사용자 인터페이스, 특히 창 시스템의 핵심 구성 요소이다.
일반적으로 "서버"는 크고 원격인 시스템으로 간주되지만, 독립형 "디스플레이 서버"는 작고 로컬 시스템이며, 대부분의 클라이언트는 더 큰 중앙 시스템에서 실행되기 때문에 서버/클라이언트 관계가 다소 직관적이지 않다. 이는 디스플레이 서버가 디스플레이 및 입력 장치의 ''서비스''를 제공하기 때문이다.
안드로이드 고유 솔루션에는 "Gralloc(그래록)"이 있다. Gralloc은 장치 메모리를 처리하며, 할당, 중재를 수행하고 안드로이드/리눅스 펜스 파일 디스크립터를 통해 동기화를 처리한다. Gralloc 하드웨어 추상화 계층(HAL)은 "surface"의 기반이 되는 버퍼를 할당하는 데 사용된다. Gralloc은 Mesa의 일반 버퍼 관리(GBM) 또는 Nvidia의 EGLStreams와 같은 다른 솔루션과 경쟁한다.
하드웨어 컴포저 HAL(HWC)은 안드로이드 3.0에 도입되었으며 수년에 걸쳐 꾸준히 발전해 왔다. HWC의 주요 목적은 사용 가능한 하드웨어로 버퍼를 합성하는 가장 효율적인 방법을 결정하는 것이다. HAL로서 구현은 장치별로 이루어지며 일반적으로 디스플레이 하드웨어 OEM에서 수행한다.
3. 1. SurfaceFlinger
구글(Google)은 안드로이드용 디스플레이 서버인 SurfaceFlinger를 개발했다.[3]안드로이드에서 모든 것은 "surface(표면)"에 렌더링되며, 이 "surface"는 애플리케이션에서 생성되어 SurfaceFlinger에 의해 관리되는 대기열에 배치된다.[4][5]
Surface는 SurfaceFlinger로 전송되며, SurfaceFlinger는 OpenGL ES를 사용하여 합성을 수행한다.
3. 2. Quartz Compositor
macOS 운영 체제 제품군에서, Quartz Compositor는 윈도 시스템에서 디스플레이 서버와 윈도 관리자의 역할을 수행한다.3. 3. 데스크톱 창 관리자 (DWM)
마이크로소프트 윈도우에서 윈도우 비스타 이후부터 데스크톱 창 관리자(DWM)는 하드웨어 가속을 사용하여 그래픽 사용자 인터페이스를 렌더링한다. DWM은 원래 투명 효과, 3D 창 전환 등과 같은 효과를 가능하게 하는 새로운 "윈도우 에어로" 사용자 경험의 일부를 구현하기 위해 만들어졌다. 윈도우 서버 2008에도 포함되어 있지만, "데스크톱 환경" 기능과 호환되는 그래픽 드라이버가 설치되어야 한다. 윈도우 8부터는 DWM을 비활성화할 수 없으며, 적합한 그래픽 카드가 설치되지 않은 경우 소프트웨어 렌더링된다.4. 윈도 시스템 목록
윈도 시스템은 사용자가 여러 애플리케이션을 동시에 표시하고 사용할 수 있도록 해주는 시스템이다. 각 애플리케이션은 일반적으로 직사각형 모양의 창에 표시되며, 디스플레이 서버라는 프로세스가 화면 출력을 관리하고 다른 애플리케이션(클라이언트)과 상호 작용한다.
운영 체제에 따라 윈도 시스템과 윈도 매니저의 경계가 명확하지 않을 수 있다. 또한, X 윈도 시스템과 같이 네트워크를 통해 원격 컴퓨터에서 실행되는 애플리케이션의 창을 로컬 컴퓨터에 표시할 수도 있다.
다음은 윈도 시스템의 목록이다.
운영체제 | 윈도 시스템 | 비고 |
---|---|---|
HP-UX | HP Windows/9000 | 초기 버전 |
HP-UX | MEX | 실리콘 그래픽스 |
클래식 Mac OS | (통합) | 9 및 이전 버전 |
팜 OS | (통합) | |
마이크로소프트 윈도우 | (통합) | XP, 9x 및 이전 버전 |
플랜 9 | 8½, 리오 | 벨 연구소 |
(수정된 리눅스 커널) | [https://github.com/8l/fbui fbui] | |
CMU 앤드루 윈도우 매니저 | ||
PERQ | 사파이어 | |
화이트채플 오리엘 | ||
레독스 | 오비탈 | |
OpenVMS | VWS | VAX 워크스테이션 소프트웨어 |
블릿 터미널 | mpx/mux | 벨 연구소 |
심볼릭스 | 심볼릭스 다이내믹 윈도우 | |
ManaGeR (MGR) | ||
메티스(Metisse) | ||
NeWS / OpenWindows | ||
NeXT DPS | ||
Qt Extended | ||
선뷰(SunView) | ||
트윈 | 텍스트 윈도 | |
W 윈도우 시스템 | ||
XFast | ||
신스(Xynth) | ||
DM | ||
GEM | ||
인튜이션 | ||
[http://www.minigui.org/ MiniGUI] | ||
[http://www.microwindows.org/ Nano-X Window System] | ||
[http://sourceforge.net/projects/oohg ooHG] | ||
X68000 | SX-Window |
4. 1. 유닉스 계열 운영체제
X 윈도 시스템(X11)은 가장 널리 사용되는 윈도 시스템 중 하나이며, 다양한 운영체제에서 사용 가능하다.[2] X.Org 서버는 X11 프로토콜을 통해 클라이언트와 통신하는 대표적인 예시이다.[2]Wayland는 X11을 대체하기 위해 개발된 현대적인 윈도 시스템으로, 성능 및 보안 개선에 중점을 둔다.[2] Wayland 디스플레이 서버 프로토콜을 구현하는 디스플레이 서버를 Wayland 컴포지터라고 부르며, Weston, Mutter, KWin, Enlightenment 등이 있다.
Mir은 캐노니컬에서 개발한 윈도 시스템으로, 우분투에서 사용되었으나 현재는 Wayland로 대체되었다.
macOS 운영 체제에서, Quartz Compositor는 디스플레이 서버와 윈도 관리자 역할을 수행한다.
그 외 윈도 시스템은 다음과 같다.
- 8½ 및 리오 (벨 연구소의 플랜 9)
- [https://github.com/8l/fbui fbui] (수정된 리눅스 커널 포함)
- ManaGeR (MGR)
- 메티스(Metisse)
- NeWS / OpenWindows
- NeXT DPS
- Qt Extended
- 선뷰(SunView)
- 트윈 (텍스트 윈도)
- W 윈도우 시스템
- XFast
- 신스(Xynth)
- Y Window System
4. 2. 윈도우 NT 계열 운영체제
마이크로소프트 윈도우에서 윈도우 비스타 이후부터 사용되는 데스크톱 윈도우 관리자(DWM)는 하드웨어 가속을 사용하여 그래픽 사용자 인터페이스를 렌더링한다. DWM은 원래 투명 효과, 3D 창 전환 등과 같은 효과를 가능하게 하는 새로운 "윈도우 에어로" 사용자 경험을 구현하기 위해 만들어졌다. 윈도우 서버 2008에도 포함되어 있지만, "데스크톱 환경" 기능과 호환되는 그래픽 드라이버가 설치되어야 한다. 윈도우 8부터는 DWM을 비활성화할 수 없으며, 적합한 그래픽 카드가 설치되지 않은 경우 소프트웨어 렌더링된다.
- 바탕 화면 창 관리자(DWM) (마이크로소프트 윈도우즈 (비스타 및 이후 버전))
- 리액트OS 탐색기
- 클래식 셸
- 포키
- 레트로UI
4. 3. 웹 윈도 시스템
- 도조
- ExtJS
- TIBCO General Interface
- 웹 윈도우 매니저
4. 4. 기타
참조
[1]
서적
Encyclopedia of Microcomputers: Volume 19 - Truth Maintenance Systems to Visual Display Quality
https://books.google[...]
CRC Press
1996-10-11
[2]
웹사이트
Ozone Overview
https://chromium.goo[...]
2017-08-20
[3]
웹사이트
Android system architecture
http://androidteam.g[...]
[4]
웹사이트
Android Developer: Surface
https://developer.an[...]
[5]
웹사이트
Android Developer: SurfaceFlinger and Hardware Composer
https://source.andro[...]
[6]
웹사이트
HP Windows/9000 User's Manual
http://bitsavers.tra[...]
Hewlett Packard
2021-10-26
[7]
간행물
Andrew: A Distributed Personal Computing Environment
http://reports-archi[...]
1986-03
[8]
간행물
The User Interface for Sapphire
http://www.cs.cmu.ed[...]
1984-12
[9]
웹사이트
Chilton::INF::Window Management
http://www.chilton-c[...]
2023-04-11
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com