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

Chromium과 Ozone 층

makersweb 2022.03.03 00:04 조회 수 : 1554

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

번호 제목 글쓴이 날짜 조회 수
36 Elastic Stack 에 대해서 file makersweb 2024.08.25 859
35 Flutter 위젯의 상태관리에 대해서 file makersweb 2023.04.06 1178
34 [NodeGui] JavaScript로 데스크탑 응용프로그램 작성 file makersweb 2023.02.21 2175
33 openFrameworks 한글 폰트 설정 및 출력하기 file makersweb 2023.02.19 963
32 LVGL 을 통해 GUI 구현 시 한글 폰트 추가 file makersweb 2023.02.07 2267
31 Windows에서 Qt Creator + CMake + vcpkg 로 C++ 개발환경 구성 (POCO 라이브러리 DirectoryWatcher 예제) file makersweb 2023.01.14 1380
30 NAppGUI, C언어용 크로스 플랫폼 GUI 라이브러리 file makersweb 2022.10.10 1789
29 OTA 오픈소스 프로젝트 makersweb 2022.08.03 1316
28 AGL (Automotive Grade Linux) 개요 file makersweb 2022.06.19 2773
» Chromium과 Ozone 층 file makersweb 2022.03.03 1554
26 Flutter Application 에서 한글(EUC-KR) 깨져서 나오는 문제 file makersweb 2022.01.06 3782
25 CopperSpice 에 대해서 (C++ Gui 라이브러리) file makersweb 2022.01.02 1262
24 Flutter/Dart 와 Qt/QML 비교 file makersweb 2021.11.07 2035
23 VSCode 와 Qbs 플러그인으로 C/C++ 개발환경 구성 file makersweb 2021.09.12 1644
22 ZeroMQ 를 이용한 Qt 응용프로그램 간 통신 file makersweb 2021.08.28 1713
21 C++를 위한 Lottie 라이브러리 with SDL2 file makersweb 2021.08.15 1761
20 CANdevStudio 를 사용하여 CAN 네트워크 시뮬레이션 file makersweb 2021.03.09 2594
19 Protocol Buffers 를 이용한 직렬화 with Conan Package Manager file makersweb 2021.02.24 1589
18 라즈베리파이에서 Redis의 Pub/Sub 패턴을 사용하는 Electron 응용프로그램 file makersweb 2021.01.31 1460
17 Nana, C++용 크로스플랫폼 GUI 라이브러리 file makersweb 2021.01.06 2900