SlideShare a Scribd company logo
1 of 50
김윤수
Tizen Platform Architect
오픈소스 플랫폼 Tizen
발표자
• 김윤수
• Tizen Platform Architect
• 전 삼성전자 무선사업부 수석 연구원
• Professional Tizen Application Development
저자 중 한 명
• “김윤수의 이상계를 꿈꾸며” 블로거
• http://yesarang.tistory.com/
2
Credit
• 이 자료는
http://www.slideshare.net/YoonsooKim1/open-source-
mini-concert-session-3tizen 에서 다운로드 받을 수 있
습니다.
• 서주영, 김현중님의 “오픈 플랫폼 타이젠과 웹”의 전반
부 일부 인용
• http://www.slideshare.net/seojuyung/fa-linux-tizenfi
nalpresent
• Tizen Getting Started Guide 인용
• https://source.tizen.org/documentation/developer-g
uide/getting-started-guide
3이 자료는 CC-BY 3.0(저작자 표시)하에 배포됩니다
목차
1. Tizen이 뭔가요?
2. Why contribute to Tizen?
3. How to contribute?
4. 질의 응답
4
1. Tizen이 뭔가요?
5
Tizen이 뭔가요?
• 오픈 소스 플랫폼
• 오픈 소스 프로젝트
6
플랫폼이란?
• 기차역 플랫폼?
• 사람들이 기차를 타고 내리게
해주는 곳
• 컴퓨팅 플랫폼
• 컴퓨팅을 위해 사람들이 모이게 하는 곳
• Application 을 실행 가능하게 해주는 실행 환경
• 전통적으로 Hardware + OS + run-time libraries 를
뜻함
• 요즘은 Service + Open API 등까지 포함
7
플랫폼 개발의 가치
• Application 을 실행 가능하게 해주는 실행 환경
• 하나의 Application이 많은 사람들에 의해 유용
하게 사용됨: Evernote, KakaoTalk, Facebook,
Browser, Office 등
• 플랫폼 개발이란 이런 Application을 개발 및 실
행 가능한 환경을 만들어 주는 것
• Internet & Web, Windows, iOS, Android 이후의
혁명적 변화 주목
8
플랫폼 개발 참여의 길
• (졸업 후) 플랫폼 개발 회사에 취직?
• Microsoft, Google, Apple, Samsung, Amazon, LG,
RedHat, Ubuntu, openSUSE ?
• 한정된 선택지, 매우 좁은 관문
• 왜? 플랫폼은 매우 방대하고 복잡한 Engineering을 필
요로 함.
• 다른 방법은?
• Tizen과 같은 오픈 소스 플랫폼 프로젝트 참여
9
Closed vs Open 플랫폼
• Closed 플랫폼
• 특정 사람들에게만 App을 개발할 수 있는 환경(정보)
제공
• 그 옛날 mainframe OS, Classic Mac OS
• App 개발 조차도 한정되어 있음
• Open 플랫폼
• 누구라도 App을 개발할 수 있는 환경(정보) 제공
• DOS, Windows, Mac OS X, iOS
• App 개발은 자유로우나 플랫폼 기여는 거의 불가능
10
오픈 소스 플랫폼
• Android, Tizen, Chrome OS, Firefox OS,
Fedora, Ubuntu, Gentoo, Open webOS 등
• 자유로운 App 개발뿐 아니라 플랫폼 기여
도 가능한 플랫폼
11
Android
• 가장 널리 알려지고 사용되고 있음
• 다양한 기기로 확대 중
• 그러나, 거의 모든 것을 Google이 Control
• 특정 버전에 적용된 나의 patch가 다음 버전에서 적
용되지 않고 버려질 가능성이 높음
• Google 내부 git에서 주기적으로 Android Open
Source Project(AOSP)로 dump 됨
• 실질적으로 Open Source가 아님
• Google Android 개발 부서 또는 Android
기기 제조사에 합류하고 싶다면 좋은 선택
12
Firefox OS
• Mozilla 재단
• 비교적 신생 플랫폼
• 약한 Industry Support
• 저가 스마트폰에 집중
• 잘 정의된 Open Governance Model 및 강
한 개발 Community
13
Chrome OS
• Google
• 비교적 신생 플랫폼
• Android와 달리 Open Governance Model
을 채택하고 있으나 Google의 영향력이 너
무 큼
• Web 기반의 Chromebook에만 집중
14
Fedora & Ubuntu & Gentoo
• 상용 플랫폼으로 활용되기에는 한계가 있음
• 강한 개발자 Community
• Open Governance Model
• 다양한 기기 및 Consumer 제품 적용의 한계
15
Tizen
• Linux Foundation 산하 공식 프로젝트
• 주 개발사: Samsung, Intel
• 신생 플랫폼
• 강한 Industry Support
• Tizen Association 19개 회원사
• 다양한 기기 적용을 목표로 함
• Web-centric 플랫폼
• 동시에 native app & hybrid app도 지원
• Tizen 3.0 이후로 Open Governance Model 채용
16
2. Why Contribute to Tizen?
17
다양한 기기 적용(1)
• 테스트 폰
– RD-210
– RD-PQ
18
다양한 기기 적용(2)
• 카메라
– NX300M
19
다양한 기기 적용(3)
• 기어2 (네오)
– SM-R380
– SM-R381
20
다양한 기기 적용(4)
• 스마트폰 (삼성Z)
21
다양한 기기 적용(5)
• 스마트 TV
22
Web-Centric
• HTML5 호환성 테스트 결과
– html5test.com
• HTML5로 App을 작성한 후 여러
기기에 적용할 수 있다면?
23
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 Touch
CSS3 WebGL
Worker
BT Call
LBS NFC
Msg… …
애플리케이션
웹 프레임워크
커널
코어 프레임워크
네이티브 프레임워크
Application
Framework
Graphics & UI Multimedia Web Messaging Location
Security System Base Connectivity Telephony PIM
Linux Kernel & device drivers
웹 애플리케이션 네이티브 애플리케이션
Public API
코어 애플리케이션
24
Native & Hybrid App 지원
25
• High Performance 및 Background Service
가 필요한 경우, Native App 또는 Hybrid
App으로 작성 가능
• Web-Centric Computing으로 발전하기 위
한 smooth migration path 로 작용
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 o
pen source / collaborative”
• Feature roadmap through Features JIRA(https://bugs.tizen.org/j
ira/browse/PTF)
• API review through mailing list(tsg-arch-api@lists.tizen.org)
• Development discussion through dev@lists.tizen.org
• Code review through https://review.tizen.org/gerrit
3. How to Contribute?
27
System Infra
• Git : 소스 코드 관리
• Gerrit : 웹 기반 코드 리뷰
• OBS (Open Build Service)
- 빌드 시스템 배포판 생성 플랫폼
- 변경사항을 제출하고
빌드할 수 있는 협업 플랫폼
28
Roles & Responsibilities
• Developers
• Maintainers
• Reviewers
• Release Engineers
• QA Engineers
29
Development Flow
30
Becoming a Developer(1/4)
• Registering an Account
- https://www.tizen.org/user/register
31
Becoming a Developer(2/4)
• Configuring SSH for Gerrit Access
$ ssh-keygen
Enter 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 <<EOT
Host tizen review.tizen.org
Hostname review.tizen.org
IdentityFile ~/.ssh/id_rsa
User <The Above Account>
Port 29418
EOT
Becoming a Developer(3/4)
•Login to https://review.tizen/org/gerrit
Using the account in the previous page
•Your name on the upper right corner → Settings
→ SSH Public Keys → Add Key…
Copy & Paste all content of ~/.ssh/id_rsa.pub
33
Becoming a Developer(4/4)
[ 여기까지 확인하는 방법 ]
$ ssh tizen
The authenticity of host '[review.tizen.org]:29418 ([198.145.20.13]:29418)' can't be esta
blished.
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)? yes
Warning: Permanently added '[review.tizen.org]:29418,[198.145.20.13]:29418' (RSA) to t
he 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://yourid@review.tizen.org:29418/REPOSIORY_NAME.git
Connection to review.tizen.org closed.
37
Configuring Git
$ git config --global user.name <First_Name Last_Name>
$ git config --global user.email "<E-mail_Address>"
38
Installing Tools
$ sudo vim /etc/apt/sources.list
Add the following line
deb http://download.tizen.org/tools/latest-rele
ase/Ubuntu_14.04 /
$ sudo apt-get update
$ sudo apt-get install gbs mic lthor
39
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/f
ramework/web/webkit-efl
40
Downloading Source(2/2)
Downloading all project for a specific profile
$ mkdir ~/bin/
$ PATH=~/bin:$PATH
$ curl http://commondatastorage.googleapis.com/git-repo-downl
oads/repo > ~/bin/repo
$ sudo chmod a+x ~/bin/repo
$ mkdir tizen
$ cd tizen
$ repo init -u ssh://<Username>@review.tizen.org:29418/scm/ma
nifest -b tizen -m mobile.xml
$ repo sync
41
Building Packages(1/2)
Checking out build configuration: vim ~/tizen/.gbs.conf
[general]
tmpdir=/var/tmp/
profile = profile.tizen3.0_mobile
work_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_arm
buildconf=${work_dir}/scm/meta/build-config/build.conf
42
Building Packages(2/2)
l Building All Packages
l$ accel_pkgs="bash,bzip2-libs,c-ares,cmake,coreutils,dif
futils,eglibc,elfutils-libelf,elfutils-libs,elfutils,fdupes,file,fin
dutils,gawk,gmp,gzip,libacl,libattr,libcap,libcurl,libfile,libg
cc,liblua,libstdc++,make,mpc,mpfr,ncurses-libs,nodejs,ns
pr,nss-softokn-freebl,nss,openssl,patch,popt,rpm-build,r
pm-libs,rpm,sed,sqlite,tar,xz-libs,zlib,binutils,gcc“
l$ gbs build -A armv7l --threads=4 --clean-once --excl
ude=${accel_pkgs},filesystem,aul,libmm-sound,libtool
43
Submitting a Patch
$ cd <your_working_directory>
$ git add <your_change>
$ git commit
lGood commit messages
$ git push origin HEAD:refs/for/tizen
lCode review on gerrit
la patch will be merged on the following conditions:
lThe patch got at least one "+2" score and no "-2"
score in the Code Review category.
lThe patch got at least one "+1" score and no "-1"
score in the Verified category.
44
Submitting a Package to the Building Farm
$ gbs submit -c <Commit_ID> -m "<Comments>"
lTag: submit/$Tizen_Version/$(%Y%m%d.%H%M%S)
lIf the code change has already been merged by the Gerr
it, 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-sub
mitted after it is merged.
45
Creating a Tizen image
# kickstart file for armv7l
$ wget http://download.tizen.org/releases/2.2.1/tizen-2.2.1/build
data/image-configs/RD-210.ks
repo --name=Tizen-main –baseurl=http://download.tizen.org/release
s/2.2.1/tizen-2.2.1/repos/tizen-main/armv7l/packages/ --save --ssl_ve
rify=no --priority=99
repo --name=Tizen-base –baseurl=http://download.tizen.org/releases
/2.2.1/tizen-2.2.1/repos/tizen-base/armv7l/packages/ --save --ssl_verif
y=no --priority=99
repo --name=local --baseurl=file:///home/user_id/GBS-ROOT/local/re
pos/tizen2.1/armv7l/ --priority=1
repo --name=local-toolchain –baseurl=file:///home/user_id/tizen/pre
-built/toolchain-arm/ --priority=2
$ gbs createimage --ks-file=RD-210.ks --tmpfs
46
Flashing a Tizen image
$ sudo apt-get install lthor
l1 Boot the phone into download mode.
lMake sure the phone is powered-off.
lPress <volume down> + <power> keys simultaneously.
lThe 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 cable.
l3 Flashing image
$ sudo lthor /path/to/tizen/image
47
4. 질의 응답
48
4. 질의 응답
• 무엇이든 물어보세요.
• 대답할 수 있는 것만 답변해드립니다 ^_^
49
웹사이트 및 문서
• http://www.tizen.org
• http://developer.tizen.org/sdk
• http://source.tizen.org/
• https://developer.tizen.org/documentation
50

More Related Content

Viewers also liked

Logrotate sh
Logrotate shLogrotate sh
Logrotate shBen Pope
 
Comparison of Unix and Linux Log File Management Tools by Dusan Baljevic
Comparison of Unix and Linux Log File Management Tools by Dusan BaljevicComparison of Unix and Linux Log File Management Tools by Dusan Baljevic
Comparison of Unix and Linux Log File Management Tools by Dusan BaljevicCircling Cycle
 
syslog-ng: from log collection to processing and information extraction
syslog-ng: from log collection to processing and information extractionsyslog-ng: from log collection to processing and information extraction
syslog-ng: from log collection to processing and information extractionBalaBit
 
Linux Process & CF scheduling
Linux Process & CF schedulingLinux Process & CF scheduling
Linux Process & CF schedulingSangJung Woo
 
미디어오늘 저널리즘의미래 연결의 진화 - 매직에코 최형욱
미디어오늘 저널리즘의미래 연결의 진화 - 매직에코 최형욱미디어오늘 저널리즘의미래 연결의 진화 - 매직에코 최형욱
미디어오늘 저널리즘의미래 연결의 진화 - 매직에코 최형욱Hugh Choi 최형욱
 
Tizen introduction & architecture
Tizen introduction & architectureTizen introduction & architecture
Tizen introduction & architectureYoonsoo Kim
 
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠SangJung Woo
 
Internet of things : 세상의 모든것들이 연결되는 날 - 최형욱
 Internet of things : 세상의 모든것들이 연결되는 날 - 최형욱 Internet of things : 세상의 모든것들이 연결되는 날 - 최형욱
Internet of things : 세상의 모든것들이 연결되는 날 - 최형욱Hugh Choi 최형욱
 

Viewers also liked (13)

Syslog
SyslogSyslog
Syslog
 
Logrotate sh
Logrotate shLogrotate sh
Logrotate sh
 
Comparison of Unix and Linux Log File Management Tools by Dusan Baljevic
Comparison of Unix and Linux Log File Management Tools by Dusan BaljevicComparison of Unix and Linux Log File Management Tools by Dusan Baljevic
Comparison of Unix and Linux Log File Management Tools by Dusan Baljevic
 
syslog-ng: from log collection to processing and information extraction
syslog-ng: from log collection to processing and information extractionsyslog-ng: from log collection to processing and information extraction
syslog-ng: from log collection to processing and information extraction
 
RPM (LINUX)
RPM (LINUX)RPM (LINUX)
RPM (LINUX)
 
Syslog
SyslogSyslog
Syslog
 
Linux Process & CF scheduling
Linux Process & CF schedulingLinux Process & CF scheduling
Linux Process & CF scheduling
 
Git & GitHub
Git & GitHubGit & GitHub
Git & GitHub
 
Git & G
Git & GGit & G
Git & G
 
미디어오늘 저널리즘의미래 연결의 진화 - 매직에코 최형욱
미디어오늘 저널리즘의미래 연결의 진화 - 매직에코 최형욱미디어오늘 저널리즘의미래 연결의 진화 - 매직에코 최형욱
미디어오늘 저널리즘의미래 연결의 진화 - 매직에코 최형욱
 
Tizen introduction & architecture
Tizen introduction & architectureTizen introduction & architecture
Tizen introduction & architecture
 
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
 
Internet of things : 세상의 모든것들이 연결되는 날 - 최형욱
 Internet of things : 세상의 모든것들이 연결되는 날 - 최형욱 Internet of things : 세상의 모든것들이 연결되는 날 - 최형욱
Internet of things : 세상의 모든것들이 연결되는 날 - 최형욱
 

Similar to Open Source Mini Concert-Session 3-Tizen

Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsminseok kim
 
The growth process of open source projects
The growth process of open source projectsThe growth process of open source projects
The growth process of open source projectsKevin Kim
 
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewOpen Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewMinsuk Lee
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기Sumin Byeon
 
DevSecOps 그리고 협업 - GitLab
DevSecOps 그리고 협업 - GitLabDevSecOps 그리고 협업 - GitLab
DevSecOps 그리고 협업 - GitLabGuenjun Yoo
 
PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장MinPa Lee
 
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료지원 정
 
RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기 RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기 Devgear
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 YoungSu Son
 
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Sung-tae Ryu
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기Chris Ohk
 
Open source community Building
Open source community BuildingOpen source community Building
Open source community BuildingKevin Kim
 
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014NDOORS
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST_NHNent
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기SeungYong Baek
 
[오픈소스컨설팅]오픈소스메일시스템
[오픈소스컨설팅]오픈소스메일시스템[오픈소스컨설팅]오픈소스메일시스템
[오픈소스컨설팅]오픈소스메일시스템Ji-Woong Choi
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1YoungSu Son
 
크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core
크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core
크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core명신 김
 
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략Ji-Woong Choi
 

Similar to Open Source Mini Concert-Session 3-Tizen (20)

Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vs
 
The growth process of open source projects
The growth process of open source projectsThe growth process of open source projects
The growth process of open source projects
 
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewOpen Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code review
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
 
DevSecOps 그리고 협업 - GitLab
DevSecOps 그리고 협업 - GitLabDevSecOps 그리고 협업 - GitLab
DevSecOps 그리고 협업 - GitLab
 
PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장
 
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
 
RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기 RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망
 
Gitlab.key
Gitlab.keyGitlab.key
Gitlab.key
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
Open source community Building
Open source community BuildingOpen source community Building
Open source community Building
 
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
 
[오픈소스컨설팅]오픈소스메일시스템
[오픈소스컨설팅]오픈소스메일시스템[오픈소스컨설팅]오픈소스메일시스템
[오픈소스컨설팅]오픈소스메일시스템
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1
 
크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core
크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core
크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core
 
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
 

Open Source Mini Concert-Session 3-Tizen

  • 2. 발표자 • 김윤수 • Tizen Platform Architect • 전 삼성전자 무선사업부 수석 연구원 • Professional Tizen Application Development 저자 중 한 명 • “김윤수의 이상계를 꿈꾸며” 블로거 • http://yesarang.tistory.com/ 2
  • 3. Credit • 이 자료는 http://www.slideshare.net/YoonsooKim1/open-source- mini-concert-session-3tizen 에서 다운로드 받을 수 있 습니다. • 서주영, 김현중님의 “오픈 플랫폼 타이젠과 웹”의 전반 부 일부 인용 • http://www.slideshare.net/seojuyung/fa-linux-tizenfi nalpresent • Tizen Getting Started Guide 인용 • https://source.tizen.org/documentation/developer-g uide/getting-started-guide 3이 자료는 CC-BY 3.0(저작자 표시)하에 배포됩니다
  • 4. 목차 1. Tizen이 뭔가요? 2. Why contribute to Tizen? 3. How to contribute? 4. 질의 응답 4
  • 6. Tizen이 뭔가요? • 오픈 소스 플랫폼 • 오픈 소스 프로젝트 6
  • 7. 플랫폼이란? • 기차역 플랫폼? • 사람들이 기차를 타고 내리게 해주는 곳 • 컴퓨팅 플랫폼 • 컴퓨팅을 위해 사람들이 모이게 하는 곳 • Application 을 실행 가능하게 해주는 실행 환경 • 전통적으로 Hardware + OS + run-time libraries 를 뜻함 • 요즘은 Service + Open API 등까지 포함 7
  • 8. 플랫폼 개발의 가치 • Application 을 실행 가능하게 해주는 실행 환경 • 하나의 Application이 많은 사람들에 의해 유용 하게 사용됨: Evernote, KakaoTalk, Facebook, Browser, Office 등 • 플랫폼 개발이란 이런 Application을 개발 및 실 행 가능한 환경을 만들어 주는 것 • Internet & Web, Windows, iOS, Android 이후의 혁명적 변화 주목 8
  • 9. 플랫폼 개발 참여의 길 • (졸업 후) 플랫폼 개발 회사에 취직? • Microsoft, Google, Apple, Samsung, Amazon, LG, RedHat, Ubuntu, openSUSE ? • 한정된 선택지, 매우 좁은 관문 • 왜? 플랫폼은 매우 방대하고 복잡한 Engineering을 필 요로 함. • 다른 방법은? • Tizen과 같은 오픈 소스 플랫폼 프로젝트 참여 9
  • 10. Closed vs Open 플랫폼 • Closed 플랫폼 • 특정 사람들에게만 App을 개발할 수 있는 환경(정보) 제공 • 그 옛날 mainframe OS, Classic Mac OS • App 개발 조차도 한정되어 있음 • Open 플랫폼 • 누구라도 App을 개발할 수 있는 환경(정보) 제공 • DOS, Windows, Mac OS X, iOS • App 개발은 자유로우나 플랫폼 기여는 거의 불가능 10
  • 11. 오픈 소스 플랫폼 • Android, Tizen, Chrome OS, Firefox OS, Fedora, Ubuntu, Gentoo, Open webOS 등 • 자유로운 App 개발뿐 아니라 플랫폼 기여 도 가능한 플랫폼 11
  • 12. Android • 가장 널리 알려지고 사용되고 있음 • 다양한 기기로 확대 중 • 그러나, 거의 모든 것을 Google이 Control • 특정 버전에 적용된 나의 patch가 다음 버전에서 적 용되지 않고 버려질 가능성이 높음 • Google 내부 git에서 주기적으로 Android Open Source Project(AOSP)로 dump 됨 • 실질적으로 Open Source가 아님 • Google Android 개발 부서 또는 Android 기기 제조사에 합류하고 싶다면 좋은 선택 12
  • 13. Firefox OS • Mozilla 재단 • 비교적 신생 플랫폼 • 약한 Industry Support • 저가 스마트폰에 집중 • 잘 정의된 Open Governance Model 및 강 한 개발 Community 13
  • 14. Chrome OS • Google • 비교적 신생 플랫폼 • Android와 달리 Open Governance Model 을 채택하고 있으나 Google의 영향력이 너 무 큼 • Web 기반의 Chromebook에만 집중 14
  • 15. Fedora & Ubuntu & Gentoo • 상용 플랫폼으로 활용되기에는 한계가 있음 • 강한 개발자 Community • Open Governance Model • 다양한 기기 및 Consumer 제품 적용의 한계 15
  • 16. Tizen • Linux Foundation 산하 공식 프로젝트 • 주 개발사: Samsung, Intel • 신생 플랫폼 • 강한 Industry Support • Tizen Association 19개 회원사 • 다양한 기기 적용을 목표로 함 • Web-centric 플랫폼 • 동시에 native app & hybrid app도 지원 • Tizen 3.0 이후로 Open Governance Model 채용 16
  • 17. 2. Why Contribute to Tizen? 17
  • 18. 다양한 기기 적용(1) • 테스트 폰 – RD-210 – RD-PQ 18
  • 19. 다양한 기기 적용(2) • 카메라 – NX300M 19
  • 20. 다양한 기기 적용(3) • 기어2 (네오) – SM-R380 – SM-R381 20
  • 21. 다양한 기기 적용(4) • 스마트폰 (삼성Z) 21
  • 23. Web-Centric • HTML5 호환성 테스트 결과 – html5test.com • HTML5로 App을 작성한 후 여러 기기에 적용할 수 있다면? 23
  • 24. 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 Touch CSS3 WebGL Worker BT Call LBS NFC Msg… … 애플리케이션 웹 프레임워크 커널 코어 프레임워크 네이티브 프레임워크 Application Framework Graphics & UI Multimedia Web Messaging Location Security System Base Connectivity Telephony PIM Linux Kernel & device drivers 웹 애플리케이션 네이티브 애플리케이션 Public API 코어 애플리케이션 24
  • 25. Native & Hybrid App 지원 25 • High Performance 및 Background Service 가 필요한 경우, Native App 또는 Hybrid App으로 작성 가능 • Web-Centric Computing으로 발전하기 위 한 smooth migration path 로 작용
  • 26. 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 o pen source / collaborative” • Feature roadmap through Features JIRA(https://bugs.tizen.org/j ira/browse/PTF) • API review through mailing list(tsg-arch-api@lists.tizen.org) • Development discussion through dev@lists.tizen.org • Code review through https://review.tizen.org/gerrit
  • 27. 3. How to Contribute? 27
  • 28. System Infra • Git : 소스 코드 관리 • Gerrit : 웹 기반 코드 리뷰 • OBS (Open Build Service) - 빌드 시스템 배포판 생성 플랫폼 - 변경사항을 제출하고 빌드할 수 있는 협업 플랫폼 28
  • 29. Roles & Responsibilities • Developers • Maintainers • Reviewers • Release Engineers • QA Engineers 29
  • 31. Becoming a Developer(1/4) • Registering an Account - https://www.tizen.org/user/register 31
  • 32. Becoming a Developer(2/4) • Configuring SSH for Gerrit Access $ ssh-keygen Enter 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 <<EOT Host tizen review.tizen.org Hostname review.tizen.org IdentityFile ~/.ssh/id_rsa User <The Above Account> Port 29418 EOT
  • 33. Becoming a Developer(3/4) •Login to https://review.tizen/org/gerrit Using the account in the previous page •Your name on the upper right corner → Settings → SSH Public Keys → Add Key… Copy & Paste all content of ~/.ssh/id_rsa.pub 33
  • 34.
  • 35.
  • 36.
  • 37. Becoming a Developer(4/4) [ 여기까지 확인하는 방법 ] $ ssh tizen The authenticity of host '[review.tizen.org]:29418 ([198.145.20.13]:29418)' can't be esta blished. 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)? yes Warning: Permanently added '[review.tizen.org]:29418,[198.145.20.13]:29418' (RSA) to t he 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://yourid@review.tizen.org:29418/REPOSIORY_NAME.git Connection to review.tizen.org closed. 37
  • 38. Configuring Git $ git config --global user.name <First_Name Last_Name> $ git config --global user.email "<E-mail_Address>" 38
  • 39. Installing Tools $ sudo vim /etc/apt/sources.list Add the following line deb http://download.tizen.org/tools/latest-rele ase/Ubuntu_14.04 / $ sudo apt-get update $ sudo apt-get install gbs mic lthor 39
  • 40. 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/f ramework/web/webkit-efl 40
  • 41. Downloading Source(2/2) Downloading all project for a specific profile $ mkdir ~/bin/ $ PATH=~/bin:$PATH $ curl http://commondatastorage.googleapis.com/git-repo-downl oads/repo > ~/bin/repo $ sudo chmod a+x ~/bin/repo $ mkdir tizen $ cd tizen $ repo init -u ssh://<Username>@review.tizen.org:29418/scm/ma nifest -b tizen -m mobile.xml $ repo sync 41
  • 42. Building Packages(1/2) Checking out build configuration: vim ~/tizen/.gbs.conf [general] tmpdir=/var/tmp/ profile = profile.tizen3.0_mobile work_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_arm buildconf=${work_dir}/scm/meta/build-config/build.conf 42
  • 43. Building Packages(2/2) l Building All Packages l$ accel_pkgs="bash,bzip2-libs,c-ares,cmake,coreutils,dif futils,eglibc,elfutils-libelf,elfutils-libs,elfutils,fdupes,file,fin dutils,gawk,gmp,gzip,libacl,libattr,libcap,libcurl,libfile,libg cc,liblua,libstdc++,make,mpc,mpfr,ncurses-libs,nodejs,ns pr,nss-softokn-freebl,nss,openssl,patch,popt,rpm-build,r pm-libs,rpm,sed,sqlite,tar,xz-libs,zlib,binutils,gcc“ l$ gbs build -A armv7l --threads=4 --clean-once --excl ude=${accel_pkgs},filesystem,aul,libmm-sound,libtool 43
  • 44. Submitting a Patch $ cd <your_working_directory> $ git add <your_change> $ git commit lGood commit messages $ git push origin HEAD:refs/for/tizen lCode review on gerrit la patch will be merged on the following conditions: lThe patch got at least one "+2" score and no "-2" score in the Code Review category. lThe patch got at least one "+1" score and no "-1" score in the Verified category. 44
  • 45. Submitting a Package to the Building Farm $ gbs submit -c <Commit_ID> -m "<Comments>" lTag: submit/$Tizen_Version/$(%Y%m%d.%H%M%S) lIf the code change has already been merged by the Gerr it, 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-sub mitted after it is merged. 45
  • 46. Creating a Tizen image # kickstart file for armv7l $ wget http://download.tizen.org/releases/2.2.1/tizen-2.2.1/build data/image-configs/RD-210.ks repo --name=Tizen-main –baseurl=http://download.tizen.org/release s/2.2.1/tizen-2.2.1/repos/tizen-main/armv7l/packages/ --save --ssl_ve rify=no --priority=99 repo --name=Tizen-base –baseurl=http://download.tizen.org/releases /2.2.1/tizen-2.2.1/repos/tizen-base/armv7l/packages/ --save --ssl_verif y=no --priority=99 repo --name=local --baseurl=file:///home/user_id/GBS-ROOT/local/re pos/tizen2.1/armv7l/ --priority=1 repo --name=local-toolchain –baseurl=file:///home/user_id/tizen/pre -built/toolchain-arm/ --priority=2 $ gbs createimage --ks-file=RD-210.ks --tmpfs 46
  • 47. Flashing a Tizen image $ sudo apt-get install lthor l1 Boot the phone into download mode. lMake sure the phone is powered-off. lPress <volume down> + <power> keys simultaneously. lThe 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 cable. l3 Flashing image $ sudo lthor /path/to/tizen/image 47
  • 49. 4. 질의 응답 • 무엇이든 물어보세요. • 대답할 수 있는 것만 답변해드립니다 ^_^ 49
  • 50. 웹사이트 및 문서 • http://www.tizen.org • http://developer.tizen.org/sdk • http://source.tizen.org/ • https://developer.tizen.org/documentation 50