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
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)” 내용을 명시해야 합니다 .
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
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
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.
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
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
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
8/296th Korea Android Conference
임베디드에서 왜 크롬 OS 가 필요한가 ?• 21 세기 대부분의 소비자들은 인터넷을 사용하기 위해 컴퓨터를 ON
하는 경우가 점진적으로 증가하고 있다 .
• 소니의 인터넷 TV: 구글 안드로이드 기반의 TV 플랫폼에 크롬 브라우저 , Intel Chipset 을 장착함으로써 인터넷 검색은 물론 안드로이드마켓 다양한 애플리케이션 등을 다운로드를 목표로 함 .
다만 , 현재의 안드로이드마켓이 스마트폰용 위주여서 TV 용을 위한 소프트웨어개발도구 (SDK) 공개 및 고해상도 앱개발 등이 필요 .
• 따라서 , 로컬 애플리케이션 비즈니스모델을 가진 안드로이드와 웹애플리케이션 비즈니스모델을 가진 크롬 OS 는 상호 보완적으로 융복합을 통해 성장해 나갈수 있음 .
9/296th Korea Android Conference
Chrome webOS 와 Android 의 Win-Win 전략
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)
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
모바일 플랫폼별 주요 특징 비교내역
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
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
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
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 초 소요됨 .
16/296th Korea Android Conference
ChromeOS Demonstration 2/2
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/
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
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
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
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
22/296th Korea Android Conference
Target#> echo 2048 > /sys/kernel/uids/497/cpu_share
Group Scheduling with UserID
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
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 . . .
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
26/296th Korea Android Conference
Booting Sequence for ChromeOS
27/296th Korea Android Conference
Summary Chromium OS 는 인터넷을 주로 이용하는 사용자들을 위해서 기업의
클라우딩 인프라스트럭쳐를 가볍고 , 빠르고 , 안전한 컴퓨팅 환경을 제공하기 위한 Linux 커널 기반으로 크롬 웹브라우져를 개발하는 오픈소스 프로젝트임 .
로컬 애플리케이션 비즈니스모델을 가진 안드로이드와 웹애플리케이션 비즈니스모델을 가진 크롬 OS 는 상호 보완적으로 융복합을 통해 성장 가능함 .
웹브라우저에서 실행되는 애플리케이션들을 해당 목적에 맞게 그룹화 함으로써 효과적으로 태스크들을스케쥴 및 컨트롤할수 있는 OS 레벨의 가상화인 리눅스 컨테이너 “ cgroup” 이 활용이 증가될 것임 .
Linux 커널과 Ubuntu 커뮤니티의 커널패치를 하나의 커널로 머지하는 방법 등을 통해 모바일 플랫폼으로 공개된 Android 처럼 오픈소스를 비즈니스 모델의 Best Practice 으로 활용하는 또 하나의 사례 (Open Innovation).
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/
29/296th Korea Android Conference
THANKS
지금까지 없던 새로운 시대를 열기 위해서는 끊임없이 도전하고 파괴하며 , 다른 기회를 만들어야 내야 한다 . 이러한 사고방식이 얼마나 혁신적임을 보여주는지 이 시점에서 우리들은 깊이 생각해보아야 한다 .