packaging/embedlinuxpkg.txt

changeset 10
8b5e50e4968e
child 23
5366b8d38d6d
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/packaging/embedlinuxpkg.txt	Fri Jan 13 19:15:33 2012 +0100
     1.3 @@ -0,0 +1,170 @@
     1.4 +Embedded Linux Packaging Systems
     1.5 +Type: Lecture/presentation
     1.6 +Category: Engineering/development
     1.7 +Topic: Internals/System architecture/Implementation choices
     1.8 +Audience: Embedded linux developers
     1.9 +Duration: 45 minute presentation
    1.10 +
    1.11 +Author and Speaker
    1.12 +------------------
    1.13 +Michael Schloh von Bennewitz
    1.14 +Software Engineer, Europalab Networks
    1.15 +web: http://michael.schloh.com/
    1.16 +email: michael@schloh.com
    1.17 +isdn: +49(89)44239885
    1.18 +voip: sips:michael@schloh.com
    1.19 +xmpp: MSvB
    1.20 +
    1.21 +Biography
    1.22 +---------
    1.23 +Michael Schloh von Bennewitz is a computer scientist specializing in
    1.24 +network software, mobile computing, and client server design. He speaks
    1.25 +at technical events every year. In the past, he has given lectures on
    1.26 +object oriented design, technical writing, network protocols, mobile
    1.27 +OSs, MeeGo development, LDAP integration strategies, and the Qt library
    1.28 +build process. His speaking style is humorous, using gestures and good
    1.29 +eye contact. He walks about the room and writes presentations in SVG
    1.30 +or HTML5.
    1.31 +
    1.32 +Abstract
    1.33 +--------
    1.34 +The most important concepts of software packaging are explained,
    1.35 +including definitions, package ingredients (software, text, metadata,
    1.36 +other data), leading to an anatomical dissection of various package
    1.37 +types. A mock up package diagram eases understanding. A brief history
    1.38 +of packaging systems, types, and models includes SVR5, DEB, RPM, Bundle,
    1.39 +Ports, IPkg, OPkg, and APK technologies. Dependency resolution, binary
    1.40 +and source packages differenciation, as well as automated package
    1.41 +management concepts are considered. Embedded requirements for packaging
    1.42 +include performance constraints, signing and security, hardware choices,
    1.43 +as well as commercial aspects not within the developer's control. Due
    1.44 +to the trend of online package stores with many big industry players
    1.45 +opening 'markets', a review clarifies what commonalities, differences,
    1.46 +and nuances such paradigms present. Case studies follow, leading to
    1.47 +an understanding of the packaging systems used by Android, OpenWRT,
    1.48 +M0n0wall, Harmattan, WetabOS, Opendreambox, and maybe Tizen.
    1.49 +Demonstations include examination of the RPM-based WetabOS, the
    1.50 +DEB-based Harmattan OS, and the I/OPKG-based Opendreambox on a set-
    1.51 +top box.
    1.52 +
    1.53 +The audience consists of software engineers, system administrators, as
    1.54 +well as advanced users of devices running embedded linux. Attendants
    1.55 +expect clearly defined device groups (telephones, set-top boxes, IVI)
    1.56 +and want to know the characteristics of corresponding packaging systems.
    1.57 +Of importance for both hobby users as well as industry giants hoping to
    1.58 +profit from the trend to 'stores' and 'markets' of software packages,
    1.59 +Linux can answer the question 'what comes next in packaging technology
    1.60 +and software distribution?'
    1.61 +
    1.62 +The following text is a lecture outline.
    1.63 +
    1.64 +Main chapters (20 minutes)
    1.65 +--------------------------
    1.66 +  Concepts
    1.67 +    Definition of packaging
    1.68 +      Software, text, metadata, other data
    1.69 +      Anatomy of various package types
    1.70 +      Mock up package diagram
    1.71 +    History of packaging
    1.72 +      SVR5
    1.73 +      DEB
    1.74 +      RPM
    1.75 +      Bundle
    1.76 +      Ports
    1.77 +      IPkg
    1.78 +      OPkg
    1.79 +      APK
    1.80 +    Dependency resolution
    1.81 +    Binary or source packages
    1.82 +    Automated package management
    1.83 +
    1.84 +  Requirements
    1.85 +    Embedded packaging defined
    1.86 +    Mobile packaging defined
    1.87 +    Performance constraints
    1.88 +    Signing and security
    1.89 +    Hardware choices
    1.90 +      ARM, PC Engines, Panda/Beagle board, Chumby...
    1.91 +    Affecting design choices
    1.92 +
    1.93 +  Commercial aspects
    1.94 +    Trend of online package stores
    1.95 +    Big five (Google, Intel, Nokia, Microsoft, Apple)
    1.96 +    Balancing developer interest with beaurocratic apathy
    1.97 +      Paying money to become an 'official' developer
    1.98 +      Being 'allowed' to develop own applications
    1.99 +      Choice of license, ownership, and business models
   1.100 +      Unwanted nontechnical involvement
   1.101 +
   1.102 +  Case studies
   1.103 +    Android [1]
   1.104 +    OpenWRT [2]
   1.105 +    M0n0wall [3]
   1.106 +    Harmattan [4]
   1.107 +    WetabOS [5]
   1.108 +    Opendreambox [6]
   1.109 +    Tizen [7][8]
   1.110 +
   1.111 +Demonstrations (10 minutes)
   1.112 +---------------------------
   1.113 +  WetabOS on ExoPC tablet (RPM)
   1.114 +  Harmattan on Nokia telephone (DEB)
   1.115 +  Opendreambox on Dream set-top box (I/OPKG)
   1.116 +
   1.117 +Optional discussion (5 minutes)
   1.118 +-------------------------------
   1.119 +  Legacy MeeGo packaging
   1.120 +  Intel AppUp approach
   1.121 +  Packaging Arduino software
   1.122 +
   1.123 +Questions (10 minutes)
   1.124 +----------------------
   1.125 +  Anticipated questions
   1.126 +    How to make a package for a given embedded OS?
   1.127 +    Can a package be prepared on one device and copied to another?
   1.128 +    Can packages be prepared for various architectures with fat binaries?
   1.129 +    Architectural hardware 32-bit, 64-bit, and other CPU properties.
   1.130 +    How do I know which packages are installed on my device or phone?
   1.131 +
   1.132 +Relevant jokes about...
   1.133 +-----------------------
   1.134 +  Packaging systems
   1.135 +  Linux operating system
   1.136 +
   1.137 +Glossary
   1.138 +--------
   1.139 +  Debian package file (DEB)
   1.140 +  Redhat Package Manager (RPM)
   1.141 +  Android Application Package File (APK)
   1.142 +  Silverlight Application Package (XAP)
   1.143 +
   1.144 +Errata
   1.145 +------
   1.146 +  Android is not considered Linux by some.
   1.147 +  M0n0wall does not really run on Linux, rather on FreeBSD.
   1.148 +  Competing 'big five' do not all develop or distribute Linux.
   1.149 +  Some technology is deprecated, for example MeeGo variants.
   1.150 +
   1.151 +Lecture materials
   1.152 +-----------------
   1.153 +This lecture is developed on a public source code revision management
   1.154 +system [9]. It is (or will be) published on a public file server [10].
   1.155 +
   1.156 +Technical requirements
   1.157 +----------------------
   1.158 +A WLAN connection (for remote slide advancement,) internet connectivity
   1.159 +(for demonstration purposes,) and a whiteboard (to sketch diagrams) are
   1.160 +needed for this presentation.
   1.161 +
   1.162 +Links and notes
   1.163 +---------------
   1.164 +  [1] http://developer.android.com/guide/developing/building/
   1.165 +  [2] http://www.openwrt.org/
   1.166 +  [3] http://m0n0.ch/wall/
   1.167 +  [4] http://harmattan-dev.nokia.com/docs/library/
   1.168 +  [5] http://www.4tiitoo.com/wetab-os.en.html
   1.169 +  [6] http://www.dreamboxupdate.com/
   1.170 +  [7] http://www.tizen.org/
   1.171 +  [8] will be considered a valid topic pending advice from Intel reps.
   1.172 +  [9] http://scm.europalab.com/lectures/
   1.173 +  [10] ftp://ftp.europalab.com/pub/doc/lect/

mercurial