윈도 시스템

Windowing system
창의 일반적인 요소.창 장식은 창 관리자 또는 클라이언트가 그립니다.내용 도면은 클라이언트의 작업입니다.

컴퓨팅에서 윈도우 시스템(또는 윈도우 시스템)은 디스플레이 [1]화면의 다른 부분을 별도로 관리하는 소프트웨어입니다.사용자 인터페이스WIMP(윈도우, 아이콘, 메뉴, 포인터) 패러다임을 구현하는 그래피컬 사용자 인터페이스(GUI)의 일종입니다.

현재 실행 중인 각 애플리케이션에는 사용자에게 GUI를 표시하기 위해 일반적으로 크기가 조정 가능하고 직사각형인 디스플레이 표면이 할당됩니다.이러한 창들은 겹치지 않는 타일링 인터페이스와는 반대로 서로 겹칠 수 있습니다.보통 창문의 장식은 각 창 주위에 그려집니다.위젯 툴킷을 사용하면 슬라이더, 버튼 등 사용자가 직접 조작할 수 있는 그래픽 요소인 윈도우 장식 및 윈도우 내 사용 가능한 위젯의 프로그래밍을 쉽고 간단하게 할 수 있습니다.

기술적 세부사항

윈도우 시스템의 주요 컴포넌트는 보통 디스플레이 서버라고 불리지만 윈도우 서버나 컴포지터 같은 대체 명칭도 사용되고 있습니다.실행되어 창에 GUI를 표시하는 응용 프로그램은 모두 디스플레이 서버의 클라이언트입니다.디스플레이 서버와 그 클라이언트는 일반적으로 디스플레이 서버 프로토콜이라고 불리는 통신 프로토콜을 통해 서로 통신합니다. 디스플레이 서버는 클라이언트와 사용자 간의 매개자입니다.키보드, 포인팅 디바이스, 터치스크린연결된 모든 입력 디바이스에서 커널이 수신하는 모든 입력을 커널로부터 수신하여 올바른 클라이언트에 전송합니다.디스플레이 서버는 컴퓨터 모니터에 대한 클라이언트의 출력도 담당합니다.사운드의 출력은 통상 디스플레이 서버에 의해 관리되지 않지만, 음량은 보통 GUI 애플릿을 통해 처리되며, 어떤 애플리케이션이 위에 있는지 결정하는 것은 디스플레이 서버입니다.윈도우 시스템은 컴퓨터 사용자가 동시에 여러 프로그램을 조작할 수 있게 해준다.각 프로그램은 일반적으로 화면의 직사각형 영역인 자체 [citation needed]창에 GUI를 표시합니다.

프로그래머의 관점에서 윈도우 시스템은 그래픽 프리미티브를 구현한다.예를 들어 글꼴 렌더링 또는 화면에 선 그리기입니다.윈도 [citation needed]매니저와 같은 그래픽인터페이스의 상위 요소에서 사용할 수 있도록 그래픽하드웨어의 추상화를 제공합니다.

디스플레이 서버 프로토콜은 네트워크 지원 또는 네트워크 투과적일 수 있으므로 씬 [citation needed]클라이언트의 구현을 용이하게 합니다.

디스플레이 서버

GUI의 기본 컴포넌트: 디스플레이 서버는 윈도우 시스템을 구현합니다.단순한 윈도 매니저는 윈도 장식을 그릴 뿐이지만 컴포지트 윈도 매니저는 더 많은 작업을 수행합니다.

디스플레이 서버 또는 윈도 서버는 운영체제, 하드웨어 및 서로에 대한 클라이언트의 입출력을 조정하는 것이 주요 태스크인 프로그램입니다.디스플레이 서버는 디스플레이 서버 프로토콜(통신 프로토콜)을 통해 클라이언트와 통신합니다. 이 프로토콜은 네트워크 투과적 또는 단순히 네트워크 지원일 수 있습니다.

디스플레이 서버는 그래픽 사용자 인터페이스, 특히 윈도우 시스템의 핵심 컴포넌트입니다.

디스플레이 서버 통신 프로토콜

X11

X.Org 서버는 클라이언트(예: Amarok)와 X11 프로토콜을 통해 통신합니다.
X Window System logo

디스플레이 서버의 예로는 X가 있습니다.Org Server: 커널(일반적으로 Linux 또는 BSD와 같은 Unix와 유사한 커널) 위에서 실행됩니다.사용자 입력 데이터(예: Linux의 evdev에서)를 수신하여 클라이언트 중 하나에 전달합니다.또, 디스플레이 서버는 클라이언트로부터 데이터를 수신해, 데이터를 처리해, 컴포지팅을 실시해, Linux 에서는 DRM, GEM, 또는 KMS 드라이버의 3개의 커널 컴포넌트 중 하나에 데이터를 전달합니다.컴포넌트는 데이터를 프레임버퍼에 쓰고 프레임버퍼의 내용은 연결된 화면으로 전송되어 표시됩니다.X는 GLX에 의존합니다.

디스플레이 서버 개념의 구현 중 하나는 X Window System이며, 특히 실제로 사용되는 버전인 X입니다.Org Server, XlibXCB 클라이언트 라이브러리.X.Org 서버는 디스플레이 서버이지만 현재 구현에서는 컴포지팅을 수행하기 위해 두 번째 프로그램인 컴포지팅관리자에 의존합니다.를 들어 Mutter나 KWin이 있습니다.

X11 디스플레이 서버 프로토콜을 구현하는 디스플레이 서버의 주목할 만한 예는 X입니다.Org Server, XFree86, XQuartzCygwin/X는 X11 디스플레이 서버 프로토콜을 구현하는 클라이언트 라이브러리는 Xlib 및 XCB입니다.

웨이랜드

Wayland 디스플레이 서버 프로토콜
Wayland logo

Wayland 디스플레이 서버 프로토콜을 구현하는 디스플레이 서버를 Wayland 컴포지터라고 합니다.다른 디스플레이 서버와 마찬가지로 Wayland 컴포지터는 클라이언트의 입출력 처리와 X11과는 달리 컴포지팅을 담당합니다.를 들어 Weston, Mutter, KWin 또는 Illlustment가 있습니다.

Wayland 컴포지터는 Wayland 디스플레이 서버 프로토콜을 통해 Wayland 클라이언트와 통신합니다.이 프로토콜은 클라이언트가 EGL 렌더링 API를 사용하여 프레임 버퍼에 직접 데이터를 쓸 수 있도록 정의합니다.디스플레이 서버는 어떤 창이 맨 위에 있는지 사용자가 볼 수 있는지 결정할 수 있으며 evdev에서 클라이언트로 입력 디바이스에 관한 데이터를 전달할 책임이 있습니다.

Wayland는 Fedora와 같은 일부 Linux 데스크톱 배포에서 어느 정도 사용됩니다.모바일 컴퓨팅에도 매우 적합하며 스마트폰과 태블릿에 초점을 맞춘 프로젝트인 Tizen, Sailfish OS Imbonite에서 채택되었습니다.OS.

Wayland 구현은 MIT 라이센스, libwayland-client 및 libwayland-server 라이브러리에서 사용할 수 있습니다.

크롬 [2]OS에 Wayland 지원을 추가하려는 노력이 계속되고 있습니다.

미르

Mir 디스플레이 서버에는 X11 및 Wayland에서 사용하는 것과 다른 자체 Mir 디스플레이 서버 프로토콜이 포함되어 있습니다.Mir는 X11 프로토콜을 추가로 지원합니다.이것은 Canonical에 의해 개발되었으며 Ubuntu를 위한 디스플레이 서버로서 의도되었다.2017년 현재 Ubuntu 데스크톱 에디션용 Wayland 디스플레이 서버로 대체되었습니다.

GPLv3에서는 Mir 디스플레이 서버, libmir-server 및 libmir-client 라이브러리가 구현되어 있습니다.

서피스 플린저

구글안드로이드용 디스플레이[3] 서버 SurfaceFlinger(모바일 기기용 또 다른 Linux 커널 기반 운영체제)를 개발했다.

Android의 모든 것은 "표면"에 렌더링됩니다. "표면"은 애플리케이션에 의해 생성되고 Surface Flinger에 [4][5]의해 관리되는 큐에 배치됩니다.

또 다른 안드로이드 전용 솔루션은 "Gralloc"입니다.Gralloc은 디바이스 메모리를 처리합니다.즉, 할당, 조정, Android/Linux fence 파일 기술자를 통한 동기화를 처리합니다.Gralloc은 다음과 같은 다른 솔루션과 경쟁합니다.Mesa의 GBM(Generic Buffer Management) 또는 Nvidia의 EGLStreams.Gralloc Hardware Abstraction Layer(HAL; 하드웨어 추상화 레이어)는, 「서페이스」의 기반이 되는 버퍼를 할당하기 위해서 사용됩니다.

Android에서의 컴포지팅을 위해 Surfaces는 Surface Flinger로 전송되며, Surface Flinger는 OpenGL ES를 사용하여 컴포지팅을 수행합니다.

하드웨어 컴포저 HAL(Hardware Composer HAL)은 Android 3.0에서 도입되었으며 수년간 꾸준히 발전해 왔습니다.그 주된 목적은 사용 가능한 하드웨어와 컴포지트 버퍼를 조합하는 가장 효율적인 방법을 결정하는 것입니다.HAL의 실장은 디바이스에 따라 다르며 일반적으로 디스플레이 하드웨어 OEM에 의해 이루어집니다.

쿼츠 컴포지터

Quartz Compositor는 애플의 macOS 계열 운영체제에서 디스플레이 서버와 윈도 매니저의 작업을 수행합니다.

데스크톱 창 관리자

Microsoft Windows 에서는, Windows Vista 이후부터, 데스크탑·윈도·매니저를 사용해 하드웨어·액셀러레이션을 사용해 그래피컬·유저·인터페이스를 렌더링 할 수 있습니다.이것은 원래 투명성, 3D 창 전환 등의 효과를 가능하게 하는 새로운 "Windows Aero" 사용자 경험의 일부를 가능하게 하기 위해 만들어졌습니다.Windows Server 2008에도 포함되어 있습니다만, 「데스크탑 익스피리언스」기능과 호환성이 있는 그래픽·드라이버를 인스톨 할 필요가 있습니다.Windows 8 이후에서는, DWM 를 무효로 할 수 없고, 적절한 그래픽 카드가 인스톨 되어 있지 않은 경우, 소프트웨어가 렌더링 됩니다.

윈도우 시스템 목록

Unix 계열 운영체제용

Windows NT 시리즈 운영 체제용

윈도우 시스템

다른.

Microsoft Windows(XP, 9x 이전), 클래식 Mac OS(버전 9 이전) 및 Palm OS와 같은 일부 시스템에는 [citation needed]OS와 통합된 윈도우 시스템이 포함되어 있습니다.

참고 항목

레퍼런스

  1. ^ Kent, Allen; Williams, James G. (1996-10-11). Encyclopedia of Microcomputers: Volume 19 - Truth Maintenance Systems to Visual Display Quality. CRC Press. p. 227. ISBN 9780824727178. Retrieved 8 June 2017.
  2. ^ "Ozone Overview". Retrieved 2017-08-20.
  3. ^ "Android system architecture" (PDF). Archived from the original (PDF) on 2016-04-08.
  4. ^ "Android Developer: Surface".
  5. ^ "Android Developer: SurfaceFlinger and Hardware Composer".
  6. ^ "HP Windows/9000 User's Manual" (PDF). Hewlett Packard. April 1988. Retrieved 2021-10-26.
  7. ^ Myers, Brad (Dec 1984). "The User Interface for Sapphire" (PDF). IEEE Computer Graphics and Applications. 4 (12): 13–23. doi:10.1109/MCG.1984.6429376.