반응형
소스 다운로드: git clone gitlab.freedesktop.org/wayland/weston.git 소스 태그: 8.0.0 (commit - 33b06bde) 주 언어: C |
Weston은 Gnome, Kde와 마찬가지로, 리눅스 데스크탑 환경이다. 즉 weston을 통해 우리는 리눅스에서 GUI를 사용할 수 있다. Weston은 Gnome, Kde가 제공하던 주요 기능들을 제공한다. 예를 들어 GUI 앱 윈도우 생성, 리사이즈, 이동, 창 겹치기, 마우스 입력 전달 등등이 있다. 또한 구조화가 잘 되어있기 때문에 다양한 환경(fb, drm, wayland/x11)에서 유연하게 사용 가능하며, 다양한 구현체(desktop-shell, ivi-shell)이 존재한다. 이러한 장점들 덕분에, 데스크탑에서는 주류가 아니지만, 자동차, 항공 등 임베디드 리눅스에서 그래픽을 요구하는 분야에서는 높은 사용률을 가지고 있다.
Weston의 개괄적인 구조는 위와 같다. Weston에서 가장 핵심이 되는 부분은 Compositor로, 주요 Wayland 객체를 생성/관리하고, Shell과 Backend를 로딩하여 인터페이스 기반으로 활용한다. Shell은 화면 구성과 관련된 Wayland 객체를 생성/관리하며, App의 보이는 영역(surface) 관리를 한다. Backend는 Compositor의 화면 출력(output)을 처리한다. 이를 보기 좋게 정리하면 다음 표와 같다.
컴포넌트 | 내용 | 상세분석 |
Compositor | - 주요 Wayland 객체 생성 / 관리 - Weston 초기화 - Shell 로딩 - Backend 로딩 - Input 디바이스 관리 - 명령줄 인자 / Config / 환경 변수 관리 |
준비중 |
Shell | - Surface 관련 Wayland 객체 생성 / 관리 - App의 Surface 관리 - 실제로 사용자가 접하는 UI/UX 담당 |
중비중 |
Backend | - Output을 처리 컴포넌트 - drm-backend: 최근에 나온 대부분 임베디드 리눅스 시스템에서 사용 - fb-backend: 오래된 리눅스 시스템에서 사용 - wayland-backend: wayland 데스크탑 환경에서 weston을 실행할 경우 사용 - x11-backend: x11 데스크탑 환경에서 weston을 실행할 경우 사용 - rdp-backend: 원격 데스크탑 프로토콜(rdp)으로 접속하는 경우 사용 |
X |
* Backend까지 다루면 내용이 너무 많아지기 때문에, Backend 부분은 생략한다.
앞으로 2~3 포스트에 걸쳐 Weston의 Compositor의 동작과 Shell 동작에 대해 코드레벨에서 분석할 예정이다.
반응형
'오픈소스 읽기 (OLD) > 데스크탑환경 - weston (wayland)' 카테고리의 다른 글
4. Weston 컴포지터 살펴보기 - 컴포지팅 (3/3) (0) | 2020.08.21 |
---|---|
3. Weston 컴포지터 살펴보기 - 화면 갱신 (2/3) (0) | 2020.08.12 |
2. Weston 컴포지터 살펴보기 - 메인 플로우 (1/3) (0) | 2020.08.05 |
번외. Wayland 프로토콜 (0) | 2020.08.04 |
0. Wayland란? (+ Weston) (0) | 2020.08.03 |