50
김김김 Tizen Platform Architect 오오오오 오오오 Tizen

Open Source Mini Concert-Session 3-Tizen

Embed Size (px)

DESCRIPTION

Open Source Platform 중의 하나인 Tizen을 소개하고, 왜 Tizen 에 contribution 하면 좋은지, 어떻게 Tizen에 contribution 할 수 있는지 설명합니다.

Citation preview

Page 1: Open Source Mini Concert-Session 3-Tizen

김윤수Tizen Platform Architect

오픈소스 플랫폼 Tizen

Page 2: Open Source Mini Concert-Session 3-Tizen

발표자• 김윤수

• Tizen Platform Architect• 전 삼성전자 무선사업부 수석 연구원• Professional Tizen Application Devel-

opment 저자 중 한 명• “ 김윤수의 이상계를 꿈꾸며” 블로거

• http://yesarang.tistory.com/

2

Page 3: Open Source Mini Concert-Session 3-Tizen

Credit• 이 자료는 http://

www.slideshare.net/YoonsooKim1/open-source-mini-concert-session-3tizen 에서 다운로드 받을 수 있습니다 .

• 서주영 , 김현중님의 “오픈 플랫폼 타이젠과 웹”의 전반부 일부 인용• http://www.slideshare.net/seojuyung/fa-linux-

tizenfinalpresent• Tizen Getting Started Guide 인용

• https://source.tizen.org/documentation/devel-oper-guide/getting-started-guide

3 이 자료는 CC-BY 3.0( 저작자 표시 ) 하에 배포됩니다

Page 4: Open Source Mini Concert-Session 3-Tizen

목차1. Tizen 이 뭔가요 ?2. Why contribute to Tizen?3. How to contribute?4. 질의 응답

4

Page 5: Open Source Mini Concert-Session 3-Tizen

1. Tizen 이 뭔가요 ?

5

Page 6: Open Source Mini Concert-Session 3-Tizen

Tizen 이 뭔가요 ?

• 오픈 소스 플랫폼• 오픈 소스 프로젝트

6

Page 7: Open Source Mini Concert-Session 3-Tizen

플랫폼이란 ?

• 기차역 플랫폼 ?• 사람들이 기차를 타고 내리게 해주는 곳

• 컴퓨팅 플랫폼• 컴퓨팅을 위해 사람들이 모이게 하는 곳• Application 을 실행 가능하게 해주는 실행 환경• 전통적으로 Hardware + OS + run-time li-

braries 를 뜻함• 요즘은 Service + Open API 등까지 포함

7

Page 8: Open Source Mini Concert-Session 3-Tizen

플랫폼 개발의 가치

• Application 을 실행 가능하게 해주는 실행 환경

• 하나의 Application 이 많은 사람들에 의해 유용하게 사용됨 : Evernote, KakaoTalk, Face-book, Browser, Office 등

• 플랫폼 개발이란 이런 Application 을 개발 및 실행 가능한 환경을 만들어 주는 것

• Internet & Web, Windows, iOS, Android 이후의 혁명적 변화 주목

8

Page 9: Open Source Mini Concert-Session 3-Tizen

플랫폼 개발 참여의 길

• ( 졸업 후 ) 플랫폼 개발 회사에 취직 ?• Microsoft, Google, Apple, Samsung, Amazon,

LG, RedHat, Ubuntu, openSUSE ?• 한정된 선택지 , 매우 좁은 관문• 왜 ? 플랫폼은 매우 방대하고 복잡한 Engineering

을 필요로 함 .

• 다른 방법은 ?• Tizen 과 같은 오픈 소스 플랫폼 프로젝트 참여

9

Page 10: Open Source Mini Concert-Session 3-Tizen

Closed vs Open 플랫폼

• Closed 플랫폼• 특정 사람들에게만 App 을 개발할 수 있는 환경 (

정보 ) 제공• 그 옛날 mainframe OS, Classic Mac OS• App 개발 조차도 한정되어 있음

• Open 플랫폼• 누구라도 App 을 개발할 수 있는 환경 ( 정보 ) 제공• DOS, Windows, Mac OS X, iOS• App 개발은 자유로우나 플랫폼 기여는 거의 불가능

10

Page 11: Open Source Mini Concert-Session 3-Tizen

오픈 소스 플랫폼

• Android, Tizen, Chrome OS, Firefox OS, Fedora, Ubuntu, Gentoo, Open webOS 등

• 자유로운 App 개발뿐 아니라 플랫폼 기여도 가능한 플랫폼

11

Page 12: Open Source Mini Concert-Session 3-Tizen

Android

• 가장 널리 알려지고 사용되고 있음• 다양한 기기로 확대 중• 그러나 , 거의 모든 것을 Google 이 Con-

trol• 특정 버전에 적용된 나의 patch 가 다음 버전에서

적용되지 않고 버려질 가능성이 높음• Google 내부 git 에서 주기적으로 Android Open

Source Project(AOSP) 로 dump 됨• 실질적으로 Open Source 가 아님

• Google Android 개발 부서 또는 An-droid 기기 제조사에 합류하고 싶다면 좋은 선택

12

Page 13: Open Source Mini Concert-Session 3-Tizen

Firefox OS

• Mozilla 재단• 비교적 신생 플랫폼• 약한 Industry Support• 저가 스마트폰에 집중• 잘 정의된 Open Governance Model 및

강한 개발 Community

13

Page 14: Open Source Mini Concert-Session 3-Tizen

Chrome OS

• Google• 비교적 신생 플랫폼• Android 와 달리 Open Governance

Model 을 채택하고 있으나 Google 의 영향력이 너무 큼

• Web 기반의 Chromebook 에만 집중

14

Page 15: Open Source Mini Concert-Session 3-Tizen

Fedora & Ubuntu & Gentoo

• 상용 플랫폼으로 활용되기에는 한계가 있음• 강한 개발자 Community• Open Governance Model• 다양한 기기 및 Consumer 제품 적용의 한계

15

Page 16: Open Source Mini Concert-Session 3-Tizen

Tizen

• Linux Foundation 산하 공식 프로젝트• 주 개발사 : Samsung, Intel• 신생 플랫폼• 강한 Industry Support

• Tizen Association 19 개 회원사• 다양한 기기 적용을 목표로 함• Web-centric 플랫폼

• 동시에 native app & hybrid app 도 지원• Tizen 3.0 이후로 Open Governance Model

채용

16

Page 17: Open Source Mini Concert-Session 3-Tizen

2. Why Contribute to Ti-zen?

17

Page 18: Open Source Mini Concert-Session 3-Tizen

다양한 기기 적용 (1)

• 테스트 폰– RD-210– RD-PQ

18

Page 19: Open Source Mini Concert-Session 3-Tizen

다양한 기기 적용 (2)

• 카메라– NX300M

19

Page 20: Open Source Mini Concert-Session 3-Tizen

다양한 기기 적용 (3)

• 기어 2 ( 네오 )– SM-R380– SM-R381

20

Page 21: Open Source Mini Concert-Session 3-Tizen

다양한 기기 적용 (4)

• 스마트폰 ( 삼성 Z)

21

Page 22: Open Source Mini Concert-Session 3-Tizen

다양한 기기 적용 (5)

• 스마트 TV

22

Page 23: Open Source Mini Concert-Session 3-Tizen

Web-Centric

• HTML5 호환성 테스트 결과– html5test.com

• HTML5 로 App 을 작성한 후 여러 기기에 적용할 수 있다면 ?

23

Page 24: Open Source Mini Concert-Session 3-Tizen

Native & Hybrid App 지원

Base/IO/Text/Locales

Graphics/UINet/Telephony/Messaging

UixLocationsSocial/Content Web/XmlMedia

App/Security/System Services

W3C/HTML5 Device APIs

Web Runtime

Video TouchCSS3 WebGL

Worker

BT CallLBS NFCMsg… …

애플리케이션

웹 프레임워크

커널

코어 프레임워크

네이티브 프레임워크

ApplicationFramework

Graphics & UI Multimedia Web Messaging Location

Security System Base Connectivity Telephony PIM

Linux Kernel & device drivers

웹 애플리케이션 네이티브 애플리케이션

Public API

코어 애플리케이션

24

Page 25: Open Source Mini Concert-Session 3-Tizen

Native & Hybrid App 지원

25

• High Performance 및 Background Service 가 필요한 경우 , Native App 또는 Hybrid App 으로 작성 가능

• Web-Centric Computing 으로 발전하기 위한 smooth migration path 로 작용

Page 26: Open Source Mini Concert-Session 3-Tizen

Open Governance Model

• Open Governance for Tizen 3.0• Tizen Developer Summit Korea 2013 에서 발표• http://

events.linuxfoundation.org/sites/events/files/slides/Tizen%20Development%20and%20Governance%20Model%20TDS%2020131111.pdf

• “Moving Tizen from 'source-available' to truly open source / collaborative”

• Feature roadmap through Features JIRA(https://bugs.tizen.org/jira/browse/PTF)

• API review through mailing list([email protected])

• Development discussion through [email protected]• Code review through https://review.tizen.org/gerrit

Page 27: Open Source Mini Concert-Session 3-Tizen

3. How to Contribute?

27

Page 28: Open Source Mini Concert-Session 3-Tizen

System Infra

• Git : 소스 코드 관리• Gerrit : 웹 기반 코드 리뷰• OBS (Open Build Service) - 빌드 시스템 배포판 생성 플랫폼 - 변경사항을 제출하고 빌드할 수 있는 협업 플랫폼

28

Page 29: Open Source Mini Concert-Session 3-Tizen

Roles & Responsibilities

• Developers• Maintainers• Reviewers• Release Engineers• QA Engineers

29

Page 30: Open Source Mini Concert-Session 3-Tizen

Development Flow

30

Page 31: Open Source Mini Concert-Session 3-Tizen

Becoming a Developer(1/4)

• Registering an Account - https://www.tizen.org/user/register

31

Page 32: Open Source Mini Concert-Session 3-Tizen

Becoming a Developer(2/4)

• Configuring SSH for Gerrit Access$ ssh-keygenEnter file in which to save the key (/home/<User>/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):Enter same passphrase again:--> ~/.ssh/id_rsa.pub(public key) 파일도 생성됨$ cat > ~/.ssh/config <<EOTHost tizen review.tizen.orgHostname review.tizen.orgIdentityFile ~/.ssh/id_rsaUser <The Above Account>Port 29418EOT

Page 33: Open Source Mini Concert-Session 3-Tizen

Becoming a Developer(3/4)

•Login to https://review.tizen/org/gerritUsing the account in the previous page

•Your name on the upper right corner → Set-tings → SSH Public Keys → Add Key…

Copy & Paste all content of ~/.ssh/id_rsa.pub

33

Page 34: Open Source Mini Concert-Session 3-Tizen
Page 35: Open Source Mini Concert-Session 3-Tizen
Page 36: Open Source Mini Concert-Session 3-Tizen
Page 37: Open Source Mini Concert-Session 3-Tizen

Becoming a Developer(4/4)

[ 여기까지 확인하는 방법 ]$ ssh tizenThe authenticity of host '[review.tizen.org]:29418 ([198.145.20.13]:29418)' can't be established.RSA key fingerprint is ca:5a:1d:6f:06:d4:ee:10:18:9f:b8:ef:ee:65:d5:fd.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '[review.tizen.org]:29418,[198.145.20.13]:29418' (RSA) to the list of known hosts. **** Welcome to Gerrit Code Review **** Hi Your Name, you have successfully connected over SSH. Unfortunately, interactive shells are disabled. To clone a hosted Git repository, use: git clone ssh://[email protected]:29418/REPOSIORY_NAME.gitConnection to review.tizen.org closed.

37

Page 38: Open Source Mini Concert-Session 3-Tizen

Configuring Git

$ git config --global user.name <First_Name Last_Name>

$ git config --global user.email "<E-mail_Address>"

38

Page 39: Open Source Mini Concert-Session 3-Tizen

Installing Tools

$ sudo vim /etc/apt/sources.listAdd the following line

deb http://download.tizen.org/tools/latest-release/Ubuntu_14.04 /

$ sudo apt-get update$ sudo apt-get install gbs mic lthor

39

Page 40: Open Source Mini Concert-Session 3-Tizen

Downloading Source(1/2)

Downloading one project$ ssh review.tizen.org gerrit ls-projects > tizen-projects$ git clone ssh://<Username>@review.tizen.org:29418/platform/frame-work/web/webkit-efl

40

Page 41: Open Source Mini Concert-Session 3-Tizen

Downloading Source(2/2) Downloading all project for a specific profile$ mkdir ~/bin/$ PATH=~/bin:$PATH$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo$ sudo chmod a+x ~/bin/repo$ mkdir tizen$ cd tizen$ repo init -u ssh://<Username>@review.tizen.org:29418/scm/manifest -b tizen -m mobile.xml$ repo sync

41

Page 42: Open Source Mini Concert-Session 3-Tizen

Building Packages(1/2) Checking out build configuration: vim ~/tizen/.gbs.conf[general]tmpdir=/var/tmp/profile = profile.tizen3.0_mobilework_dir=.[repo.tizen3.0_x86]url=${work_dir}/pre-built/toolchain-x86/[repo.tizen3.0_arm]url=${work_dir}/pre-built/toolchain-arm/[profile.tizen3.0_mobile]repos=repo.tizen3.0_x86,repo.tizen3.0_armbuildconf=${work_dir}/scm/meta/build-config/build.conf

42

Page 43: Open Source Mini Concert-Session 3-Tizen

Building Packages(2/2)l Building All Packages

l $ accel_pkgs="bash,bzip2-libs,c-ares,cmake,coreutils,diffutils,eglibc,elfutils-libelf,elfutils-libs,elfutils,fdupes,file,findutils,gawk,gmp,gzip,libacl,libattr,libcap,libcurl,libfile,libgcc,liblua,libstdc++,make,mpc,mpfr,ncurses-libs,nodejs,nspr,nss-softokn-freebl,nss,openssl,patch,popt,rpm-build,rpm-libs,rpm,sed,sqlite,tar,xz-libs,zlib,binutils,gcc“

l $ gbs build -A armv7l --threads=4 --clean-once --exclude=${accel_pkgs},filesystem,aul,libmm-sound,libtool 43

Page 44: Open Source Mini Concert-Session 3-Tizen

Submitting a Patch

$ cd <your_working_directory>$ git add <your_change>$ git commit

l Good commit messages$ git push origin HEAD:refs/for/tizenlCode review on gerrit

l a patch will be merged on the following condi-tions:

l The patch got at least one "+2" score and no "-2" score in the Code Review category.

l The patch got at least one "+1" score and no "-1" score in the Verified category.

44

Page 45: Open Source Mini Concert-Session 3-Tizen

Submitting a Package to the Building Farm

$ gbs submit -c <Commit_ID> -m "<Com-ments>"

l Tag: submit/$Tizen_Version/$(%Y%m%d.%H%M%S)

lIf the code change has already been merged by the Gerrit, a merge request will be created and release engineers will be notifed to review.lIf the patch has not been merged in Gerrit, the backend services will abort the operations and send email to the patch owner, to notify that the patch needs to be re-submitted after it is merged.

45

Page 46: Open Source Mini Concert-Session 3-Tizen

Creating a Tizen image

# kickstart file for armv7l$ wget http://download.tizen.org/releases/2.2.1/tizen-2.2.1/builddata/image-configs/RD-210.ksrepo --name=Tizen-main –baseurl=http://download.tizen.org/releases/2.2.1/tizen-2.2.1/repos/tizen-main/armv7l/packages/ --save --ssl_verify=no --priority=99repo --name=Tizen-base –baseurl=http://download.tizen.org/releases/2.2.1/tizen-2.2.1/repos/tizen-base/armv7l/packages/ --save --ssl_verify=no --priority=99repo --name=local --baseurl=file:///home/user_id/GBS-ROOT/local/repos/tizen2.1/armv7l/ --priority=1repo --name=local-toolchain –baseurl=file:///home/user_id/ti-zen/pre-built/toolchain-arm/ --priority=2$ gbs createimage --ks-file=RD-210.ks --tmpfs

46

Page 47: Open Source Mini Concert-Session 3-Tizen

Flashing a Tizen image

$ sudo apt-get install lthorl1 Boot the phone into download mode.

l Make sure the phone is powered-off.l Press <volume down> + <power> keys simulta-

neously.l The phone will boot up and the download mode

image will be displayed on the phone.l2 Connect the phone to the Linux PC with a USB ca-ble.l3 Flashing image$ sudo lthor /path/to/tizen/image

47

Page 48: Open Source Mini Concert-Session 3-Tizen

4. 질의 응답

48

Page 49: Open Source Mini Concert-Session 3-Tizen

4. 질의 응답• 무엇이든 물어보세요 .• 대답할 수 있는 것만 답변해드립니다 ^_^

49

Page 50: Open Source Mini Concert-Session 3-Tizen

웹사이트 및 문서• http://www.tizen.org• http://developer.tizen.org/sdk• http://source.tizen.org/• https://developer.tizen.org/documenta-tion

50