오픈소스에 해당하는 글 2

크로미엄(Chromium) 프로젝트 기여하기

Chromium|2021. 5. 1. 09:46

chromium.googlesource.com/chromium/src/+/master/docs/contributing.md

여러분의 사용하는 구글 크롬 브라우저(오픈소스 버전은 크로미엄 브라우저라고 부름)는 오픈소스로 관리된다. 소스코드를 공개되어 있고 여러분의 컴퓨터에서 빌드하고 테스트가 가능하다. 그리고 코드를 수정해서 크로미엄 사이트에 올리면 리뷰 과정을 거쳐서 코드가 반영된다. 아주 어려운 일은 아니다. 잘 찾아보면 아무도 신경 안쓰는 수정하기 쉬운 버그도 있다.

우선 크롬 브라우저가 어떻게 동작하는지 대충 알아야할 것이다. 구글에서 만든 수 많은 기술 문서가 있지만, 우선 아래 문서와 발표 자료를 꼭 들어보자.

크롬 브라우저는 어떻게 동작하는가?

Life Of a Pixel

Life of Pixel 문서는 말 그대로 크로미임 브라우저가 어떻게 웹페이지를 화면 출력하는지를 자세하게 소개하고 있다. 발표 자료와 함께 강의 비디오도 Youtube에 있다. 

 

Life of a Pixel

This is the evergreen copy of "Life of a Pixel". Video of the presentation at Chromium University (Nov 2020): http://bit.ly/loap-2020-video LIFE OF A Steve Kobes skobes@chromium.org Nov 2020 slides: bit.ly/lifeofapixel with special thanks to past presenter

docs.google.com

 

 

 Inside look at modern web browser

구글 엔지니어가 직접 만든 문서이다. 가장 자세하게 전반적으로 크롬 브라우저의 동작을 설명한 문서이다.

어떻게 기여하는가?

크로미엄 프로젝트에서 공식적으로 만든 기여를 위한 안내서(Contributing to Chromium)을 먼저 읽어본다. 크로미엄 코드는 C++로 만들어져있으므로 기본적으로 Google C++ Style Guide를 지키고 예외적은 것은 Chromium C++ style guide 로 정리해두었다.  크로미엄 프로젝트는 조금은 느리지만 가능한 모던C++ 기능을 많이 수용하려고 노력하고 있다. 현재는 C++14를 목표로 필요한 기능을 적용하고 있다. 네이버 Deview에서 발표된 "Modern C++ 무조건 써야해?"도 읽어보면 좋다.

또한 크로미엄 프로젝트에서 자체 제공하는 여러 클래스 라이브러리가 있는데, 이는 크로스 플랫폼을 지원을 위해 개발되었다. C++ 표준 라이브러리로 조금씩 대체되고 있지만, 사용방법을 알아두면 코드를 이해하는데 도움이 있다. 몇가지 예제가 있으니 참고 바란다.

버그를 찾자.

Chromium issue tracke사이트에서 버그를 검색해본다.

이번 글은 여기까지, 다음글에서는 패치를 올리고 리뷰 받는 법을 소개해볼까 한다.

 

댓글()

오픈소스 VR 프로젝트(OpenHMD project)

카테고리 없음|2021. 4. 28. 17:40

리눅스에서 VR 컨텐츠를 즐길 수 있는 방법은 없을까해서 찾아보니, 오픈소스로 여러 VR 기기를 지원하는 프로젝트를 찾게되었다.

 

OpenHMD – FOSS HMD drivers for the people

OpenHMD aims to provide a Free and Open Source API and drivers for immersive technology, such as head mounted displays with built in head tracking. Our aim is to implement support for as many devices as possible in a portable, cross-platform package. Devic

www.openhmd.net

시중에 나와있는 많은 VR기기를 지원하지만 특히,  오큘러스(Oclulus) 기기를 잘 지원하는 것 같다. 일반적으로 VR 기기를 리눅스에 연결하면 스크린을 그냥 외부 모니터로 인식해서 그냥 데스크탑이 하나 더 생기고, 센서 데이터는 포맷이 공개가 안된 경우가 대부분이라 약간의 해킹이 필요하다. 실제 스팀VR이 리눅스를 지원하기는 하나 공식적인 것은 아니고 실험적인 성격이 강해서 제대로 안되는 부분이 많은 것 같다. 이 프로젝트에서 해킹으로 각종 센서와 조이스틱을 지원하고 네이티브 환경에서 VR 컨텐츠를 만들어볼 수 있는 것을 지원하고 있다.  게임 엔진에서 사용할 수 있는 드라이버도 만들고 있다.

아래 데모를 보면 이 프로젝트에서 무엇을 하는지 감이 올 것이다.

 

댓글()