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

Chromium과 Ozone 층

makersweb 2022.03.03 00:04 조회 수 : 696

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 가 열심히 개발하고 있다.

번호 제목 글쓴이 날짜 조회 수
35 Pluma(C++ Plug-in Management Framework) 튜토리얼 file makersweb 2019.12.07 13928
34 GDBus 튜토리얼(GDBus tutorial) file makersweb 2019.06.30 10183
33 Dear ImGui, 경량의 C++ 용 GUI 및 Widget 라이브러리 file makersweb 2020.11.28 8866
32 ZeroMQ의 기본 메세지 패턴들 file makersweb 2020.07.31 8350
31 GENIVI DLT(Diagnostic Log and Trace) 활용 file makersweb 2020.11.19 7986
30 텔레그램(Telegram) Bot 개발 file makersweb 2019.07.21 5671
29 webOS소개 및 Raspberry Pi 3 에서 실행 file makersweb 2019.10.13 3845
28 가볍고 쉬운 임베디드용 그래픽 라이브러리 - LVGL file makersweb 2020.09.16 3194
27 [SDL2 와 OpenGL]윈도우 생성과 2D그래픽 file makersweb 2020.04.11 3012
26 리눅스에서 SDL2 최신버전 컴파일과 Qt Creator로 개발환경 구성 file makersweb 2019.10.06 3000
25 Flutter Application 에서 한글(EUC-KR) 깨져서 나오는 문제 file makersweb 2022.01.06 2565
24 Wayland IVI Extension 간단 리뷰 file makersweb 2019.05.12 2237
23 Nana, C++용 크로스플랫폼 GUI 라이브러리 file makersweb 2021.01.06 2015
22 AGL (Automotive Grade Linux) 개요 file makersweb 2022.06.19 1788
21 ZeroMQ 비동기 클라이언트/서버 패턴 file makersweb 2020.08.13 1718
20 CANdevStudio 를 사용하여 CAN 네트워크 시뮬레이션 file makersweb 2021.03.09 1618
19 Flutter/Dart 와 Qt/QML 비교 file makersweb 2021.11.07 1324
18 Qt와 GStreamer 로 작성한 flac 오디오 재생 예제 file makersweb 2020.09.05 1121
17 LVGL 을 통해 GUI 구현 시 한글 폰트 추가 file makersweb 2023.02.07 959
16 C++를 위한 Lottie 라이브러리 with SDL2 file makersweb 2021.08.15 939