Android A case study of an Embedded Linux Project Greg - - PowerPoint PPT Presentation

android
SMART_READER_LITE
LIVE PREVIEW

Android A case study of an Embedded Linux Project Greg - - PowerPoint PPT Presentation

Android A case study of an Embedded Linux Project Greg Kroah-Hartman greg@kroah.com http://github.com/gregkh/android-presentation Disclaimer Everything I say here is my opinion alone and not the opinion of my employer Novell. Heck, they


slide-1
SLIDE 1

Android

Greg Kroah-Hartman

greg@kroah.com

A case study of an Embedded Linux Project

http://github.com/gregkh/android-presentation

slide-2
SLIDE 2

Disclaimer

Everything I say here is my opinion alone and not the opinion of my employer Novell. Heck, they don't even realize I'm here giving this talk. Everything said here is from the viewpoint of an experienced member of the Linux kernel community, who also happens to have a lot of experience in the embedded arena as well. If you have any questions / concerns / flames, you know where to find me.

slide-3
SLIDE 3

Focus on the kernel only. Who cares about userspace?

slide-4
SLIDE 4
slide-5
SLIDE 5

Everything I complain about, can be fixed tomorrow with no changes to any Android userspace program. Almost all of these changes can only be done if Google developers allow them, as they will require changes to the Android libraries due to the user/kernel interfaces involved.

slide-6
SLIDE 6

Things Google did right

Linux android.git.kernel.org Followed the license of the kernel

slide-7
SLIDE 7

Things Google did wrong

android.git.kernel.org Ignored the community Thought they were special Thought they were alone

slide-8
SLIDE 8

android.git.kernel.org

slide-9
SLIDE 9

android.git.kernel.org

6 different full kernel trees

slide-10
SLIDE 10

android.git.kernel.org

33 different kernel branches

slide-11
SLIDE 11

android.git.kernel.org

33 different kernel branches

2.6.25 – 4 branches 2.6.27 – 3 branches 2.6.29 – 9 branches 2.6.30 – 1 branch 2.6.32 – 7 branches 2.6.33 – 6 branches 2.6.34 – 3 branches

slide-12
SLIDE 12

android.git.kernel.org

1 old stale Linus tree

slide-13
SLIDE 13

android.git.kernel.org

2 known stand-alone drivers

slide-14
SLIDE 14

android.git.kernel.org

2 known stand-alone drivers

One has 13 different branches

slide-15
SLIDE 15

2.6.34-rc2 based branch

283 files changed 47,715 lines added 363 lines removed

slide-16
SLIDE 16

2.6.34-rc2 based branch

50% drivers 30% filesystem 15% architecture 5% core

slide-17
SLIDE 17
  • dcc_tty – arm tty driver
  • Synaptics i2c touchscreen driver

Drivers - 2007

slide-18
SLIDE 18

Drivers - 2008

  • reset key drivers
  • GPIO input drivers
  • Timed GPIO driver
  • ledtrig-sleep debug driver
  • Kernel debugger core
  • pmem driver
  • Loads of MMC changes
slide-19
SLIDE 19

Drivers - 2008

  • Nvidia Tegra MTD NAND controller
  • RTC alarm driver
  • Logger
  • Ram console
  • Switch subsystem
  • GPIO switch
  • USB Gadget subsystem rewrite
slide-20
SLIDE 20

Drivers - 2009

  • Apanic debug flash driver
  • Uid status
  • TI Bluetooth rfkill driver
  • Bluetooth core fixes and extensions
slide-21
SLIDE 21

Drivers - 2010

  • Tegra USB gadget driver
  • Tegra framebuffer driver
slide-22
SLIDE 22

Security

  • Binder
  • “secure” networking
slide-23
SLIDE 23
  • YAFFS2
  • FAT Volume ID ioctl
  • inotify changes
  • Partition uevents
  • Special /proc filetype

Filesystems

slide-24
SLIDE 24
  • PPP on L2TP Access Controller
  • PPP on PPTP Network server
  • sysfs files for networking controls

Networking

slide-25
SLIDE 25
  • Low memory killer
  • wakelocks
  • “early suspend”
  • ashmem
  • panic timeout
  • cgroup/cset changes
  • futex changes due to broken userspace
  • sysctl for swapless systems

core

slide-26
SLIDE 26
  • PPP on L2TP Access Controller
  • PPP on PPTP Network server
  • sysfs files for networking controls

Networking

slide-27
SLIDE 27

Ignoring the community

Ignoring the community

slide-28
SLIDE 28

commit b0a0ccfad85b3657fe999805df65f5cfe634ab8a Author: Greg Kroah-Hartman <gregkh@suse.de> AuthorDate: Mon Oct 5 16:29:29 2009 -0700 Commit: Greg Kroah-Hartman <gregkh@suse.de> CommitDate: Fri Dec 11 12:23:21 2009 -0800 Staging: android: delete android drivers These drivers are no longer being developed and the original authors seem to have abandonded them and hence, do not want them in the mainline kernel tree. So sad :( Cc: Brian Swetland <swetland@google.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

slide-29
SLIDE 29

You are special and unique, just like everyone else. You are special and unique, just like everyone else.

Image courtesy of snowcrystals.com

slide-30
SLIDE 30

It's just a fork, It's just a fork, no big deal. no big deal.

slide-31
SLIDE 31
slide-32
SLIDE 32
slide-33
SLIDE 33