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

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 Flutter 위젯의 상태관리에 대해서 file makersweb 2023.04.06 396
34 [NodeGui] JavaScript로 데스크탑 응용프로그램 작성 file makersweb 2023.02.21 926
33 openFrameworks 한글 폰트 설정 및 출력하기 file makersweb 2023.02.19 174
32 LVGL 을 통해 GUI 구현 시 한글 폰트 추가 file makersweb 2023.02.07 959
31 Windows에서 Qt Creator + CMake + vcpkg 로 C++ 개발환경 구성 (POCO 라이브러리 DirectoryWatcher 예제) file makersweb 2023.01.14 587
30 NAppGUI, C언어용 크로스 플랫폼 GUI 라이브러리 file makersweb 2022.10.10 804
29 OTA 오픈소스 프로젝트 makersweb 2022.08.03 440
28 AGL (Automotive Grade Linux) 개요 file makersweb 2022.06.19 1788
» Chromium과 Ozone 층 file makersweb 2022.03.03 696
26 Flutter Application 에서 한글(EUC-KR) 깨져서 나오는 문제 file makersweb 2022.01.06 2565
25 CopperSpice 에 대해서 (C++ Gui 라이브러리) file makersweb 2022.01.02 515
24 Flutter/Dart 와 Qt/QML 비교 file makersweb 2021.11.07 1324
23 VSCode 와 Qbs 플러그인으로 C/C++ 개발환경 구성 file makersweb 2021.09.12 792
22 ZeroMQ 를 이용한 Qt 응용프로그램 간 통신 file makersweb 2021.08.28 791
21 C++를 위한 Lottie 라이브러리 with SDL2 file makersweb 2021.08.15 939
20 CANdevStudio 를 사용하여 CAN 네트워크 시뮬레이션 file makersweb 2021.03.09 1618
19 Protocol Buffers 를 이용한 직렬화 with Conan Package Manager file makersweb 2021.02.24 830
18 라즈베리파이에서 Redis의 Pub/Sub 패턴을 사용하는 Electron 응용프로그램 file makersweb 2021.01.31 656
17 Nana, C++용 크로스플랫폼 GUI 라이브러리 file makersweb 2021.01.06 2015
16 라즈베리파이4에서 openFrameworks 예제 실행 file makersweb 2020.12.13 537