Your SlideShare is downloading. ×
0
Leveraging Androids   Linux Heritage                1
About●   Author of:●   Introduced Linux Trace Toolkit in 1999●   Originated Adeos and relayfs (kernel/relay.c)            ...
Agenda●   Goal●   Rationale●   Stack Comparison●   Roadblocks●   Where do I start?●   Coexistence Approaches●   Unresolved...
1. Goal●   Opening as many cans of worms as possible●   Can “Linux” and Android Coexist and Interact?                     ...
2. Rationale●   A ton of mature user-space packages available    ●   Linux has been around for 20 years    ●   Linuxs user...
3.1. Overall Architecture - EL                          6
3.2. Overall Architecture – Android                            7
4. Roadblocks●   Filesystem    ●   Android is non-FHS-compliant●   C library    ●   Bionic vs. glibc●   Interconnect fabri...
5. Where do I start?●   Android-side:    ●   AOSP●   “Linux”-side:    ●   Traditional distro        –   Ubuntu, Fedora, De...
6. Coexistence Approaches●   Single filesystem    ●   Build system integration    ●   Build-time aggregation    ●   Image ...
7. Unresolved / Uncharted●   Binder from glibc●   Intent <-> DBUS bridge●   Running Android apps in X●   Running X apps in...
8. Demo●   AOSP●   BYO glibc-based rootfs●   BusyBox●   Client-Server app talking through socket●   glibc client●   bionic...
8.1. Architecture                    13
14
Thank you ...     @karimyaghmourkarim.yaghmour@opersys.com                         15
Upcoming SlideShare
Loading in...5
×

Leveraging Android's Linux Heritage at Android Open 2011

2,053

Published on

"Leveraging Android's Linux Heritage" presentation by Karim Yaghmour at Android Open 2011

Published in: Technology, News & Politics
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,053
On Slideshare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
63
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Leveraging Android's Linux Heritage at Android Open 2011"

  1. 1. Leveraging Androids Linux Heritage 1
  2. 2. About● Author of:● Introduced Linux Trace Toolkit in 1999● Originated Adeos and relayfs (kernel/relay.c) 2
  3. 3. Agenda● Goal● Rationale● Stack Comparison● Roadblocks● Where do I start?● Coexistence Approaches● Unresolved / Uncharted● Demo 3
  4. 4. 1. Goal● Opening as many cans of worms as possible● Can “Linux” and Android Coexist and Interact? 4
  5. 5. 2. Rationale● A ton of mature user-space packages available ● Linux has been around for 20 years ● Linuxs user-space has been developed in the open● A ton of “Linux”-centric stacks have been developed through the years ● “Porting” to Android not always possible/desirable/realistic● Android doesnt provide everything ● Touch-based, consumer-oriented ● Linux is very strong on backend/server side● Android exhibits symptoms of “my way or the highway” design 5
  6. 6. 3.1. Overall Architecture - EL 6
  7. 7. 3.2. Overall Architecture – Android 7
  8. 8. 4. Roadblocks● Filesystem ● Android is non-FHS-compliant● C library ● Bionic vs. glibc● Interconnect fabric ● Intents vs. DBUS● IPC ● Binder vs. Sockets and other std Unix IPC● Display management ● SurfaceFlinger vs. X● I/O ● Framebuffer, keyboard, mouse, disk, ... 8
  9. 9. 5. Where do I start?● Android-side: ● AOSP● “Linux”-side: ● Traditional distro – Ubuntu, Fedora, Debian, Gentoo, ... ● Embedded distro – Yocto, Buildroot, LTIB, ... ● Build Your Own ● Cherry-picking 9
  10. 10. 6. Coexistence Approaches● Single filesystem ● Build system integration ● Build-time aggregation ● Image repackaging● chroot jails ● Have a look at AlwaysInnovatings Gregoire Gentils ELC presentation ● Patching to lots of pieces of the OS ● Use of one FB for each OS or chvt● Virtualization / Paravirtualization ● QEMU ● XEN? 10
  11. 11. 7. Unresolved / Uncharted● Binder from glibc● Intent <-> DBUS bridge● Running Android apps in X● Running X apps in Android “The easier thing to do, which would work on just about all Android phones without having to modify the system software at all, would be to port an X server to the NDK, using a SurfaceFlinger Surface as its root window. You could do a generic "X11WrapperApp" that has you XSurfaceFlinger bundled and launches whatever X based app you want, and have it all play nice together. A bit more work would be to just do an implementation of xlib that sits on top of a native Android window (opengl ES 2 if you like) without any server in the middle, and again bundle this and the X based app of your choice and you have something that is a first class app on the phone without any need for modifying the OS.” 11
  12. 12. 8. Demo● AOSP● BYO glibc-based rootfs● BusyBox● Client-Server app talking through socket● glibc client● bionic server 12
  13. 13. 8.1. Architecture 13
  14. 14. 14
  15. 15. Thank you ... @karimyaghmourkarim.yaghmour@opersys.com 15
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×