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

Chromium과 Ozone 층

makersweb 2022.03.03 00:04 조회 수 : 405

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

번호 제목 글쓴이 날짜 조회 수
30 NAppGUI, C언어용 크로스 플랫폼 GUI 라이브러리 file makersweb 2022.10.10 99
29 OTA 오픈소스 프로젝트 makersweb 2022.08.03 58
28 AGL (Automotive Grade Linux) 개요 file makersweb 2022.06.19 1167
» Chromium과 Ozone 층 file makersweb 2022.03.03 405
26 Flutter Application 에서 한글(EUC-KR) 깨져서 나오는 문제 file makersweb 2022.01.06 697
25 CopperSpice 에 대해서 (C++ Gui 라이브러리) file makersweb 2022.01.02 311
24 Flutter/Dart 와 Qt/QML 비교 file makersweb 2021.11.07 642
23 VSCode 와 Qbs 플러그인으로 C/C++ 개발환경 구성 file makersweb 2021.09.12 481
22 ZeroMQ 를 이용한 Qt 응용프로그램 간 통신 file makersweb 2021.08.28 549
21 C++를 위한 Lottie 라이브러리 with SDL2 file makersweb 2021.08.15 673
20 CANdevStudio 를 사용하여 CAN 네트워크 시뮬레이션 file makersweb 2021.03.09 926
19 Protocol Buffers 를 이용한 직렬화 with Conan Package Manager file makersweb 2021.02.24 538
18 라즈베리파이에서 Redis의 Pub/Sub 패턴을 사용하는 Electron 응용프로그램 file makersweb 2021.01.31 479
17 Nana, C++용 크로스플랫폼 GUI 라이브러리 file makersweb 2021.01.06 1578
16 라즈베리파이4에서 openFrameworks 예제 실행 file makersweb 2020.12.13 409
15 Dear ImGui, 경량의 C++ 용 GUI 및 Widget 라이브러리 file makersweb 2020.11.28 6201
14 GENIVI DLT(Diagnostic Log and Trace) 활용 file makersweb 2020.11.19 4085
13 윈도우에서 안드로이드 flutter 프로그래밍 개발환경 구축(with Visual Studio Code) file makersweb 2020.09.16 552
12 가볍고 쉬운 임베디드용 그래픽 라이브러리 - LVGL file makersweb 2020.09.16 1476
11 Qt와 GStreamer 로 작성한 flac 오디오 재생 예제 file makersweb 2020.09.05 901