한국어
오픈소스포럼
 이곳은 다양한 오픈소스 프로젝트를 소개하고 리뷰, 활용 방법을 공유합니다.

Chromium과 Ozone 층

makersweb 2022.03.03 00:04 조회 수 : 730

Ozone은 Chromium의 플랫폼 추상화 계층이다. Ozone의 목적은 실제 플랫폼에 대한 세부 구현을 숨기고 UI 이벤트 또는 창과 같은 것들을 플랫폼에 구애받지 않도록 추상화하여 Chromium을 다양한 플랫폼에 포팅하기 쉽게 만든다. Qt 프레임워크를 예로들 수 있는데 Qt 5에서 도입된 Qt Platform Abstraction, 즉 QPA와 정확히 같은 개념이다.

Chromium 내부에는 Aura 라고 부르는 자체 Window Manager가 있는데 Ozone은 이 Aura 아래에서 네이티브 윈도우 시스템에 액세스하고 입력 이벤트를 추상화한다. 

Chrome Graphics Infrastructure.png

▲ Chromium 의 그래픽 하부구조

 

ozone.png

Ozone은 리눅스에서 Wayland 지원을 위해 도입되었는데 기존 Chromium 리눅스용 구현은 X11 환경을 위해 모든 것이 정적이었고 빌드타임에 정의되어 변경을 허용하지않았다.

이런 문제를 해결하기위해 Igalia 라는 오픈소스 소프트웨어 컨설팅 회사가 2020년 6월부터 Linux용 Ozone을 런타임 시 옵션으로 사용 가능하도록 전환하는 작업을 적극적으로 진행해왔다(그 이전에는 인텔이 개발하였으나 완전하지 않은 상태였다). 그 결과로 Ozone/X11과 Ozone/Wayland 백엔드에 대해서 완성단계에 이르렀고 현재는 --enable-features=UseOzonePlatform --ozone-platform=wayland/x11 런타임 플래그를 사용하여 Chromium 의 Ozone 백엔드를 선택할 수 있는 상태다. (Linux 에서 Chromium이 실행될 때 사용하는 기본 백엔드는 Ozone/X11 이 되었다.)

몇 가지 이슈를 해결하고 정식으로 릴리즈를 위해 Igalia 가 열심히 개발하고 있다.