Presentation is loading. Please wait.

Presentation is loading. Please wait.

Oct-15-2010, Fri Name - Geunsik Lim - leemgs.at.gmail.com Nick - invain ( 인베인 ) Blog - 본 문서는 자유롭게 수정 및 재배포가 가능 하나,

Similar presentations


Presentation on theme: "Oct-15-2010, Fri Name - Geunsik Lim - leemgs.at.gmail.com Nick - invain ( 인베인 ) Blog - 본 문서는 자유롭게 수정 및 재배포가 가능 하나,"— Presentation transcript:

1 Oct-15-2010, Fri Name - Geunsik Lim e-Mail - leemgs.at.gmail.com Nick - invain ( 인베인 ) Blog - http://blog.naver.com/invain‏/ 본 문서는 자유롭게 수정 및 재배포가 가능 하나, 자료 이용시 “ 자료출처 : 6 회 Kandroid Seminar(Geunsik Lim)” 내용을 명시해야 합니다.

2 CONTENTS What is ChromeOS? Why do ChromeOS needs in Embedded Env? Chrome webOS Demonstration Chrome App Store for Business Model Zygote based ChromeOS WebOS Limitation Open-sources for Chrome Web-browser Linux Kernel for ChromeOS Operating System-level virtualization: Container Booting Sequence for ChromeOS Summary Q&A Technology Session

3 3/29 6 th Korea Android Conference What is Chrome OS? What is the official Name of Chrome OS? Chromium OS  Chromium Project + Ubuntu based on Debian Chromium OS  Chromium webOS Chrome OS  Chrome webOS Chromium OS is an open-source project that aims to provide a fast, simple, and more secure computing experience for people who spend most of their time on the web. Chrome’s support for HTML5 and its JavaScript engine(V8). - http://dev.w3.org/html5/spec/Overview.html Chromium Project : http://www.chromium.org

4 4/29 6 th Korea Android Conference Zygote based ChromeOS 1/3 Source - http://www.kandroid.org/board/board.php?board=kandroidseminar4&command=body&no=5 What is the major role of Zygote for Android platform? Chrome browser launches the zygote (#>chrome --type=zygote) which then forks of an instance of the renderer (#>chrome --type=renderer) or extension (#>chrome --type=extension) for each rendered (tab menu) or extension that it needs.

5 5/29 6 th Korea Android Conference Zygote based ChromeOS 2/3 Source - http://code.google.com/p/chromium/wiki/LinuxZygote The zygote process is triggered by the “--type=zygote” command line flag, which causes ZygoteMain (in./chrome/browser/zygote_main_linux.cc) to be run. The zygote is launched from./chrome/browser/zygote_host_linux.cc. Signaling the zygote for a new renderer happens in./chrome/browser/child_process_launcher.cc. You can use the “--zygote-cmd-prefix” flag to debug the zygote process. If you use “-- renderer-cmd-prefix” then the zygote will be bypassed and renderers will be exec'ed afresh every time. SELinux is preventing /opt/google/chrome/chrome-sandbox "write" access on oom_adj. /usr/lib/chromium-browser/chromium-browser --type=zygote

6 6/29 6 th Korea Android Conference Zygote based ChromeOS 3/3 bash Chromium-broswer init chromium-browser --type=zygote chromium-browser (Ancestor) Chromium-broswer chromium-browser for plugin module chromium-browser --type=renderer Renderer Thread1 (Tab Browser) Renderer Thread1 (Tab Browser) Renderer Thread2 (Tab Browser) Renderer Thread2 (Tab Browser) Renderer Thread3 (Tab Browser) Renderer Thread3 (Tab Browser) Plugin Thread (e.g: Flash) Plugin Thread (e.g: Flash) chromium-browser --type=plugin... Channel(26609.0x*******.********) fork exec PPID PID

7 7/29 6 th Korea Android Conference Chrome OS 의 Entire Layout 1. UI = Chrome Browser 2. Local Web Server 3. User Application Runs On Web Server 4. Good Bye Files 5. Robust Security Google Cloud Infrastructure Google Cloud Infrastructure Hardware Linux Kernel System Libraries SSLOpenGL Webkitglibc XlibFreetype Internet Xorg Chrome Window Manager Chrome Web Browser Youtube Gbooks Gdocs Gmail Picasa Gcalendar Collector Contents Network Sound Network Telephony WebCam Devices

8 8/29 6 th Korea Android Conference 임베디드에서 왜 크롬 OS 가 필요한가 ? 21 세기 대부분의 소비자들은 인터넷을 사용하기 위해 컴퓨터를 ON 하는 경우가 점진적으로 증가하고 있다. 소니의 인터넷 TV: 구글 안드로이드 기반의 TV 플랫폼에 크롬 브라우저, Intel Chipset 을 장착함으로써 인터넷 검색은 물론 안드로이드마켓 다양한 애플리케이션 등을 다운로드를 목표로 함. 다만, 현재의 안드로이드마켓이 스마트폰용 위주여서 TV 용을 위한 소프트웨어개발도구 (SDK) 공개 및 고해상도 앱개발 등이 필요. 따라서, 로컬 애플리케이션 비즈니스모델을 가진 안드로이드와 웹애플리케이션 비즈니스모델을 가진 크롬 OS 는 상호 보완적으로 융복합을 통해 성장해 나갈수 있음.

9 9/29 6 th Korea Android Conference Chrome webOS 와 Android 의 Win-Win 전략

10 10/29 6 th Korea Android Conference Chrome WebStore for Business Model Chrome WebStore  http://code.google.com/intl/ko/chrome/webstore/  http://code.google.com/intl/ko-KR/chrome/apps/docs/developers_guide.html – If you charge for your app, you can use either Chrome Web Store Payments or your own custom payment system. – Or it can be more specialized, such as a Google Chrome Extension or a web app that's been modified to be downloaded and run on the user's computer. Google Chrome Extensions – http://code.google.com/chrome/extensions/devguide.html Webapp.json Webapp.crx Webapp.pem Source Package JSON (JavaScript Object Notation) CRX (Google Chrome extension)

11 11/29 6 th Korea Android Conference Name LanguageOSIDEPortabilityAppVendor SymbianC++SymbianMany ChoicesNoneNativeNokia MaemoCLinuxSDKNoneNativeNokia WinMobileC#WindowsVisual StudioNoneNativeMS iPhoneObjectCMacOSXcodeNoneNativeApple FlashAction ScriptVMMacromedia FlashExcellentNativeAdobe Java MEJavaVMSun ToolkitGoodNativeOracle Palm PreHTML,JScriptLinuxWeb-based IDEGoodWebHP ChromeHTML,JScriptLinuxManyExcellentWebGoogle AndroidJavaLinuxEclipseGoodNativeGoogle 모바일 플랫폼별 주요 특징 비교내역

12 12/29 6 th Korea Android Conference Native vs. Web-based Application Source - http://www.flickr.com/photos/civisi/2611679744/sizes/o/ Chrome WebStore Web-based apps Services & Mashups Software as Service ServerStorage ( = Cloud Computing ) Android Market Native apps Few APIs between apps No Recurring Revenue Client Storage(=Local Storage) Next Generation

13 13/29 6 th Korea Android Conference Limitations of WebOS UX Support - The effective support of User interface (Haptic, Augmented Reality, Gesture, Video, Voice Recognition ) Speed & Performance - Java-script, Parsing, Network latency (WIFI Infra) Security - Security & Privacy Unstability - Offline Mode, Asynchronous communication support Hardware Control - Low-level device control

14 14/29 6 th Korea Android Conference Operating System Market Trend Mainframe OSDesktop OSEmbedded/Mo bile OS WebOS Period1945 - 19851985 - 20002000-20152015- *** OS KeyResource sharing, Time Sharing GUIApp storeCloud computing, Internet Resource UserMulti userSingle user Multi computing RepositoryServer storage Personnel storage Personnel stroage Distribution Repository Service Resource Server resource Private resource Internet access

15 15/29 6 th Korea Android Conference ChromeOS Demonstration 1/2 Linux Distribution : Ubuntu 8.04 or Newer(9.10 Recommended) Environment: i-Buddie NetBook & Core2Q9400 의 VirtualBox 3.X Estimation : Chrome Webos 를 Power On 시 로그인화면까지 평균 3~5 초 소요됨.

16 16/29 6 th Korea Android Conference ChromeOS Demonstration 2/2

17 17/29 6 th Korea Android Conference Linux Kernel for ChromeOS 1/3 Intel Mobiln Patches(Menlow) + Ubuntu Patches(9.10 – Kamic) - Chromium webOS 용 커널은 넷북 하드웨어를 목표로 하고 있으므로, 인텔의 모블린 ( 멘로우 ) 용 커널패치들과 우분투 커뮤니티의 커널패치를 리눅스 2.6.30 + 기반으로 하나의 커널로 머지하는 방법으로 오픈소스를 비즈니스 모델에 활용. Source Tree - git clone http://{src|git}.chromium.org/git/kernel.git - firefox http://{src|git}.chromium.org/cgi-bin/gitweb.cgi - http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-karmic.git/

18 18/29 6 th Korea Android Conference Linux Kernel for ChromeOS 2/3 저장장치는 Disk I/O Speed 를 고려하여 부팅시 SSD 저장장치를 기본으로 이용. KMS(Kernel mode setting) - 커널 부팅시에 커널모드셋팅 (Intel I915 Graphics Kernel Mode Setting) 을 기본으로 사용하기때문에 Xorg 와 콘솔화면 간의 전환이 1 초 이내로 가능. Chrome WebOS 또한 넷북을 주요 타겟으로 하고 있기 때문에 SWAP 메모리 기술을 사용하지 않음. Without multihead setups, hotplug, etc - Linux 2.6.29 adds kernel based graphic mode setting - Linux 2.6.31 adds Kernel Mode Setting (KMS) support for ATI

19 19/29 6 th Korea Android Conference Linux Kernel for ChromeOS 3/3 Maintainer = The Chromium OS Author. e-mail : chromium-os-dev@googlegroups.com. Mandeep Singh Baines : config file for 2.6.31. Will Drewry : config file for 2.6.30

20 20/29 6 th Korea Android Conference David M. Gay's floating point routinesexpatOCMock ICUffmpegOpenMAX IL Netscape Portable Runtime (NSPR)OpenGL ES 2.0 Programming GuideOTS (OpenType Sanitizer) Network Security Services (NSS)OpenGL ES 2.0 Conformance TestsProtocol Buffers purify headersThe OpenGL Extension Wrangler Librarypyftpdlib google-glog's symbolization libraryHarfbuzzpywebsocket valgrindhunspellSCons xdg-utilsICUsimplejson xdg-user-dirslcovskia google-jstemplatelibeventSQLite Mozilla Personal Security Managerlibjingleswig WebKitlibjpegtcmalloc Apple sample codelibpngtlslite bsdifflibxmlWTL 8.0 bspatchlibxsltxdg-utils bzip2LZMA SDKyasm Compact Language Detectionmodp base64 decoderzlib codesighsCocoa extension code from Camino Open-sources for Chrome Web-browser

21 21/29 6 th Korea Android Conference Operating System-level virtualization: Container To provide process aggregations in the Linux kernel, mainly for resource tracking purposes. The basic notion of a grouping/partitioning of processes - e.g: cpusets, ResGroups, User Bean Counters, virtual server namespaces, NSProxy containers, and others. Merged into vanilla kernel 2.6.24 by Paul Menage at Jan-15-2007 User ID Cgroup

22 22/29 6 th Korea Android Conference Target#> echo 2048 > /sys/kernel/uids/497/cpu_share Group Scheduling with UserID

23 23/29 6 th Korea Android Conference Group Scheduling with control groups(cgroup) Target#> mount –t cgroup –o cpu cpu /cgroups Target#> mkdir /cgroups/webbrowser Target#> mkdir /cgroups/db Target#> mkdir /cgroups/media Target#> pidof `firefox` > /cgroups/webbrowser/tasks Target#> echo 2048 > /cgroups/webbrowser/cpu.shares Container1 Container2 Configuration Manager App1 App2 App3 App4 App5 App6 App7 App8 App9 Container3 Container4

24 24/29 6 th Korea Android Conference Booting Sequence for ChromeOS GRUB BootLoader confiiguration setting information label chromeos-hd menu label chromeos-hd kernel vmlinuz append quiet console=tty2 init=/sbin/init boot=local rootwait root=HDROOT ro noresume noswap i915.modeset=1 loglevel=1 Linux Kernel Scheduler Initialization Memory Initialization Device Initialization And so on...

25 25/29 6 th Korea Android Conference Booting Sequence for ChromeOS /sbin/init /sbin/chromeos_startup Xorg Log-in Screen Mounting Task Initialization Script /usr/bin/chromeos-wm

26 26/29 6 th Korea Android Conference Booting Sequence for ChromeOS

27 27/29 6 th Korea Android Conference Summary Chromium OS 는 인터넷을 주로 이용하는 사용자들을 위해서 기업의 클라우딩 인프라스트럭쳐를 가볍고, 빠르고, 안전한 컴퓨팅 환경을 제공하기 위한 Linux 커널 기반으로 크롬 웹브라우져를 개발하는 오픈소스 프로젝트임. 로컬 애플리케이션 비즈니스모델을 가진 안드로이드와 웹애플리케이션 비즈니스모델을 가진 크롬 OS 는 상호 보완적으로 융복합을 통해 성장 가능함. 웹브라우저에서 실행되는 애플리케이션들을 해당 목적에 맞게 그룹화 함으로써 효과적으로 태스크들을스케쥴 및 컨트롤할수 있는 OS 레벨의 가상화인 리눅스 컨테이너 “cgroup” 이 활용이 증가될 것임. Linux 커널과 Ubuntu 커뮤니티의 커널패치를 하나의 커널로 머지하는 방법 등을 통해 모바일 플랫폼으로 공개된 Android 처럼 오픈소스를 비즈니스 모델의 Best Practice 으로 활용하는 또 하나의 사례 (Open Innovation).

28 28/29 6 th Korea Android Conference References http://www.chromium.org/chromium-os http://codereview.chromium.org/ http://www.google.com/chrome http://www.chromium.org/ http://googlechromereleases.blogspot.com/ http://blog.chromium.org/

29 29/29 6 th Korea Android Conference THANKS 지금까지 없던 새로운 시대를 열기 위해서는 끊임없이 도전하고 파괴하며, 다른 기회를 만들어야 내야 한다. 이러한 사고방식이 얼마나 혁신적임을 보여주는지 이 시점에서 우리들은 깊이 생각해보아야 한다.


Download ppt "Oct-15-2010, Fri Name - Geunsik Lim - leemgs.at.gmail.com Nick - invain ( 인베인 ) Blog - 본 문서는 자유롭게 수정 및 재배포가 가능 하나,"

Similar presentations


Ads by Google