Status of Embedded Linux Status of Embedded Linux September 2011 Tim Bird Architecture Group Chair LF CE Workgroup.

Slides:



Advertisements
Similar presentations
Android Application Development A Tutorial Driven Course.
Advertisements

Media Player for the i.MX31 Advanced Embedded Systems Architecture Class Project May 14, 2011 Rafael Castro Ryan Ugland Carlos Cabral.
What is Android?.
Android Platform Overview (1)
Web Visualization Technology Horner APG Ver 1.0.
Android 4.0 ICS An Unified UI framework for Tablets and Cell Phones Ashwin. G. Balani, Founder Member, GTUG, Napur.
DEPARTMENT OF COMPUTER ENGINEERING
Mobile Application Development
Android An open handset alliance project Janice Garcia September 18, 2008 MIS 304.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
UFCFX5-15-3Mobile Device Development Android Development Environments and Windows.
Introduction to Android Platform Overview
To be Presented by, T.Sathishkumar [11mw07] 1. Synopsis Introduction Version Features License An Application Development Demo Possibilities Advantages.
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Android Introduction Platform Overview.
Mobile Application Development using Android
Status of Embedded Linux Status of Embedded Linux May 2011 Tim Bird Architecture Group Chair LF CE Workgroup.
Introduction of Tizen : Tizen Overview Chan Seok Kang 2013/03/21.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Android Programming By Mohsen Biglari Android Programming, Part1: Introduction 1 Part1: Introduction By Mohsen Biglari.
Arago Project Creating an Open Integration and Distribution System William Mills
CELF Contract Work Update on CELF Projects Tim Bird - CELF AG Chair.
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
Seminar on Linux-based embedded systems
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Section 1: Introducing Group Policy What Is Group Policy? Group Policy Scenarios New Group Policy Features Introduced with Windows Server 2008 and Windows.
Android for Java Developers Denver Java Users Group Jan 11, Mike
1 Thomas Lippert Senior Product Manager - Mobile What’s new in SMC 5.0.
ANDROID 응용 프로그래밍 과정 – 목차 - 안드로이드란 - 안드로이드가 만들어지게 된배경 - 안드로이드의 철학 - 안드로이드 환경설정 ( SDK download, eclipse plug-in 설정, 간단한 프로그램 실행 ) - 안드로이드 동작원리 - 안드로이드 핵심.
October 11, 2015CE Linux Forum Members Confidential 1 Embedded Linux BOF Tim Bird Software Engineer, Sony Electronics Chair, CE Linux Forum Architecture.
Slide 1 of 30 Status of Embedded Linux Embedded Linux Community News December 2010 Tim Bird CELF Architecture Group Chair.
CELF Project and Conference Information Tim Bird CELF Architecture Group Chair.
Presentation on android based application
Android architecture & setting up. Android operating system comprises of different software components arranges in stack. Different components of android.
January 25th, CE Linux Forum Technical Conference1 Bootup Time Working Group Discussion Tim Bird, Chair.
Challenges in KeyStone Workshop Getting Ready for Hawking, Moonshot and Edison.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June, 2011 Made available under the Eclipse Public License v Mobile.
ANDROID BY:-AANCHAL MEHTA MNW-880-2K11. Introduction to Android Open software platform for mobile development A complete stack – OS, Middleware, Applications.
Created By. Jainik B Patel Prashant A Goswami Gujarat Vidyapith Computer Department Ahmedabad.
PM Summit fall out 2 CE Vendors Spoke at Summit  CELF presented  TI presented  Free Scale presented  Nokia presented  MLI represented.
 Installation of Android Development Environment  Creating the App with OpenGL ES API  Running the App on Emulator Android App Development.
Mobile Application Development with ANDROID Umang Patel(6537) LDCE.
By, Rutika R. Channawar. Content Introduction Open Handset Alliance Minimum Hardware Requirements Versions Feature Architecture Advantages Disadvantages.
1 Android Workshop Platform Overview. 2 What is Android?  Android is a software stack for mobile devices that includes an operating system, middleware.
1 Get All Answers Get All Answers. Contents History of Android Android Fragmentation The Role of Google Features and Architecture Android Software Development.
Android Development For Beginners. What is Android? Android is an open mobile phone platform that was developed by Google and later by Open Handset Alliance.
By Adam Reimel. Outline Introduction Platform Architecture Future Conclusion.
Android. I. What’s Android Android is a mobile operating system (OS) based on the Linux kernel and currently developed by Google. Android is designed.
© Sony Corporation of America 1 of 17 Kernel Summit 2009 End User Panel Pain Points for Using Linux By Tim Bird Sony Corporation.
ANDROID OS Ravi Soni MTech (CS) III Sem. W HAT IS A NDROID ? Android is a software stack for mobile devices that includes an operating system, middleware.
Android. Android An Open Handset Alliance Project A software platform and operating system for mobile devices Based on the Linux kernel Developed by Google.
Matthew Locke November 2007 A Linux Power Management Architecture.
BY : MS ARTI B BAVANE. INTRODUCTION Formed on February 15,2010. Jointly found by two pillars Intel and Nokia by joining their existing open source projects.
Linux on ARM7TDMI or Nothing is as easy as it looks Helicon technologies Ltd. How to run uClinux on NXP LPC22xx.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Embedded Linux system development.
Embedded Linux Wiki BOF. eLinux Wiki 2 Embedded Linux Wiki BOF Ottawa Linux Symposium June 2007 © 2007 Michael Opdenacker
Mobile Device Development
Android Mobile Application Development
Ottawa Linux Symposium 2007
ANDROID AN OPEN HANDSET ALLIANCE PROJECT
chapter 6- Android Introduction
Android.
AppArmor Update 2014 Linux Security Summit
Contents: Introduction Different Mobile Operating Systems
Penguin Weight Watchers
Status of Embedded Linux
Chapter 2: The Linux System Part 1
Android Developer Fundamentals V2
Android Platform, Android App Basic Components
Presentation transcript:

Status of Embedded Linux Status of Embedded Linux September 2011 Tim Bird Architecture Group Chair LF CE Workgroup

Outline Kernel Versions Technology Areas CE Workgroup Projects Other Stuff Resources

Kernel Versions Technology Areas CE Workgroup Projects Other Stuff Resources

Kernel Versions Linux v – 1 Aug 2010 Latest longterm release for embedded = Linux v – 20 Oct 2010 Linux v – 4 Jan 2011 Linux v – 14 Mar 2011 Linux v – 19 May 2011 Linux v3.0 – 21 July 2011 Linux v3.1-rc3 – 22 Aug probably ready by end of October, 2011

Linux v AppArmor – path-based security module Wakeup counts Kernel-user interface to allow system to suspend aggressively without race conditions on wakup events New OOM killer More BKL removal LZO compression in SquashFS Runtime PM statistics

Linux v Jump labels Eliminates (almost completely) the overhead when tracing calls are disabled See

Linux v Perf symbols abstraction Added 'symfs' option for off-box analysis of perf.data Should be good for embedded

Linux v Pstore Store information from dying kernel into some persistent storage Similar to mtdoops or ramoops See Device power domains for runtime PM ARM arch tree changes (just starting)

Linux v3.0 Fast symbol resolution for module loading Binary search instead of linear lookup for module linking POSIX alarm timers Similar to Android Alarm Timers See BKL function calls are now gone More ARM arch tree changes

Linux v3.1 (likely) Watchdog timer core New framework for handling power management domains was added See driver/base/power/domain.c This work was described by Rafael Wysocki at LinuxCon Japan Multiple ARM SoCs now have device tree support

Things to watch ARM arch sub-tree refactoring Device trees More runtime PM improvements Android features sneaking into the tree Boot timing patches Set of patches to support integrated bootloader/kernel/user-space timings Has short list of canonical “landmark” events See

Outline Kernel Versions Technology Areas CE Workgroup Projects Other Stuff Resources

Bootup Time Readahead getting lots of attention Ureadahead in Ubuntu See my presentation at Android Builder’s Summit about readahead with Android Snapshot boot Old topic, but still very popular Requires work both inside and outside kernel Not much mainlined See ELC 2011 presentation by Kang Dongwook Filesystem speedups CELF funding work in this area (more later)

Bootup Time (cont.) XIP (Execute-In-Place) Almost removed from kernel Version in kernel was broken Use of XIP on only out-of-tree platforms is a problem Sony will be pushing AXFS to mainline Bootloader improvements Coreboot on x86 See “Really fast x86 boot” presentation at FOSDEM 2011 U-Boot ARM caching enhancements See presentation by Andrew Murray at ELC Europe 2010 Very good philosophy of boot time reduction

Graphics 3D OpenGL ES is de-facto standard everywhere 2D Android had Skia, but is moving to...? Meego used Clutter, Qt, and X Framebuffer is going away, with acceleration required for larger screens Wayland Intel moving towards Wayland Replacement for X? Support for multiple top-layer APIs Lots of work around memory management between kernel, user-space and GPU

Graphics (cont.) Accelerated rendering is a big topic Google introduced renderscript Uses LLVM to do runtime retargeting of script to whatever capabilities device has Ability to support GPU in your SOC is very important

Graphics Drivers PowerVR graphics driver PowerVR is being used lots of places Intel adopted for Cedarview and it's already in Sodaville Is in very many ARM SOCs PowerVR driver is closed-source Alan Cox submitted some driver pieces in February Omitted anything relating to out-of-tree binary driver See

Multimedia Gstreamer Is still being used in TVs Ex: Google TV uses it Android media layer Stagefright – new media framework with both local playback and streaming Replaces OpenCore, but old PV codecs can still be used Codec wars WebM/VP8 Free codec by Google Integrated into HTML5

File Systems UBIFS Replacing JFFS2 as default raw flash FS of choice Still needs some boot time improvements YAFFS2 is not in mainline yet Despite CELF funding LogFS Appears to be abandoned AXFS Advanced XIP File system – developed by Intel/Numonyx but never mainlined

File Systems (cont.) Google moving to Ext4 for future Android devices Already using eMMC instead of raw flash Developers said that main reason was SMP performance Pandaboard doesn’t have on-board flash Uses SDcard only Want to optimize Linux block filesystem layers for flash See Arnd Bergmann's work on filesystem performance on cheap flash media (ELC 2011)

Power Management Runtime Power Management Relatively new ability to suspend and resume individual system components See See Magnus Damm’s slides at: Rafael Wysocki’s presentation at LCJ uxcon-japan/lcj2011_wysocki.pdf uxcon-japan/lcj2011_wysocki.pdf Device power domains Set of devices sharing power resources (clocks, power planes, etc.)

System Size CE WG is reviving Linux-tiny project Bloatwatch still running – but who looks at it? Big increases in some kernel versions Xi Wang had a good talk at ELC 2010 about optimizing memory usage throughout the system User space is memory problem area now OOM killer or OOM avoidance is big issue Cgroup memory notifications Android has it's own thing Application lifecycle is key feature

Observations Rate of “general features for embedded” contributions to kernel seems low Not a lot of progress recently on bootup time reduction, size reduction, security in embedded Some problems and solutions shifted to user space Hot areas in kernel: Power management, ARM board support refactoring, GPU management (memory sharing, driver support) Still seeking ways to facilitate participation of embedded developers in community

Outline Kernel Versions Technology Areas CE Workgroup Projects Other Stuff Resources

CEWG Contract Work 2010 Bootchart and smemcap in busybox Function-sections YAFFS2 mainline effort SquashFS enhancements U-Boot ARM enhancements Trace format standard Kexecboot enhancements Flash filesystem testing

CEWG Contract Work 2010 Bootchart and smemcap in busybox Function-sections YAFFS2 mainline effort SquashFS enhancements U-Boot ARM enhancements Trace format standard Kexecboot enhancements Flash filesystem testing

Mainline YAFFS2 effort YAFFS2 is a popular NAND flash filesystem Was used by Android in many devices 3 mainline attempts made, but hit some barriers Currently stuck on some locking issues Outlook for mainline acceptance is uncertain Was a classic case of developer wanting to retain multi-platform support This approach is rejected by community

Trace Format Standard Create a singled trace format standard for the embedded industry (CTF – Common Trace Format) See Allows reuse of tools with data from different tracing systems BabelTrace trace conversion library Converts trace formats into CTF (and back?) Proof of concept conversion implementation Can convert kernel messages with timestamps to CTF and back to text

CEWG Contract Work 2011 Mainline fast symbol resolution Mainline Device Firmware Upgrade (DFU) code in U-Boot Work on Linux tiny patches Improve UBIFS mount time Flash filesystem testing

Contract Work 2011 (cont.) Mainline the watchdog framework Extend bluetooth stack with Remote SIM Access protocol Kernel trace and debug documentation (on eLinux wiki) Mainline Android kernel features

Mainline fast symbol resolution Change symbol lookup to use binary search instead of linear scan to speed up module loading Status: Mainlined in Linux v3.0 Should see speedup in module loading. Benefit is 10s to 100s of milliseconds, per module, depending on the number of symbols resolved Contractor: Alessio Bogani

Mainline DFU code in U-Boot Device Firmware Upgrade (DFU) is an industry standard for upgrading and manipulating firmware in embedded devices Can use readily available tools to re-flash the kernel and rootfs partitions on a target device Similar to ‘fastboot’ for Android Status: Can fill partitions and boot into new kernel and filesystem Need to finish some cleanups, and do push to mainline U-Boot Contractor: Stefan Schmidt

Linux tiny patches Revival of Linux-tiny patch set Forward-port patches to latest kernel Add more patches to improve kernel configurability Status: lots of work in-progress Section garbage collection almost finished System call optimization - in-progress Configurable duplicated features – in-progress Smaller random number generator – 50% done New archive=gitorious.org/tinylab/tinlinux.git Contractor: Wu Zhangjin

Improve UBIFS mount time Add logging to UBI to avoid bad-block scan of whole device on UBI attach operation UBI attach scales linearly with flash size Can take seconds on a large flash part Status: Contract is started Expect results by ELC Europe Contractor: Linuxtronix (Thomas Gleixner)

Flash filesystem testing Publish performance results for each new kernel version Results posted on elinux.org See Status Work is ongoing Useful results are posted every kernel release Contractor: Free Electrons

Mainline the watchdog framework Provides a generalized watchdog mechanism Should provide easier method to add watchdogging to drivers and the kernel going forward Original framework was written by Alan Cox and others Extend bluetooth stack with Remote SIM Access protocol Allows for Linux bluetooth and telephony stack to utilize SIM in external device for operation Primary use is for Linux-based in-car system to utilize SIM in mobile device for telephony

Bluetooth SIM Access Protocol support Ability to use SIM card in phone via bluetooth connection For in-car telephony using existing handset Modification to BlueZ and oFono Linux telephony stack Status: Bluez patches mainlined oFono patches ready and should be upstream soon Kernel patches stalled going to upstream because of kernel.org outage Contractor: ProFusion

Mainline android logcat Mainline one simple patch set from Android Other people (John Stultz at Linaro) are also trying to mainline things Overall goal is to incrementally reduce difference between Android and mainline kernels Side-goal to easily produce single-kernel systems (outside of Google’s trees) Status: Just approved by CEWG Architecture Group Contractor: Likely: Allesio Bogani

Other CEWG Projects eLinux wiki See Especially, please help with the Android Portal Hardware donations to community developers In progress of giving a PandaBoard to Steve Rostedt LongTerm Support kernel for the industry LTSI – see discussion this afternoon

Outline Kernel Versions Technology Areas CE Workgroup Projects Other Stuff Resources

Other Stuff Tools Build Systems Distributions Android Industry Organizations Miscellaneous

Tools QEMU QEMU is being used everywhere, for device emulation (Android, Yocto) Javascript QEMU implementation (!!) Eclipse Is now de-facto “umbrella” tool for development Need to pry seasoned developers away from command line Tracing Common Trace Format standard exists Perf and ftrace fairly mature in kernel

Build Systems Yocto project Umbrella project – has builder, eclipse tools, other things OpenEmbedded and Yocto are getting integrated Many talks at ELC and ELCE 2011 Still lots of custom build systems out there

Embedded Distributions Tizen!!! = Meego + LIMO (WAC technologies)? Android WebOS HP using it internally, but it won’t be a platform (from HP) in the future Legacy custom embedded Still no “standard” embedded distribution

Tizen Brand new (this week) successor to MeeGo Intel and Samsung, with Linux Foundation driving initiative Nokia dropped out of MeeGo Focus on HTML5 as application platform Some technologies from WAC (Wholesale Applications Community) being adopted Somehow LIMO is involved? See Should get a lot more info a ELC Europe

Android Android 3.1 SDK (Honeycomb r2) released May, 2011‏ Ice Cream Sandwich due Q4 Will unify mobile, tablet and TV platforms in one codebase Phone activations at 500,000 per day Dalvik ported to non-Android Myriad Alien Dalvik for Meego IcedRobot for native Linux OpenMobile’s ACL (Application Compatibility Layer)

Industry organizations Linux Foundation Has lots of embedded-related projects Yocto, Meego, CE Workgroup Recently announced Meego TV workgroup CELF merger with LF CELF is now the LF “CE Workgroup” Now utilizing LF infrastructure Should mean it’s easier for public to participate in CE WG initiatives Linaro Doing lots of great ARM work Toolchain releases, platform releases

Miscellaneous Unlockable bootloaders Announced by Motorola, Sony/Ericsson Can unlock bootloader to install custom firmware Wipes the phone to remove DRM-protected content Motorola says you can re-lock by reinstalling vendor image Increased use of Stack Overflow Great site for answering detailed development questions See Google developers answer questions here

Discussion What are you working on? Good measure of what needs work is whatever developers spent a lot of time working on last year… What was that? What things have you seen this year that I missed?

Kernel Versions Technology Areas CE Workgroup Projects Other Stuff Resources

LWN.net If you are not subscribed, please do so Kernel Newbies eLinux wiki - Especially for slides Linux-embedded mailing list embedded

Thanks!