2. 발표자
• 김윤수
• Tizen Platform Architect
• 전 삼성전자 무선사업부 수석 연구원
• Professional Tizen Application Development
저자 중 한 명
• “김윤수의 이상계를 꿈꾸며” 블로거
• http://yesarang.tistory.com/
2
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
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
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
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
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
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