29
CLOUD COMPUTING BASED CHROME OS 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)” 인인인 인인인인 인인인 .

Cloud computing based Chrome os

  • Upload
    talia

  • View
    66

  • Download
    5

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 2: Cloud computing based Chrome  os

CONTENTS

What is ChromeOS?Why do ChromeOS needs in Embedded Env?Chrome webOS Demonstration Chrome App Store for Business ModelZygote based ChromeOSWebOS LimitationOpen-sources for Chrome Web-browserLinux Kernel for ChromeOS Operating System-level virtualization: ContainerBooting Sequence for ChromeOSSummaryQ&A

Technology Session

Page 3: Cloud computing based Chrome  os

3/296th 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

Page 4: Cloud computing based Chrome  os

4/296th 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.

Page 5: Cloud computing based Chrome  os

5/296th 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

Page 6: Cloud computing based Chrome  os

6/296th Korea Android Conference

Zygote based ChromeOS 3/3

bashChromium-

broswer

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 Thread2(Tab Browser)Renderer Thread3(Tab Browser)

Plugin Thread (e.g: Flash)

chromium-browser --type=plugin

. . . . . .

Channel(26609.0x*******.********)

fork

exec

PPID PID

Page 7: Cloud computing based Chrome  os

7/296th Korea Android Conference

Chrome OS 의 Entire Layout1. UI = Chrome Browser2. Local Web Server3. User Application Runs On Web Server4. Good Bye Files5. Robust Security

Google CloudInfrastructur

e

HardwareLinux Kernel

System LibrariesSSL OpenGLWebki

tglibc XlibFreetype

Internet

XorgChrome Window Manager

Chrome Web BrowserYoutube Gbooks Gdocs Gmail Picasa Gcalendar

Collector

Contents

Network

Sound Network

Telephony WebCamDevices

Page 8: Cloud computing based Chrome  os

8/296th Korea Android Conference

임베디드에서 왜 크롬 OS 가 필요한가 ?• 21 세기 대부분의 소비자들은 인터넷을 사용하기 위해 컴퓨터를 ON

하는 경우가 점진적으로 증가하고 있다 .

• 소니의 인터넷 TV: 구글 안드로이드 기반의 TV 플랫폼에 크롬 브라우저 , Intel Chipset 을 장착함으로써 인터넷 검색은 물론 안드로이드마켓 다양한 애플리케이션 등을 다운로드를 목표로 함 .

다만 , 현재의 안드로이드마켓이 스마트폰용 위주여서 TV 용을 위한 소프트웨어개발도구 (SDK) 공개 및 고해상도 앱개발 등이 필요 .

• 따라서 , 로컬 애플리케이션 비즈니스모델을 가진 안드로이드와 웹애플리케이션 비즈니스모델을 가진 크롬 OS 는 상호 보완적으로 융복합을 통해 성장해 나갈수 있음 .

Page 9: Cloud computing based Chrome  os

9/296th Korea Android Conference

Chrome webOS 와 Android 의 Win-Win 전략

Page 10: Cloud computing based Chrome  os

10/296th 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.crxWebapp.pem

Source

Package

• JSON (JavaScript Object Notation)• CRX (Google Chrome extension)

Page 11: Cloud computing based Chrome  os

11/296th Korea Android Conference

  Name Language OS IDE Portabil-ity App Vendor

Symbian C++ Symbian Many Choices None Native Nokia

Maemo C Linux SDK None Native Nokia

WinMobile C# Windows Visual Studio None Native MS

iPhone ObjectC MacOS Xcode None Native Apple

Flash Action Script VM Macromedia Flash Excellent Native Adobe

Java ME Java VM Sun Toolkit Good Native Oracle

Palm Pre HTML,JScript Linux Web-based IDE Good Web HP

Chrome HTML,JScript Linux Many Excellent Web Google

Android Java Linux Eclipse Good Native Google

모바일 플랫폼별 주요 특징 비교내역

Page 12: Cloud computing based Chrome  os

12/296th Korea Android Conference

Native vs. Web-based Application

Source - http://www.flickr.com/photos/civisi/2611679744/sizes/o/

Chrome WebStoreWeb-based appsServices & MashupsSoftware as ServiceServerStorage ( = Cloud Computing )

Android MarketNative appsFew APIs between appsNo Recurring Revenue Client Storage(=Local Storage)

Next Generation

Page 13: Cloud computing based Chrome  os

13/296th 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

Page 14: Cloud computing based Chrome  os

14/296th Korea Android Conference

Operating System Market Trend

Mainframe OS

Desktop OS

Embedded/Mobile OS

WebOS

Period 1945 - 1985 1985 - 2000 2000-2015 2015- ***OS Key Resource

sharing, Time Shar-ing

GUI App store Cloud com-puting, In-ternet Re-source

User Multi user Single user Single user Multi com-puting

Repository Server stor-age

Personnel storage

Personnel stroage

Distribution Repository

Service Re-source

Server re-source

Private re-source

Private re-source

Internet ac-cess

Page 15: Cloud computing based Chrome  os

15/296th 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 초 소요됨 .

Page 16: Cloud computing based Chrome  os

16/296th Korea Android Conference

ChromeOS Demonstration 2/2

Page 17: Cloud computing based Chrome  os

17/296th 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/

Page 18: Cloud computing based Chrome  os

18/296th 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

Page 19: Cloud computing based Chrome  os

19/296th Korea Android Conference

Linux Kernel for ChromeOS 3/3Maintainer = The Chromium OS Author

. e-mail : [email protected] . Mandeep Singh Baines : config file for 2.6.31 . Will Drewry : config file for 2.6.30

Page 20: Cloud computing based Chrome  os

20/296th Korea Android Conference

David M. Gay's floating point routinesexpat OCMockICU ffmpeg OpenMAX ILNetscape Portable Runtime (NSPR) OpenGL ES 2.0 Programming Guide OTS (OpenType Sanitizer)Network Security Services (NSS) OpenGL ES 2.0 Conformance Tests Protocol Bufferspurify headers The OpenGL Extension Wrangler Li-

brary pyftpdlibgoogle-glog's symbolization library Harfbuzz pywebsocketvalgrind hunspell SConsxdg-utils ICU simplejsonxdg-user-dirs lcov skiagoogle-jstemplate libevent SQLiteMozilla Personal Security Manager libjingle swigWebKit libjpeg tcmallocApple sample code libpng tlslitebsdiff libxml WTL 8.0bspatch libxslt xdg-utilsbzip2 LZMA SDK yasmCompact Language Detection modp base64 decoder zlibcodesighs Cocoa extension code from Camino

Open-sources for Chrome Web-browser

Page 21: Cloud computing based Chrome  os

21/296th 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

Page 22: Cloud computing based Chrome  os

22/296th Korea Android Conference

Target#> echo 2048 > /sys/kernel/uids/497/cpu_share

Group Scheduling with UserID

Page 23: Cloud computing based Chrome  os

23/296th 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

Page 24: Cloud computing based Chrome  os

24/296th 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 . . .

Page 25: Cloud computing based Chrome  os

25/296th Korea Android Conference

Booting Sequence for ChromeOS

/sbin/init

/sbin/chromeos_startup

Xorg

Log-in Screen

Mounting Task

Initialization Script

/usr/bin/chromeos-wm

Page 26: Cloud computing based Chrome  os

26/296th Korea Android Conference

Booting Sequence for ChromeOS

Page 27: Cloud computing based Chrome  os

27/296th Korea Android Conference

Summary Chromium OS 는 인터넷을 주로 이용하는 사용자들을 위해서 기업의

클라우딩 인프라스트럭쳐를 가볍고 , 빠르고 , 안전한 컴퓨팅 환경을 제공하기 위한 Linux 커널 기반으로 크롬 웹브라우져를 개발하는 오픈소스 프로젝트임 .

로컬 애플리케이션 비즈니스모델을 가진 안드로이드와 웹애플리케이션 비즈니스모델을 가진 크롬 OS 는 상호 보완적으로 융복합을 통해 성장 가능함 .

웹브라우저에서 실행되는 애플리케이션들을 해당 목적에 맞게 그룹화 함으로써 효과적으로 태스크들을스케쥴 및 컨트롤할수 있는 OS 레벨의 가상화인 리눅스 컨테이너 “ cgroup” 이 활용이 증가될 것임 .

Linux 커널과 Ubuntu 커뮤니티의 커널패치를 하나의 커널로 머지하는 방법 등을 통해 모바일 플랫폼으로 공개된 Android 처럼 오픈소스를 비즈니스 모델의 Best Practice 으로 활용하는 또 하나의 사례 (Open Innovation).

Page 28: Cloud computing based Chrome  os

28/296th 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/

Page 29: Cloud computing based Chrome  os

29/296th Korea Android Conference

THANKS

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