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

Wayland (display server protocol)
웨이랜드
Wayland Logo.svg
Weston 10.0 screenshot.png
Weston, Wayland 서버의 레퍼런스 실장.
원저작자크리스티안 호그스베르크
개발자freedesktop.org 등
초기 릴리즈2008년 9월 30일, 13년 전(2008-09-30)[1]
안정된 릴리스
Wayland:[2] 1.20, Weston: 2021년 12월 9일 10.0[3], 7개월(2021-12-09)
기입처C
운영 체제공식: Linux
비공식:NetBSD, FreeBSD, DragonFly BSD[4]
유형
면허증.MIT 라이선스[5][6][7]
웹 사이트웨이랜드freedesktop.org

Wayland는 디스플레이 서버와 그 클라이언트 간의 통신 및 해당 프로토콜의 [8]C 라이브러리 구현을 지정하는 통신 프로토콜입니다.Wayland 프로토콜을 사용하는 디스플레이 서버를 Wayland 컴포지터라고 하는데, 이는 컴포지팅 창 관리자의 태스크를 추가로 수행하기 때문입니다.

Wayland는 처음에 Kristian Högsberg가 이끄는 자원 봉사자 그룹에 의해 X Window 시스템을 Linux 및 기타 Unix와 유사한 운영 [8][13]체제에서 안전하고 현대적인[9][10][11][12] 윈도우 시스템으로 대체하는 것을 목표로 자유롭고 오픈 소스 커뮤니티 중심 프로젝트로 개발되었습니다.프로젝트의 소스코드는 MIT 라이선스의 조건에 따라 공개됩니다.MIT 라이선스는 허가[13][5]자유 소프트웨어 라이선스입니다.

그 노력의 일환으로 Wayland 프로젝트는 Weston이라고 불리는 Wayland [8]컴포지터의 레퍼런스 구현을 개발하기도 합니다.

개요

  1. Linux 커널evdev 모듈은 이벤트를 가져와 Wayland 컴포지터로 전송합니다.
  2. Wayland 컴포지터는 씬그래프를 참조하여 이벤트를 수신해야 하는 창을 결정합니다.장면 그래프는 화면에 표시되는 내용과 일치하며 Wayland 컴포지터는 장면 그래프의 요소에 적용되었을 수 있는 변환을 이해합니다.따라서 Wayland 컴포지터는 역변환을 적용하여 오른쪽 창을 선택하고 화면 좌표를 창 로컬 좌표로 변환할 수 있습니다.창에 적용할 수 있는 변환 유형은 입력 이벤트에 대한 역변환을 계산할 수 있는 경우에만 컴포지터가 수행할 수 있는 작업으로 제한됩니다.
  3. X 의 경우와 같이, 클라이언트는 이벤트를 수신하면, 그 응답으로 UI 를 갱신합니다.그러나 Wayland의 경우 클라이언트는 EGL을 통해 렌더링을 수행하고 클라이언트는 업데이트된 영역을 나타내는 요청을 컴포지터에 보냅니다.
  4. Wayland 컴포지터는 고객으로부터 피해 요청을 수집한 후 화면을 다시 컴포지트합니다.컴포지터는 ioctl을 직접 발행하여 KMS에서 페이지 플립을 스케줄 할 수 있습니다.

Wayland Display Server 프로젝트는 Red Hat 개발자인 Christian Högsberg에 의해 [14]2008년에 시작되었습니다.

2010년경부터 Linux 데스크톱 그래픽스는 '더미의 렌더링 인터페이스'에서 벗어나고 있습니다.Linux 커널과 그 컴포넌트(DR(Direct Rendering Infrastructure), Direct Rendering Manager(DRM) 등)를 「가운데」에 배치하기 위해서, 「X나 Wayland등의 윈도의 시스템은 구석에 있다」라고 하는, 모두 X서버와 통신하고 있습니다.이는 '매우 심플한 그래픽스 시스템'으로 유연성과 퍼포먼스가 향상됩니다.[15]

Högsberg는 최근 많은 프로젝트와 마찬가지로 X에 확장을 추가할 수 있었지만 프로젝트 [13]FAQ에서 설명한 이유로 "클라이언트와 하드웨어 사이의 핫패스에서 X를 밀어내는" 것을 선호했습니다.

현재와 다른 점은 많은 인프라스트럭처가 X 서버에서 커널(메모리 관리, 명령어 스케줄링, 모드 설정 등) 또는 라이브러리(cairo, pixman, freetype, fontconfig, pango 등)로 이행하고 있으며 중앙 서버 프로세스에서 발생할 필요가 거의 없다는 것입니다.[X서버에는 X프로토콜을 말하기 위해 지원해야 하는 엄청난 기능이 있지만, 아무도 이것을 사용하지 않습니다...여기에는 코드 테이블, 글리프 래스터라이제이션 및 캐싱, XLFD(진지하게 XLFD!) 및 스티핑된 선, 폴리곤, 와이드 아크를 그릴 수 있는 전체 코어 렌더링 API 등이 포함됩니다.대부분의 경우 XRandR, XRender, COMPAST 등의 확장을 추가하여 X.org 서버를 최신 상태로 유지할 수 있었습니다.Wayland를 사용하면 X 서버와 그 모든 레거시 기술을 옵션 코드 경로로 이동할 수 있습니다.X 서버가 코어 렌더링 시스템이 아닌 호환성 옵션인 경우에는 시간이 걸리겠지만, [당사가] 계획을 세우지 않으면 실현되지 않습니다.

Wayland는 Weston이라는 이름의 프로토콜과 참조 구현으로 구성됩니다.이 프로젝트는 X가 아닌 Wayland로 렌더링하는 GTKQt 버전도 개발하고 있습니다.대부분의 애플리케이션은 애플리케이션을 변경하지 않고 이러한 라이브러리 중 하나를 통해 Wayland를 지원할 것으로 예상됩니다.

Högsberg는 2010년에 네트워크의 투과성이 [16]가능하다고 지적했지만, Wayland의 초기 버전은 네트워크의 투과성을 제공하지 않았습니다.2011년 Google Summer of Code 프로젝트로 시도되었지만 [17]성공하지 못했습니다.Adam Jackson은 "픽셀 스크래핑" (VNC 등) 또는 "렌더링 명령 스트림"을 네트워크를 통해 전송함으로써 Wayland 애플리케이션에 대한 원격 액세스를 제공할 것을 구상하고 있습니다(RDP, SPICE 또는 [18]X11 등).2013년 초 Högsberg는 실제 [19][20]컴포지터에 압축 이미지를 전송하는 프록시 Wayland 서버를 사용하여 네트워크 투명성을 실험하고 있습니다.2017년 8월 GNOME은 이러한 픽셀 [21]스크래핑 VNC 서버를 Wayland에서 최초로 구현했습니다.

소프트웨어 아키텍처

프로토콜 아키텍처

Wayland 프로토콜 아키텍처에서 클라이언트와 컴포지터는 참조 구현 라이브러리를 사용하여 Wayland 프로토콜을 통해 통신합니다.

Wayland 프로토콜은 클라이언트-서버 모델을 따릅니다.클라이언트는 픽셀버퍼의 화면 표시를 요구하는 그래피컬애플리케이션이며 서버(컴포지터)는 이러한 버퍼의 표시를 제어하는 서비스 프로바이더입니다.

Wayland 참조 구현은 2계층 [22]프로토콜로 설계되었습니다.

  • 클라이언트와 컴포지터 등 관련된 두 프로세스 간의 프로세스 간 통신과 이들이 교환하는 데이터의 마샬링을 처리하는 낮은 수준의 레이어 또는 와이어 프로토콜입니다.이 계층은 메시지 기반이며 보통 커널 IPC 서비스, 특히 LinuxUnix와 유사한 운영 [23]: 9 체제의 경우 Unix 도메인 소켓을 사용하여 구현됩니다.
  • 윈도 시스템의 기본 기능을 구현하기 위해 클라이언트와 컴포지터가 교환해야 하는 정보를 처리하는 상위 레벨 계층입니다.이 계층은 "비동기 객체 지향 프로토콜"[23]: 9 로 구현됩니다.

하위 계층은 C에서 수동으로 작성된 반면 상위 계층은 XML [24]형식으로 저장된 프로토콜 요소의 설명에서 자동으로 생성됩니다.이 XML 파일의 프로토콜 설명이 변경될 때마다 이러한 프로토콜을 구현하는 C 소스 코드를 재생성하여 새로운 변경 사항을 포함할 수 있으므로 매우 유연하고 확장 가능하며 오류 방지 프로토콜이 가능합니다.

Wayland 프로토콜의 참조 구현은 두 의 라이브러리로 분할됩니다: Wayland 클라이언트에 의해 사용되는 라이브러리.libwayland-clientWayland 컴포지터들이 사용할 도서관은libwayland-server를 클릭합니다.[23]: 57

프로토콜 개요

Wayland 프로토콜은 "비동기 객체 지향 프로토콜"[23]: 9 로 설명됩니다.오브젝트 지향이란 컴포지터가 제공하는 서비스가 동일한 컴포지터 상에 존재하는 일련의 오브젝트로 제시되는 것을 의미합니다.각 오브젝트는 이름, 다수의 메서드(요구) 및 관련된 여러 이벤트를 가진 인터페이스를 구현합니다.모든 요청 및 이벤트에는 각각 이름과 데이터 유형이 포함된 0개 이상의 인수가 있습니다.이 프로토콜은 동기화된 응답 또는 ACK를 기다릴 필요가 없다는 점에서 비동기화되므로 라운드 트립 지연 시간을 방지하고 성능을 향상시킬 수 있습니다.

Wayland 클라이언트는 개체의 인터페이스가 요청을 지원하는 경우 해당 개체에 대해 요청(메서드 호출)을 수행할 수 있습니다.클라이언트는 이러한 요청 인수에 필요한 데이터도 제공해야 합니다.이것은 클라이언트가 컴포지터에 서비스를 요청하는 방법입니다.컴포지터는 (아마도 인수를 사용하여) 오브젝트가 이벤트를 내보내도록 함으로써 클라이언트에 정보를 반환합니다.이러한 이벤트는 특정 요구에 대한 응답으로 컴포지터에 의해 출력되거나 내부 이벤트(입력 디바이스로부터의 이벤트 등) 또는 상태 변경에 따라 비동기적으로 출력될 수 있습니다.에러 상태는,[23]: 9 컴포지터에 의해서 이벤트로서도 시그널링 됩니다.

클라이언트가 오브젝트에 요구를 할 수 있도록 하려면 먼저 해당 [23]: 9 오브젝트를 식별하기 위해 사용하는ID 번호를 서버에 통지해야 합니다.컴포지터에는 글로벌오브젝트와 비글로벌오브젝트의 두 가지 오브젝트가 있습니다.글로벌 오브젝트는 작성 시(및 파기 시) 컴포지터에 의해 클라이언트에 애드버타이즈되지만 비글로벌오브젝트는 일반적으로 [25]기능의 일부로 이미 존재하는 다른 오브젝트에 의해 작성됩니다.

인터페이스와 그 요청 및 이벤트는 Wayland 프로토콜을 정의하는 핵심 요소입니다.프로토콜의 각 버전은 Wayland 컴포지터에 있을 것으로 예상되는 인터페이스 집합과 요청 및 이벤트를 포함합니다.선택적으로, Wayland 컴포지터는 새로운 요청과 이벤트를 지원하는 자체 인터페이스를 정의 및 구현하여 [23]: 10 핵심 프로토콜 이상으로 기능을 확장할 수 있습니다.프로토콜을 쉽게 변경할 수 있도록 각 인터페이스에는 이름 외에 "버전 번호" 속성이 포함되어 있습니다. 이 속성은 동일한 인터페이스의 변형을 구분할 수 있도록 합니다.각 Wayland 컴포지터는 사용 가능한 인터페이스뿐만 아니라 지원되는 인터페이스 [23]: 12 버전도 표시합니다.

웨이랜드 코어 인터페이스

현재 버전의 Wayland 프로토콜의 인터페이스는 파일에 정의되어 있습니다.wayland 소스 [24]코드의 protocol/wayland.xml을 지정합니다.현재 버전의 기존 인터페이스와 요청, 이벤트 및 기타 속성을 나열하는 XML 파일입니다.이 인터페이스 세트는 모든 Wayland 컴포지터가 구현하기 위해 최소한 필요한 인터페이스입니다.

Wayland 프로토콜의 가장 기본적인 인터페이스 중 일부는 다음과 같습니다.[23]: 10–12

  • wl_display: 핵심 글로벌오브젝트, Wayland 프로토콜 자체를 캡슐화하는 특별한 오브젝트
  • wl_composit : 컴포지터가 모든 클라이언트에서 사용할 수 있도록 하는 모든 글로벌개체를 등록하는 글로벌레지스트리 오브젝트
  • wl_composititor – 컴포지터를 나타내는 오브젝트로 여러 서페이스를 하나의 출력으로 조합하는 역할을 합니다.
  • wl_surface – 화면상의 직사각형 영역을 나타내는 객체.위치, 크기 및 픽셀의 내용에 의해 정의됩니다.
  • wl_surfacewl_surface 객체에 연결하면 표시 가능한 콘텐츠를 제공하는 객체
  • wl_output : 화면 표시 가능 영역을 나타내는 객체
  • wl_param, wl_param, wl_touch – 포인터나 키보드다양한 입력 디바이스를 나타내는 객체
  • wl_seat : 멀티시트 구성의 시트(입출력 디바이스 세트)를 나타내는 오브젝트

일반적인 Wayland 클라이언트세션은 wl_display 객체를 사용하여 컴포지터에 대한 연결을 여는 것으로 시작합니다.이것은 연결을 나타내며 서버 내에 존재하지 않는 특별한 로컬 개체입니다.클라이언트는 인터페이스를 사용하여 모든 글로벌오브젝트명이 존재하는 컴포지터에 wl_registry 글로벌오브젝트를 요구하고 클라이언트에 관심이 있는 오브젝트를 바인드할 수 있습니다.보통 클라이언트는 적어도1개의 wl_compositor 객체를 바인드합니다.[25]여기서 1개 이상의 wl_surface 객체를 요구하여 디스플레이에 응용 프로그램 출력을 표시합니다.

웨이랜드 확장 인터페이스

Wayland 컴포지터는 자체 추가 [23]: 10 인터페이스를 정의하고 내보낼 수 있습니다.이 기능은 핵심 인터페이스에서 제공하는 기본 기능 이상으로 프로토콜을 확장하는 데 사용되며 Wayland 프로토콜 확장을 구현하는 표준 방법이 되었습니다.특정 컴포지터에서는 커스텀인터페이스를 추가하여 특수 기능 또는 고유 기능을 제공할 수 있습니다.Wayland 참조 컴포지터인 Weston은 새로운 개념과 아이디어를 위한 테스트베드로 새로운 실험 인터페이스를 구현하기 위해 그것들을 사용하였고, 그 중 일부는 나중에 핵심 프로토콜의 일부가 되었다(Wayland 1.4에서[26] 추가된 wl_subsurface 인터페이스 등).

핵심 프로토콜에 대한 확장 프로토콜

XDG-Shell 프로토콜

XDG-Shell 프로토콜(XDG는 freedesktop.org 참조)은 Wayland 컴포지터(Weston뿐 아니라)에서 표면을 관리하는 확장된 방법입니다.기존의 서피스 조작(최대화, 최소화, 풀스크린 등) 방법은 핵심 Wayland 프로토콜의 일부이며 libwayland-client에 존재하는 wl_shell_*() 함수를 사용하는 것입니다.반대로 xdg-shell 프로토콜의 구현은 Wayland 컴포지터에 의해 제공되어야 합니다.xdg-shell-client-protocol이 있습니다.h header가 Weston 송신원트리에 포함되어 있습니다.Wayland 컴포지터는 각각 독자적인 구현을 제공하도록 되어 있습니다.

2014년 6월 현재 XDG-Shell 프로토콜은 버전화되지 않았으며 여전히 변경될 수 있습니다.

xdg_shell은 장기적으로 wl_shell을 대체하기 위한 프로토콜이지만 Wayland 핵심 프로토콜의 일부가 아닙니다.처음에는 개발 장소로 사용하는 것을 목표로 하는 안정적이지 않은 API로 시작하여 여러 데스크톱 셸에서 필요한 기능을 정의하면 최종적으로 안정성을 유지할 수 있습니다.주로 xdg_surface와 xdg_popup의 두 가지 새로운 인터페이스를 제공합니다.xdg_surface 인터페이스는 이동, 크기 조정, 최대화 등이 가능한 데스크톱 스타일의 창을 구현하여 자녀/부모 관계를 생성하기 위한 요청을 제공합니다.xdg_popup 인터페이스는 데스크톱 스타일의 팝업/메뉴를 구현합니다.xdg_popup은 항상 다른 표면에 대해 과도하며 암묵적인 grab도 [27]있습니다.

IVI-Shell 프로토콜

IVI-Shell은 차량 내 인포테인먼트(IVI) [28]장치를 대상으로 하는 Wayland 핵심 프로토콜의 확장입니다.

렌더링 모델

Wayland 컴포지터와 그 클라이언트는 EGL을 사용하여 프레임버퍼 X에 직접 끌어옵니다.XWaylandGlamor탑재한 Org Server.

Wayland 프로토콜에는 렌더링 [23]: 7 [13][29][30]: 2 API가 포함되어 있지 않습니다.대신 Wayland는 다이렉트 렌더링 모델을 따릅니다.클라이언트는 윈도 콘텐츠를 [23]: 7 컴포지터와 공유할 수 있는 버퍼로 렌더링해야 합니다.이를 위해 클라이언트는 모든 렌더링을 직접 수행하거나 카이로 또는 OpenGL같은 렌더링 라이브러리를 사용하거나 Qt 또는 GTK와 같은 Wayland를 지원하는 고급 위젯 라이브러리의 렌더링 엔진에 의존할 수 있습니다.클라이언트는 글꼴 렌더링을 위한 Freetype과 같은 특정 태스크를 수행하기 위해 다른 특수 라이브러리를 사용할 수도 있습니다.

렌더링된 창 내용이 포함된 버퍼는 wl_buffer 개체에 저장됩니다.이 개체의 내부 유형은 구현에 따라 다릅니다.유일한 요건은 콘텐츠 데이터를 클라이언트와 컴포지터 간에 공유할 수 있어야 한다는 것입니다.클라이언트가 소프트웨어(CPU) 렌더러를 사용하여 결과가 시스템메모리에 저장되어 있는 경우 클라이언트와 컴포지터는 공유 메모리를 사용하여 추가 복사 없이 버퍼 통신을 구현할 수 있습니다.Wayland 프로토콜은 이미 기본적으로 wl_shm wl_shm_pool [23]: 11, 20-21 인터페이스를 통해 이러한 종류의 공유 메모리 버퍼를 제공합니다.이 방법의 단점은 컴포지터가 이를 표시하기 위해 추가 작업(일반적으로 공유 데이터를 GPU에 복사)을 수행해야 하므로 그래픽 성능이 저하된다는 것입니다.

가장 일반적인 경우 클라이언트OpenGL, OpenGL ES 또는 Vulkan 등의 하드웨어(GPU) 가속 API를 사용하여 비디오 메모리 버퍼에 직접 렌더링합니다.클라이언트와 컴포지터는 특별한 핸들러를 사용하여 이 GPU 공간 버퍼를 [31]공유할 수 있습니다.이 방법을 사용하면 컴포지터는 메인 메모리버퍼 클라이언트 대 컴포지터 대 GPU 방식의 데이터 복사를 회피할 수 있기 때문에 그래픽 퍼포먼스가 향상되므로 권장됩니다.컴포지터는 API 클라이언트와 동일한 하드웨어 액셀러레이션 API를 사용하여 디스플레이에 표시되는 최종 장면의 구성을 더욱 최적화할 수 있습니다.

공유 버퍼에서 렌더링이 완료되면 Wayland 클라이언트는 컴포지터에 버퍼의 렌더링된 내용을 디스플레이에 표시하도록 지시해야 합니다.이를 위해 클라이언트는 렌더링된 내용을 저장하는 버퍼 객체를 지표면 객체에 바인드하고 "commit" 요청을 지표면에 전송하여 버퍼의 효과적인 제어를 [22]컴포지터로 전송합니다.그런 다음 클라이언트는 컴포지터가 버퍼를 재사용하여 다른 프레임을 렌더링하거나 다른 버퍼를 사용하여 새 프레임을 렌더링하고 렌더링이 완료되면 이 새 버퍼를 표면에 바인드하고 [23]: 7 내용을 커밋할 수 있는 경우 버퍼(이벤트로 시그널링됨)를 해제합니다.관련된 버퍼의 수 및 관리 등 렌더링에 사용되는 절차는 전적으로 클라이언트의 [23]: 7 제어 하에 있습니다.

다른 윈도 시스템과의 비교

Wayland와 X의 차이점

Wayland와 X에는 성능, 코드 유지 보수성 및 [32]보안에 관한 몇 가지 차이점이 있습니다.

아키텍처
컴포지션 매니저는 X에서 별도의 추가 기능으로, Wayland는 디스플레이 서버와 컴포지터를 단일 [33][29]함수로 병합합니다.또한 윈도 매니저의 태스크도 포함되어 있습니다.X 에서는 별도의 클라이언트 [34]측 프로세스입니다.
컴포지팅
X에서는 컴포지팅은 옵션이지만 Wayland에서는 필수입니다.X에서의 컴포지팅은 "액티브"합니다.즉, 컴포지터가 모든 픽셀 데이터를 가져와야 하기 때문에 지연이 발생합니다.Wayland에서 컴포지팅은 [35]: 8–11 "패시브"로, 컴포지터가 클라이언트로부터 픽셀 데이터를 직접 수신하는 것을 의미합니다.
렌더링
X 서버 자체는 렌더링을 수행할 수 있지만 클라이언트가 보낸 렌더 창을 표시하도록 지시할 수도 있습니다.반면 Wayland는 렌더링을 위해 API를 공개하지 않지만 이러한 태스크(글꼴, 위젯 등의 렌더링 포함)를 클라이언트에 위임합니다.[33][29]윈도우 장식은 클라이언트 측(예를 들어 그래픽 툴킷) 또는 서버 측(컴포지터 [36]측)에서 렌더링할 수 있습니다.
보안.
Wayland는 모든 창의 입출력을 격리하여 기밀성, 무결성 및 가용성을 실현합니다.원래 X 설계에는 이러한 중요한 보안 [10][11][12]기능이 없었습니다.단,[37][38][39] 일부 확장 기능은 이를 완화하기 위해 개발되었습니다.또한 대부분의 코드가 클라이언트에서 실행되고 있기 때문에 루트 권한으로 실행할 필요가 있는 코드가 적어지고 보안이 [10]향상됩니다.다만, 널리 사용되는 여러 Linux 디스트리뷰션에서는 루트 [40][41][42][43]권한 없이 X를 실행할 수 있게 되었습니다.
프로세스 간 커뮤니케이션
X 서버는 X 클라이언트 간의 기본적인 통신 방식을 제공하며 나중에 ICCM 규약에 따라 확장됩니다.이 X 클라이언트 간 통신은 창 관리자에 의해 사용되며 X 세션, 선택 및 드래그 드롭 및 기타 기능을 구현하기 위해 사용됩니다.Wayland 코어 프로토콜은 Wayland 클라이언트 간의 통신을 전혀 지원하지 않습니다. Wayland 커뮤니티는 해당 기능을 데스크톱 환경(KDE 또는 GNOME 등) 또는 서드 파티(예를 들어 기본 운영 시스템의 네이티브 IPC 사용)에 의해 구현되어야 하는 것으로 간주하기 때문입니다.m)
네트워킹
X Window 시스템은 네트워크를 통해 실행되도록 핵심으로 설계된 아키텍처입니다.Wayland는 네트워크 [13]투과성을 단독으로 제공하지 않지만 컴포지터는 리모트 디스플레이를 실현하기 위해 어떤 리모트 데스크톱 프로토콜도 구현할 수 있습니다.또한 VNC[20]유사한 원격 프레임 버퍼 액세스를 제공하는 Wayland 이미지 스트리밍 및 압축에 대한 연구도 있습니다.

X와의 호환성

XWayland는 Wayland 클라이언트로 동작하는 X서버이므로 Wayland 컴포지터 [44]환경에서 네이티브 X11 클라이언트애플리케이션을 표시할 수 있습니다.이는 XQuartzMacOS 네이티브 윈도우 시스템에서 X 애플리케이션을 실행하는 방식과 유사합니다.XWayland의 목표는 X Window System에서 Wayland 환경으로 이행하는 것을 촉진하고 그동안 보고되지 않은 애플리케이션을 실행하는 방법을 제공하는 것입니다.XWayland는 X로 메인라인화 되었다.Org Server 버전 1.16.[45]

Qt5GTK3 등의 위젯 툴킷은 실행 [46]시 그래픽 백엔드를 전환할 수 있으므로 사용자는 애플리케이션을 X에서 실행할지, Wayland에서 실행할지를 로드 시 선택할 수 있습니다.QT 5는-platformGTK[47] 3에서는 사용자가 원하는 GDK 백엔드를 선택할 수 있습니다.GDK_BACKEND UNIX 환경 변수.[46][48]

웨이랜드 컴포지터

창의 일반적인 요소.Wayland도 X11도 창 장식 렌더링을 담당하는 소프트웨어를 지정하지 않았습니다.Weston에서는 클라이언트에 의해 그려져야 하지만 KWin은 서버 측 [36]장식을 구현합니다.
Wayland의 Plasma 5.24.0 (2022년 2월)kwin_waylandArch Linux에서 컴포지터)를 사용합니다.

Wayland 디스플레이 서버 프로토콜을 구현하는 디스플레이 서버를 Wayland 컴포지터라고도 하는데, 컴포지팅관리자의 태스크를 추가로 수행하기 때문입니다.

  • Weston – Wayland 컴포지터의 레퍼런스 실장; Weston은 클라이언트측의 장식을 실장합니다.
  • Illlustment는 버전 0.20부터[49] Wayland의 전폭적인 지원을 주장했지만, 현재 완전한 Wayland 컴포지터를[50] 획득하기 위한 작업이 진행 중입니다.
  • 2021년 현재 KWin은[51] 거의 완전한 Wayland 지원을 받고 있습니다.
  • Mutter는 GNOME 3.9용 Wayland 통합을 위해 별도의 지점을 운영하고 있습니다(2013년 [52]9월).
  • Clayland – Clutter를 사용한 간단한 Wayland 컴포지터 예시
  • Swave – 타일형 Wayland 컴포지터 및 X11용 [53]i3 윈도 매니저용 드롭인 교환품.Swave는 Wlroots를 사용합니다.Wayland의 모듈러형 구현은 여러 [54][55]컴포넌트의 기반으로 기능합니다.


웨스턴

Weston은 Wayland 프로젝트에서 개발한 Wayland 컴포지터의[56] 참조 구현입니다.이 문서는 C로 작성되어 있으며 MIT 라이선스에 따라 발행됩니다.Weston은 커널 모드 설정, 그래픽스 실행 매니저([57]GEM) udev같은 Linux 커널의 특정 기능에 의존하기 때문에 Linux 운영 체제만 공식적으로 지원합니다.Linux에서 실행할 경우 입력 하드웨어의 처리는 evdev에 의존하며 버퍼의 처리는 GBM(Generic Buffer Management)에 의존합니다.단, 2013년에는 Weston에서 FreeB로 시제품 항만 실시SD[58]발표되었습니다.

Weston은 HDCP([59]High-Bandwidth Digital Content Protection)를 지원합니다.

Weston은 GEM에 의존하여 컴포지터와 애플리케이션 간에 애플리케이션 버퍼를 공유합니다.도킹 스테이션이나 [20]패널 등의 일반적인 데스크톱 기능을 위한 "쉘" 플러그인 시스템이 포함되어 있습니다.고객은 창문의 테두리와 장식을 그릴 책임이 있습니다.Weston은 렌더링에 OpenGL[60] ES 또는 pixman 라이브러리를 사용하여 소프트웨어 [61]렌더링을 수행할 수 있습니다.대부분의 최신 시스템에서는 OpenGL 라이브러리를 모두 설치하면 GLX 및 기타 X Window System 지원 라이브러리가 [62]의존관계로 설치되기 때문에 OpenGL의 완전한 구현은 사용되지 않습니다.

2013년 10월 Real VNC 직원이 [63]Weston용 원격 액세스 인터페이스를 제안했습니다.

메이너드

메이너드(2017년 1월)

Maynard그래픽 셸이며 GNOME 쉘이 Mutter[64]플러그인으로 쓰여졌듯이 Weston용 플러그인으로 쓰여져 있습니다.

라즈베리 파이 재단은 Collabora와 협력하여 Maynard를 출시하여 성능 및 메모리 [65][66]소비 개선에 힘쓰고 있습니다.

libinput

libinput은 여러 Wayland 컴포지터에 걸쳐 입력 스택을 통합하기 위해 작성되었습니다.

입력 장치(키보드, 포인터, 터치 스크린 등)를 처리하기 위한 Weston 코드는 libinput이라고 불리는 자체적인 라이브러리로 분할되어 Weston 1.5에서 [67][68]처음 통합되었습니다.

Libinput은 여러 Wayland 컴포지터의 입력 장치를 처리하고 범용 X를 제공합니다.Org Server 입력 드라이버.이것은 여러 Wayland 컴포지터에 하나의 구현을 제공하면서 입력 이벤트를 처리하는 공통 방법을 제공하는 동시에 커스텀 입력 코드 컴포지터가 포함해야 하는 양을 최소화하는 것을 목표로 하고 있습니다.libinput은 디바이스 검출[clarification needed](Udev 경유), 디바이스 처리, 입력 디바이스 이벤트 처리 및 [69][70]추상화를 제공합니다.

버전 1.0의 libinput은 버전 0.21에 이어 태블릿, 버튼 세트 및 터치 패드 제스처를 지원합니다.이 버전은 안정적인 API/[71]ABI를 유지합니다.

GNOME/GTK와 KDE Frameworks[72] 5가 필요한 변경을 주요 내용으로 하고 있기 때문에 X를 Fedora 22가 대체할 것입니다.libinput을 [73]탑재한 Org의 evdev 드라이버와 Synaptics 드라이버.

버전 1.16에서는 X.Org Serverxf86-input-libinput이라는 래퍼 형식의 libinput [74][75]라이브러리를 지원했습니다.

웨이랜드 보안 모듈

Wayland Security Module은 Linux [76]커널에 있는 Linux 보안 모듈 인터페이스와 유사한 제안입니다.

일부 응용 프로그램(특히 접근성과 관련된 응용 프로그램)에는 서로 다른 Wayland 컴포지터 간에 작동해야 하는 특권 기능이 필요합니다.현재 [when?]Wayland의 어플리케이션에서는 일반적으로 스크린샷을 찍거나 입력 이벤트를 주입하는 등의 민감한 작업을 수행할 수 없습니다.Wayland 개발자는 권한 있는 클라이언트를 안전하게 처리할 수 있는 실행 가능한 방법을 적극적으로 모색하고 있으며, 그 후 권한 있는 인터페이스를 설계하고 있습니다.

Wayland Security Module은 컴포지터 내의 보안 결정을 일원화된 보안 결정 [76]엔진에 위임하는 방법입니다.

도입

Wayland 프로토콜은 전체 윈도우 시스템을 구현하기 위해 추가 프로토콜과 인터페이스를 정의하고 구현해야 할 정도로 단순하도록 설계되었습니다.2014년 7월 현재 이러한 추가 인터페이스가 작업 중입니다.따라서 툴킷은 이미 Wayland를 완전히 지원하지만 그래픽 셸 개발자는 Wayland 개발자와 협력하여 필요한 추가 인터페이스를 만들고 있습니다.

데스크톱 Linux 디스트리뷰션

2020년 현재 대부분의 Linux 디스트리뷰션은 개봉 즉시 Wayland를 지원합니다.주목할 만한 예는 다음과 같습니다.

  • Fedora는 버전 25(2016년 11월 22일 출시)부터 X와의 기본 GNOME 3.22 데스크톱 세션에 Wayland를 사용합니다.그래픽 드라이버가 Wayland를 [77]지원할 수 없는 경우 예비로 구성합니다.Fedora는 버전 34부터 시작하는 KDE 데스크톱 세션의 기본값으로 Wayland를 사용합니다(2021년 4월 27일 출시).
  • Ubuntu는 Ubuntu 17.10(Artful Aardvark)[78]에서 기본적으로 Wayland와 함께 출고되었습니다.그러나 Ubuntu 18.04 LTS는 X로 돌아갔습니다.기본적으로는 몇 가지 [79][80]문제로 인해 조직됩니다.Ubuntu 21.04 이후 [81]다시 Wayland가 기본입니다.
  • Red Hat Enterprise Linux는 2019년 [82]5월 7일 출시된 버전 8에서 Wayland를 기본 세션으로 출하합니다.
  • Debian은 2019년 [83]7월 6일 버전 10부터 GNOME 기본 세션으로 Wayland를 출하했다.
  • 슬랙웨어 리눅스는 개발 버전 -current를 위해 2020년 2월[84] 20일에 웨이랜드를 포함하였고, 버전 15.0이 되었다.
  • 만자로 20.2(니비아)의 Gnome 에디션([85]2020년 11월 22일 발매)에서 Wayland를 디폴트로 출하.

주목할 만한 얼리어답터:

  • 레베카 블랙OS는 USB Debian[86] 기반의 라이브 Linux 디스트리뷰션으로 컴퓨터의 [87]메인 운영체제를 변경하지 않고도 실제 Wayland 데스크톱을 쉽게 사용해 볼 수 있습니다.그것은 이르면 2012년부터 웨이랜드를 [88][89]선보이기 위해 사용되어 왔다.

툴킷 지원

Wayland를 지원하는 툴킷은 다음과 같습니다.

  • Clutter는 Wayland를 완전히 지원합니다.[90][91][92]
  • EFL[93]선택 항목을 제외한 완전한 Wayland 지원을 제공합니다.
  • GTK 3.20은 Wayland를 완전히 지원합니다.[94]
  • Qt 5는 Wayland를 완전히 지원하며 Wayland 컴포지터와 Wayland 클라이언트를 모두 작성할 수 있습니다.
  • Wayland에 대한 SDL 지원은 2.0.2[95] 릴리즈에서 처음 시작되었으며 버전 2.0.[96]4 이후 기본적으로 활성화되었습니다.
  • GLFW 3.2는 Wayland를 지원합니다.[97]
  • FreeGLUT에는 초기 Wayland [98]지원이 있습니다.

데스크톱 환경

X에서 Wayland로 이동 중인 데스크톱 환경에는 GNOME,[99] KDE Plasma[100] 5, Illlustment [101]등이 있습니다.

2015년 11월, Wayland의 [102][49][103]전폭적인 지원을 받아 Illlustment e20이 발표되었습니다.GNOME 3.20은 완전한 Wayland [104]세션을 가진 최초의 버전이었다.GNOME 3.22에는 GTK, Mutter 및 GNOME [105]Shell 전반에 걸쳐 Wayland 지원이 대폭 향상되었습니다.GNOME 3.24는 Wayland에서 [106]독자 사양의 NVidia 드라이버를 지원했습니다.

이전 KWin 4.11이 실험적인 Wayland [108]지원을 받았음에도 불구하고 KDE Plasma에 대한 Wayland 지원은 Plasma [107]5 릴리스까지 지연되었습니다.Plasma 버전 5.4는 Wayland [109]세션이 있는 첫 번째 버전입니다.2020년에 Klipper는 Wayland로 포팅되었고 2020년 10월에 개봉될 5.20은 스크린 캐스팅과 [110]녹음을 개선하는 것을 목표로 하고 있습니다.

기타 소프트웨어

Wayland를 지원하는 기타 소프트웨어는 다음과 같습니다.

  • 인텔리전트 입력 버스는 Wayland 지원 중입니다.Fedora [111]22에 대응하고 있을 가능성이 있습니다.
  • RealVNC는 2014년 [63][112][113]7월에 Wayland 개발자 프리뷰를 발표했습니다.
  • Maliit는 Wayland [114][115][116]아래에서 실행되는 입력 방식 프레임워크입니다.
  • kmscon[117]wlterm을 사용하여 Wayland를 지원합니다.
  • Mesa에는 [118]Wayland 지원이 통합되어 있습니다.
  • Eclipse[119]2014년 GSoC-프로젝트 중에 웨이랜드에서 실행되도록 제작되었습니다.
  • Vulkan WSI(Window System Interface)는 OpenGL ES 또는 OpenGL용 GLX와 유사한 목적을 수행하는 API 호출 세트입니다.Vulkan WSI에는 첫날부터 Wayland 지원이 포함되어 있습니다.VK_USE_PLATFORM_WAYLAND_KHRVulkan 클라이언트는 Weston, GENIVI Layer Manager, Mutter / GNOME Shell, Illlustment 등을 포함한 수정되지 않은 Wayland 서버에서 실행할 수 있습니다.WSI 를 사용하면, 애플리케이션으로 시스템상의 다른 GPU 를 검출해, GPU 렌더링 결과를 윈도우 [120]시스템에 표시할 수 있습니다.
  • SPERV, Wayland를 사용하는 Linux 배포에서 실행되는 Android 애플리케이션용 호환성 계층

모바일 및 임베디드 하드웨어

포스트마켓을 달리는 WestonOS

Wayland를 지원하는 모바일 및 임베디드 하드웨어에는 다음이 포함됩니다.

역사

Wayland는 EGL을 통한 다이렉트 렌더링을 사용합니다.

Kristian Högsberg, Linux 그래픽스 및 X.이전AIGLX와 DRI2를 담당했던 Org 개발자Red [128][129][130][131]Hat에서 근무하던 2008년에 여가 프로젝트로 Wayland를 시작했습니다.그가 밝힌 목표는 "모든 프레임이 완벽합니다. 즉, 애플리케이션이 찢기, 지연, 다시 그리기 또는 깜박임을 볼 수 없을 만큼 렌더링을 제어할 수 있습니다."였습니다.Högsberg는 매사추세츠주 웨일랜드를 운전하고 있었는데, 그 때 근본적인 개념이 "크리스탈라이즈(crystallized)"되어 그 이름이 [130][132]붙여졌습니다.

2010년 10월, Wayland는 freedesktop.org [133][134]프로젝트가 되었습니다.이행의 일환으로서 이전의 Google Group이 Wayland-devel 메일링 리스트로 대체되어 프로젝트의 논의와 개발의 중심이 되었습니다.

Wayland 클라이언트와 서버 라이브러리는 처음에 MIT [135]라이선스로 출시되었지만 레퍼런스 컴포지터 Weston과 일부 샘플 클라이언트는 GNU General Public License [136]버전2를 사용했습니다.이후 모든 GPL 코드는 "참조 구현과 실제 라이브러리 [137]간에 코드를 더 쉽게 이동할 수 있도록" MIT 라이선스에 따라 잔존되었다.2015년에 Wayland가 사용한 라이센스 텍스트가 MIT 라이센스의 약간 다른 이전 버전임을 알게 되었고 라이센스 텍스트는 X가 사용한 현재 버전으로 업데이트되었습니다.조직 프로젝트(MIT Expat 라이센스라고도 [5]함).

Wayland는 DRI2를 지원하는[118] 모든 [138][139][140]Mesa 호환 드라이버Hybris 프로젝트를 통해 Android 드라이버와 함께 작동합니다.

릴리스

메이저 Wayland 및 Weston[141] 릴리즈
버전 날짜. 주요 기능
웨이랜드 웨스턴
이전 버전, 더 이상 유지 관리되지 않음: 0.85 2012년 2월 9일[142] 첫 번째 릴리즈
이전 버전, 더 이상 유지 관리되지 않음: 0.95 2012년 7월 24일[143] API 안정화 시작.
이전 버전, 더 이상 유지 보수되지 않음 2012년 10월 22일[144][145] 안정적인 Wayland 클라이언트 API
이전 버전, 유지 보수 불필요: 1.1 2013년 4월 15일[146][147] 소프트웨어 [61]렌더링FBDEV, RDP 백엔드
이전 버전, 유지 보수 불필요: 1.2 2013년 7월 12일[148][149] 안정된 웨이랜드 서버 API 색상 관리서브서페이스라즈베리 파이 백엔드
이전 버전, 유지 보수 불필요: 1.3 2013년 10월 11일[150] 더 많은 픽셀 형식.언어 바인딩 지원. libhybris를 통한 Android 드라이버 지원.
이전 버전, 더 이상 유지 보수되지 않음 2014년 1월 23일[26] 새로운 wl_subcompositor 및 wl_subsurface 인터페이스 여러 프레임 버퍼 형식루트리스 Weston 로그인 지원
이전 버전, 더 이상 유지 보수되지 않음 2014년 5월 20일[67] libinput.풀스크린 셸
이전 버전, 더 이상 유지 보수되지 않음 2014년 9월 19일[151] libinput이 디폴트로 설정되어 있습니다.
이전 버전, 유지 보수 불필요: 1.7 2015년 2월 14일[152][153] Wayland 프레젠테이션 확장 및 표면 역할 지원.IVI 쉘 프로토콜입니다
이전 버전, 유지 보수 불필요: 1.8 2015년 6월 2일[154][155] 코어 프로토콜과 생성된 프로토콜에 대해 분리된 머리글입니다. 스케줄을 다시 도장합니다.이름 있는 출력출력 변환지표면 촬영 API
이전 버전, 더 이상 유지 보수되지 않음: 2015년 9월 21일[156][157] 라이선스가 갱신되었습니다. 라이선스가 갱신되었습니다.새로운 테스트 프레임워크트리플 헤드 DRM 컴포지터linux_dmabuf 확장.
이전 버전, 유지 보수 불필요: 1.10 2016년 2월 17일[158][159] 드래그 앤 드롭 기능, 그룹화된 포인터 이벤트.[160] Video 4 Linux 2, 터치 입력, 디버깅 개선.[161]
이전 버전, 더 이상 유지 보수되지 않음: 1.11 2016년 6월 1일[162][163] 새로운 백업 로드 루틴, 새로운 설정 로직. 프록시 래퍼, 공유 메모리 변경, Doxygen 생성 HTML 문서.
이전 버전, 유지 보수 불필요: 1.12 2016년 9월 21일[164][165] 디버깅 지원이 향상되었습니다. libweston 및 libweston-disclosed.포인터 잠금 및 제한.상대 포인터 지원.
이전 버전, 유지 보수 불필요: 1.13 2017년 2월 24일[166][167] Weston의 ABI가 변경되어 새로운 버전은 1.13.0이 아닌 2.0.0으로 명명되었습니다.
이전 버전, 유지 보수 불필요: 1.14 2017년 8월 8일[168][169] 동시에 Weston 3.0.0이 출시되었습니다.
이전 버전, 유지 보수 불필요: 1.15 2018년 4월 9일[170][171] 동시에 Weston 4.0.0이 출시되었습니다.
이전 버전, 유지 보수 불필요: 1.16 2018년 8월 24일[172][173] 동시에 Weston 5.0.0이 출시되었습니다.
이전 버전, 유지 보수 불필요: 1.17 2019년 3월 20일[174][175] 동시에 Weston 6.0.0이 출시되었습니다.
이전 버전, 유지 보수 불필요: 1.18 2019년 8월 2일[176][177] Weston 7.0.0은 한 달 후에 출시되었습니다.
Weston 8.0.0은 2020년 1월 24일에 출시되었습니다.
Weston 9.0.0은 2020-09-04에 출시되었습니다.
이전 버전, 유지 보수 불필요: 1.19 2021년 1월 27일[180]
현재 안정적인 버전: 1.20 2021년 12월 9일[181] Weston 10.0.0은 2022-02-01에 출시되었습니다.[182]
범례:
구버전
이전 버전, 아직 유지 관리됨
최신 버전
최신 프리뷰 버전
향후 출시

「 」를 참조해 주세요.

레퍼런스

  1. ^ Høgsberg, Kristian (30 September 2008). "Initial commit". Retrieved 3 January 2020.
  2. ^ Ser, Simon (27 January 2021). "[ANNOUNCE] wayland 1.20.0" (Mailing list). Retrieved 27 January 2021.
  3. ^ Ser, Simon (1 February 2022). "[ANNOUNCE] weston 10.0.0" (Mailing list). Retrieved 12 February 2022.
  4. ^ "Wayland & Weston Compositor Ported To DragonFlyBSD - Phoronix". www.phoronix.com.
  5. ^ a b c Harrington, Bryce (15 September 2015). "[ANNOUNCE] wayland 1.8.93". freedesktop.org (Mailing list).
  6. ^ "wayland/wayland: root/COPYING". freedesktop.org. Retrieved 14 June 2015.
  7. ^ Larabel, Michael (10 June 2015). "Wayland's MIT License To Be Updated/Corrected". Phoronix.com. Retrieved 17 April 2016.
  8. ^ a b c "Wayland". Wayland project. Retrieved 9 May 2016.
  9. ^ Sengar, Shivam Singh (16 June 2018). "Wayland v/s Xorg : How Are They Similar & How Are They Different". secjuice. Retrieved 10 September 2020.
  10. ^ a b c Kerrisk, Michael (25 September 2012). "XDC2012: Graphics stack security". LWN.net. Retrieved 13 April 2016.
  11. ^ a b Peres, Martin (21 February 2014). "Wayland Compositors - Why and How to Handle Privileged Clients!". Retrieved 17 April 2016.
  12. ^ a b Graesslin, Martin (23 November 2015). "Looking at the security of Plasma/Wayland". Retrieved 18 April 2016.
  13. ^ a b c d e "Wayland FAQ". Wayland project. Retrieved 9 May 2016.
  14. ^ Michael Larabel (20 May 2009). "The State Of The Wayland Display Server". Phoronix.
  15. ^ Corbet, Jonathan (5 November 2010). "LPC: Life after X". LWN.net. Retrieved 17 April 2016.
  16. ^ Høgsberg, Kristian (9 November 2010). "Network transparency argument". Wayland isn't a remote rendering API like X, but that doesn't exclude network transparency. Clients render into a shared buffer and then have to tell the compositor (...) what they changed. The compositor can then send the new pixels in that region out over the network. The Wayland protocol is already violently asynchronous, so it should be able to handle a bit of network lag gracefully. Remote fullscreen video viewing or gaming isn't going to work well, [but] I don't know any other display system that handles that well and transparently.
  17. ^ Larabel, Michael (18 August 2011). "Remote Wayland Server Project: Does It Work Yet?". Phoronix.com. Retrieved 17 April 2016.
  18. ^ Jackson, Adam (9 November 2010). "[Re:] Ubuntu moving towards Wayland".
  19. ^ Stone, Daniel (28 January 2013). The real story behind Wayland and X (Speech). linux.conf.au 2013. Canberra. Retrieved 13 April 2016.
  20. ^ a b c Willis, Nathan (13 February 2013). "LCA: The ways of Wayland". LWN.net. Retrieved 19 May 2016.
  21. ^ Aleksandersen, Daniel. "Remote desktop capabilities set to make a comeback in GNOME on Wayland". Ctrl.blog. Retrieved 29 August 2017.
  22. ^ a b "The Hello Wayland Tutorial". 8 July 2014. Retrieved 25 July 2014.
  23. ^ a b c d e f g h i j k l m n o Høgsberg, Kristian. "Wayland Documentation 1.3" (PDF). Retrieved 16 March 2016.
  24. ^ a b Høgsberg, Kristian. "protocol/wayland.xml". FreeDesktop.org. Retrieved 25 July 2014.
  25. ^ a b Paalanen, Pekka (25 July 2014). "Wayland protocol design: object lifespan". Retrieved 6 April 2016.
  26. ^ a b Høgsberg, Kristian (24 January 2014). "Wayland and Weston 1.4 is out". wayland-devel mailing list.
  27. ^ "xdg_shell: Adding a new shell protocol". freedesktop.org. 3 December 2013. Retrieved 14 June 2014.
  28. ^ "GENIVI/wayland-ivi-extension". GitHub. 17 November 2021.
  29. ^ a b c Vervloesem, Koen (15 February 2012). "FOSDEM: The Wayland display server". LWN.net. Retrieved 9 May 2016.
  30. ^ Barnes, Jesse. "Introduction to Wayland" (PDF). Intel Open Source Technology Center. Retrieved 18 April 2016. Does not include a rendering API – Clients use what they want and send buffer handles to the server
  31. ^ Paalanen, Pekka (21 November 2012). "On supporting Wayland GL clients and proprietary embedded platforms". Retrieved 6 April 2016. Buffer sharing works by creating a handle for a buffer, and passing that handle to another process which then uses the handle to make the GPU access again the same buffer.
  32. ^ Griffith, Eric (7 June 2013). "The Wayland Situation: Facts About X vs. Wayland". Phoronix.com. p. 2. Retrieved 17 April 2016.
  33. ^ a b "Wayland Architecture". Wayland project. Retrieved 9 May 2016.
  34. ^ Edge, Jake (11 April 2012). "LFCS 2012: X and Wayland". LWN.net. Retrieved 17 April 2016.
  35. ^ "Wayland/X Compositor Architecture By Example: Enlightenment DR19" (PDF). Retrieved 18 April 2016.
  36. ^ a b Graesslin, Martin (7 February 2013). "Client Side Window Decorations and Wayland". Retrieved 17 April 2016.
  37. ^ "X.Org Security". X.Org Foundation. Retrieved 2 July 2017. The X server has long included an extension, SECURITY, which provides support for a simple trusted/untrusted connection model.
  38. ^ Wiggins, David P. (15 November 1996). "Security Extension Specification". X Consortium Standard. Retrieved 2 July 2017.
  39. ^ Walsh, Eamon F. (2009). "X Access Control Extension Specification". Retrieved 2 July 2017.
  40. ^ "Debian Moves To Non-Root X.Org Server By Default - Phoronix". www.phoronix.com.
  41. ^ "Non root Xorg - Gentoo Wiki". wiki.gentoo.org.
  42. ^ "X/Rootless - Ubuntu Wiki". wiki.ubuntu.com.
  43. ^ "1078902 – Xorg without root rights". bugzilla.redhat.com.
  44. ^ "X Clients under Wayland (XWayland)". Wayland project. Retrieved 18 July 2014.
  45. ^ "ANNOUNCE: xorg-server 1.16.0". freedesktop.org. 17 July 2014.
  46. ^ a b Høgsberg, Kristian (3 January 2011). "Multiple backends for GTK". Retrieved 10 March 2016.
  47. ^ "QtWayland". Qt Wiki. Retrieved 9 March 2016.
  48. ^ "Full Wayland support in GTK". GNOME wiki. Retrieved 10 March 2016.
  49. ^ a b Larabel, Michael (30 November 2015). "Enlightenment 0.20 Arrives With Full Wayland Support & Better FreeBSD Support". Phoronix.com. Retrieved 17 April 2016.
  50. ^ "Wayland". www.enlightenment.org.
  51. ^ "Plasma 5.21". KDE Community. 16 February 2021. Retrieved 9 March 2021.
  52. ^ "Index of /sources/mutter-wayland". download.gnome.org.
  53. ^ "Sway". swaywm.org. Retrieved 20 December 2018.
  54. ^ "swaywm/wlroots". GitHub. Retrieved 28 October 2018.
  55. ^ "swaywm/sway". GitHub. Retrieved 28 October 2018.
  56. ^ "README". cgit.freedesktop.org.
  57. ^ "README file from the Wayland source code repository". freedesktop.org.
  58. ^ Larabel, Michael (16 February 2013). "Wayland Begins Porting Process To FreeBSD". Phoronix.com. Retrieved 17 April 2016.
  59. ^ "Adding Content protection support in drm-backend (!48) · Merge Requests · wayland / weston". GitLab. Retrieved 27 October 2019.
  60. ^ Paalanen, Pekka (10 March 2012). "What does EGL do in the Wayland stack". Retrieved 19 May 2016.
  61. ^ a b Larabel, Michael (6 January 2013). "A Software-Based Pixman Renderer For Wayland's Weston". Phoronix.com. Retrieved 17 April 2016.
  62. ^ Høgsberg, Kristian (9 December 2010). "Blender3D & cursor clamping".
  63. ^ a b "[RFC weston] remote access interface module". freedesktop.org. 18 October 2013.
  64. ^ "Maynard announcement". 16 April 2014. Retrieved 16 April 2014.
  65. ^ a b "Raspberry Pi Case Study". Collabora. Retrieved 9 August 2013.
  66. ^ a b "Wayland preview". Raspberry Pi. Retrieved 9 August 2013.
  67. ^ a b Høgsberg, Kristian (20 May 2014). "Wayland and Weston 1.5.0 is released". wayland-devel mailing list.
  68. ^ Ådahl, Jonas (12 November 2013). "[RFC] Common input device library". Wayland mailing list.
  69. ^ "libinput". Freedesktop.org. Retrieved 21 May 2014.
  70. ^ Hutterer, Peter (8 October 2014). Consolidating the input stacks with libinput (Speech). The X.Org Developer Conference 2014. Bordeaux. Retrieved 14 January 2020.
  71. ^ Hutterer, Peter (22 February 2015). "libinput: the road to 1.0".
  72. ^ "Libinput support added to Touchpad KCM". 22 February 2015.
  73. ^ Goede, Hans de (23 February 2015). "Libinput now enabled as default xorg driver for F-22 workstation installs".
  74. ^ Hutterer, Peter (24 September 2014). "libinput - a common input stack for Wayland compositors and X.Org drivers". Retrieved 17 April 2016.
  75. ^ de Goede, Hans (1 February 2015). "Replacing xorg input - Drivers with libinput" (PDF). Retrieved 18 April 2016.
  76. ^ a b Dodier-Lazaro, Steve; Peres, Martin (9 October 2014). Security in Wayland-based Desktop Environments: Privileged Clients, Authorization, Authentication and Sandboxing! (Speech). The X.Org Developer Conference 2014. Bordeaux. Retrieved 18 April 2016.
  77. ^ "Changes/WaylandByDefault - Fedora Project Wiki". fedoraproject.org. Retrieved 9 November 2020.
  78. ^ "ReleaseNotes for Ubuntu 17.10". Canonical.
  79. ^ "Ubuntu 18.04 will revert to long-in-the-tooth Xorg".
  80. ^ "Bionic Beaver 18.04 LTS to use Xorg by default". Canonical.
  81. ^ "Ubuntu 21.04 is here". Canonical Ubuntu Blog. Retrieved 14 June 2021.{{cite web}}: CS1 maint :url-status (링크)
  82. ^ "Release notes for Red Hat Enterprise Linux 8.0". Red Hat Customer Portal. Retrieved 25 December 2020.
  83. ^ "NewInBuster - Debian Wiki". wiki.debian.org. Retrieved 15 July 2019.
  84. ^ "Slackware ChangeLogs". Slackware Linux. Retrieved 26 February 2020.
  85. ^ "Manjaro 20.2 Nibia got released". 3 December 2020. Retrieved 3 December 2020.
  86. ^ "Wayland Live OS Is Now Based On Debian Testing, Working KDE Wayland Support". Phoronix.
  87. ^ "RebeccaBlackOS". Sourceforge.
  88. ^ "Trying Out Wayland With Rebecca Black". Phoronix.
  89. ^ "New Wayland Live CD Has A Lot Of Features". Phoronix.
  90. ^ Bassi, Emmanuele (31 January 2011). "ANNOUNCE: Clutter 1.6.0 (stable)". clutter-announce (Mailing list).
  91. ^ Bradford, Rob (16 December 2011). "Clutter & Cogl Wayland update". Retrieved 9 March 2016. The Clutter client side support is basically complete
  92. ^ Bassi, Emmanuele (24 September 2013). "ANNOUNCE: Clutter 1.16.0 (stable)". clutter-announce (Mailing list).
  93. ^ "Wayland – Enlightenment". Archived from the original on 29 March 2013. Retrieved 6 March 2013.
  94. ^ "GTK Roadmap". Retrieved 8 March 2016.
  95. ^ Lantinga, Sam (8 March 2014). "SDL 2.0.2 RELEASED!". SDL Project. Retrieved 18 March 2014.
  96. ^ Larabel, Michael (9 January 2016). "SDL 2.0.4 Was Quietly Released Last Week With Wayland & Mir By Default". Phoronix.com. Retrieved 17 April 2016.
  97. ^ Berglund, Camilla (8 April 2014). "Implementation for Wayland · Issue #106 · glfw/glfw · GitHub". GitHub. Retrieved 14 August 2014.
  98. ^ "FreeGLUT: Implement initial Wayland support". GitHub.
  99. ^ "GNOME Initiatives - Wayland". GNOME Wiki. Retrieved 8 March 2016.
  100. ^ "KWin/Wayland". KDE Community Wiki. Retrieved 8 March 2016.
  101. ^ "Enlightenment - Wayland". Enlightenment.org. Retrieved 8 March 2016.
  102. ^ "Enlightenment DR 0.20.0 Release". Enlightenment.org. Retrieved 8 March 2016.
  103. ^ "The Enlightenment of Wayland". FOSDEM.org. Retrieved 8 March 2016.
  104. ^ "ReleasePlanning/FeaturesPlans". GNOME Project. Retrieved 31 May 2015.
  105. ^ "A Look At The Exciting Features/Improvements Of GNOME 3.22". Phoronix.
  106. ^ "GNOME Lands Mainline NVIDIA Wayland Support Using EGLStreams". Phoronix.
  107. ^ "Plasma's Road to Wayland". 25 July 2014.
  108. ^ Larabel, Michael (14 June 2013). "KDE 4.11 Beta Released, Works On Wayland". Phoronix.com. Retrieved 17 April 2016.
  109. ^ Graesslin, Martin (29 June 2015). "Four years later". Retrieved 17 April 2016.
  110. ^ Dawe, Liam. "KDE Plasma 5.20 will properly support screen recording on Wayland and more". gamingonlinux.com. Retrieved 10 September 2020.
  111. ^ Schaller, Christian (3 July 2014). "Wayland in Fedora Update". blogs.gnome.org. Retrieved 17 April 2016.
  112. ^ "VNC® Wayland Developer Preview". 8 July 2014. Archived from the original on 14 July 2014.
  113. ^ "RealVNC Wayland developer preview email". freedesktop.org. 9 July 2014.
  114. ^ "Maliit Status Update". Posterous. 2 April 2013. Archived from the original on 17 May 2013. Retrieved 14 October 2013.
  115. ^ "More Maliit Keyboard Improvements: QtQuick2". Murray's Blog. 2 April 2013. Retrieved 14 October 2013.
  116. ^ "Maliit under Wayland". Archived from the original on 11 June 2013. Retrieved 14 September 2013.
  117. ^ "wlterm". Freedesktop.org. Retrieved 8 July 2014.
  118. ^ a b 힐즐리, 3페이지
  119. ^ "Eclipse now runs on Wayland". 18 August 2014.
  120. ^ Stone, Daniel (16 February 2016). "Vulkan 1.0 specification released with day-one support for Wayland".
  121. ^ "Wayland Backend DRM IVI Layer Management". GENIVI Alliance. Archived from the original on 1 February 2014. Retrieved 15 July 2013.
  122. ^ "The First Jolla Smartphone Runs With Wayland". LinuxG.net. 14 July 2013. Retrieved 8 October 2013.
  123. ^ VDVsx [@VDVsx] (13 July 2013). "#sailfishos main components diagram. #Qt5 #Wayland #JollaHQ #Akademy" (Tweet) – via Twitter.
  124. ^ Jolla [@JollaHQ] (13 July 2013). "@faenil @PeppeLaKappa @VDVsx our first Jolla will ship with wayland, yes" (Tweet) – via Twitter.
  125. ^ "IVI/IVI Setup". Tizen Wiki. Retrieved 8 April 2013.
  126. ^ VanCutsem, Geoffroy (10 July 2013). "[IVI] Tizen IVI 3.0-M1 released". IVI (Mailing list).
  127. ^ Amadeo, Ron (12 May 2017). "The Samsung Z4 is Tizen's new flagship smartphone". Ars Technica. Retrieved 13 May 2017.
  128. ^ Høgsberg, Kristian (3 November 2008). "Premature publicity is better than no publicity". Retrieved 6 April 2016.
  129. ^ "Interview: Kristian Høgsberg". FOSDEM Archive. 29 January 2012. Retrieved 8 March 2016.
  130. ^ a b Hillesley, Richard (13 February 2012). "Wayland - Beyond X". The H Open. Heise Media UK. Retrieved 8 March 2016.
  131. ^ Høgsberg, Kristian. "Wayland – A New Display Server for Linux". Linux Plumbers Conference, 2009. Archived from the original on 11 August 2017.
  132. ^ Jenkins, Evan (22 March 2011). "The Linux graphics stack from X to Wayland". Ars Technica. Retrieved 17 April 2016.
  133. ^ Larabel, Michael (29 October 2010). "Wayland Becomes A FreeDesktop.org Project". Phoronix.com. Retrieved 17 April 2016.
  134. ^ Høgsberg, Kristian (29 October 2010). "Moving to freedesktop.org". Retrieved 31 July 2013.
  135. ^ Høgsberg, Kristian (3 December 2008). "Wayland is now under MIT license". wayland-display-server (Mailing list).
  136. ^ Høgsberg, Kristian (22 November 2010). "Wayland license clarification". wayland-devel (Mailing list).
  137. ^ Høgsberg, Kristian (19 September 2011). "License update". wayland-devel (Mailing list).
  138. ^ Munk, Carsten (11 April 2013). "Wayland utilizing Android GPU drivers on glibc based systems, Part 1". Mer Project. Retrieved 3 July 2013.
  139. ^ Munk, Carsten (8 June 2013). "Wayland utilizing Android GPU drivers on glibc based systems, Part 2". Mer Project. Retrieved 3 July 2013.
  140. ^ Larabel, Michael (11 April 2013). "Jolla Brings Wayland Atop Android GPU Drivers". Phoronix.com. Retrieved 17 April 2016.
  141. ^ "Wayland". Wayland.freedesktop.org. Retrieved 15 July 2013.
  142. ^ Høgsberg, Kristian (9 February 2012). "[ANNOUNCE] Wayland and Weston 0.85.0 released". wayland-devel mailing list.
  143. ^ Høgsberg, Kristian (24 July 2012). "Wayland and Weston 0.95.0 released". wayland-devel mailing list.
  144. ^ Høgsberg, Kristian (22 October 2012). "Wayland and Weston 1.0". wayland-devel mailing list.
  145. ^ Scherschel, Fabian (23 October 2012). "Wayland's 1.0 milestone fixes graphics protocol". The H Open. Heise Media UK. Retrieved 17 April 2016.
  146. ^ Larabel, Michael (16 April 2013). "Wayland 1.1 Officially Released With Weston 1.1". Phoronix.com. Retrieved 17 April 2016.
  147. ^ Høgsberg, Kristian (15 April 2013). "1.1 Released". wayland-devel mailing list.
  148. ^ Larabel, Michael (13 July 2013). "Wayland 1.2.0 Released, Joined By Weston Compositor". Phoronix.com. Retrieved 17 April 2016.
  149. ^ Høgsberg, Kristian (12 July 2013). "Wayland and Weston 1.2.0 released". wayland-devel mailing list.
  150. ^ Høgsberg, Kristian (11 October 2013). "Wayland and Weston 1.3 releases are out". wayland-devel mailing list.
  151. ^ Paalanen, Pekka (19 September 2014). "Wayland and Weston 1.6.0 released". wayland-devel mailing list.
  152. ^ Harrington, Bryce (14 February 2015). "[ANNOUNCE] wayland 1.7.0". wayland-devel mailing list.
  153. ^ Harrington, Bryce (14 February 2015). "[ANNOUNCE] weston 1.7.0". wayland-devel mailing list.
  154. ^ Harrington, Bryce (2 June 2015). "[ANNOUNCE] wayland 1.8.0". wayland-devel mailing list.
  155. ^ Harrington, Bryce (2 June 2015). "[ANNOUNCE] weston 1.8.0". wayland-devel mailing list.
  156. ^ Harrington, Bryce (21 September 2015). "[ANNOUNCE] wayland 1.9.0". wayland-devel (Mailing list).
  157. ^ Harrington, Bryce (21 September 2015). "[ANNOUNCE] weston 1.9.0". wayland-devel (Mailing list).
  158. ^ Harrington, Bryce (17 February 2016). "[ANNOUNCE] wayland 1.10.0". wayland-devel (Mailing list).
  159. ^ Harrington, Bryce (17 February 2016). "[ANNOUNCE] weston 1.10.0". wayland-devel (Mailing list).
  160. ^ Nestor, Marius (18 February 2016). "Wayland 1.10 Display Server Officially Released, Wayland 1.11 Arrives in May 2016". Softpedia.
  161. ^ Larabel, Michael (16 February 2016). "Wayland 1.10 Officially Released". Phoronix.com. Retrieved 17 April 2016.
  162. ^ Harrington, Bryce (1 June 2016). "[ANNOUNCE] wayland 1.11.0". wayland-devel (Mailing list). Retrieved 1 June 2016.
  163. ^ Harrington, Bryce (1 June 2016). "[ANNOUNCE] weston 1.11.0". wayland-devel (Mailing list). Retrieved 1 June 2016.
  164. ^ Harrington, Bryce (21 September 2016). "[ANNOUNCE] wayland 1.12.0". wayland-devel (Mailing list). Retrieved 21 September 2016.
  165. ^ Harrington, Bryce (21 September 2016). "[ANNOUNCE] weston 1.12.0". wayland-devel (Mailing list). Retrieved 21 September 2016.
  166. ^ Harrington, Bryce (21 February 2017). "[ANNOUNCE] wayland 1.13.0". wayland-devel (Mailing list). Retrieved 30 April 2017.
  167. ^ Harrington, Bryce (25 February 2017). "[ANNOUNCE] weston 2.0.0". wayland-devel (Mailing list). Retrieved 30 April 2017.
  168. ^ Harrington, Bryce (8 August 2017). "[ANNOUNCE] wayland 1.14.0". wayland-devel (Mailing list). Retrieved 25 March 2018.
  169. ^ Harrington, Bryce (8 August 2017). "[ANNOUNCE] weston 3.0.0". wayland-devel (Mailing list). Retrieved 25 March 2018.
  170. ^ Foreman, Derek (9 April 2018). "[ANNOUNCE] wayland 1.15.0". wayland-devel (Mailing list). Retrieved 15 April 2018.
  171. ^ Foreman, Derek (9 April 2018). "[ANNOUNCE] weston 4.0.0". wayland-devel (Mailing list). Retrieved 15 April 2018.
  172. ^ Foreman, Derek (24 August 2018). "[ANNOUNCE] wayland 1.16.0". wayland-devel (Mailing list). Retrieved 30 November 2018.
  173. ^ Foreman, Derek (24 August 2018). "[ANNOUNCE] weston 5.0.0". wayland-devel (Mailing list). Retrieved 30 November 2018.
  174. ^ Foreman, Derek (28 March 2019). "[ANNOUNCE] wayland 1.17.0" (Mailing list). Retrieved 17 June 2019.
  175. ^ Foreman, Derek (21 March 2019). "[ANNOUNCE] weston 6.0.0" (Mailing list). Retrieved 17 June 2019.
  176. ^ Ser, Simon (11 February 2020). "[ANNOUNCE] wayland 1.18" (Mailing list). Retrieved 12 February 2020.
  177. ^ Ser, Simon (23 August 2019). "[ANNOUNCE] weston 7.0.0" (Mailing list). Retrieved 22 October 2019.
  178. ^ https://lists.freedesktop.org/archives/wayland-devel/2020-January/041147.html
  179. ^ https://lists.freedesktop.org/archives/wayland-devel/2020-September/041595.html
  180. ^ Ser, Simon (27 January 2021). "[ANNOUNCE] wayland 1.19.0" (Mailing list). Retrieved 27 January 2021.
  181. ^ https://lists.freedesktop.org/archives/wayland-devel/2021-December/042064.html
  182. ^ https://lists.freedesktop.org/archives/wayland-devel/2022-February/042103.html

외부 링크