michael@10: Embedded Linux Packaging Systems michael@10: Type: Lecture/presentation michael@10: Category: Engineering/development michael@10: Topic: Internals/System architecture/Implementation choices michael@10: Audience: Embedded linux developers michael@10: Duration: 45 minute presentation michael@10: michael@10: Author and Speaker michael@10: ------------------ michael@10: Michael Schloh von Bennewitz michael@10: Software Engineer, Europalab Networks michael@10: web: http://michael.schloh.com/ michael@10: email: michael@schloh.com michael@10: isdn: +49(89)44239885 michael@10: voip: sips:michael@schloh.com michael@10: xmpp: MSvB michael@10: michael@10: Biography michael@10: --------- michael@10: Michael Schloh von Bennewitz is a computer scientist specializing in michael@10: network software, mobile computing, and client server design. He speaks michael@10: at technical events every year. In the past, he has given lectures on michael@10: object oriented design, technical writing, network protocols, mobile michael@10: OSs, MeeGo development, LDAP integration strategies, and the Qt library michael@10: build process. His speaking style is humorous, using gestures and good michael@10: eye contact. He walks about the room and writes presentations in SVG michael@10: or HTML5. michael@10: michael@10: Abstract michael@10: -------- michael@10: The most important concepts of software packaging are explained, michael@10: including definitions, package ingredients (software, text, metadata, michael@10: other data), leading to an anatomical dissection of various package michael@10: types. A mock up package diagram eases understanding. A brief history michael@10: of packaging systems, types, and models includes SVR5, DEB, RPM, Bundle, michael@10: Ports, IPkg, OPkg, and APK technologies. Dependency resolution, binary michael@10: and source packages differenciation, as well as automated package michael@10: management concepts are considered. Embedded requirements for packaging michael@10: include performance constraints, signing and security, hardware choices, michael@10: as well as commercial aspects not within the developer's control. Due michael@10: to the trend of online package stores with many big industry players michael@10: opening 'markets', a review clarifies what commonalities, differences, michael@10: and nuances such paradigms present. Case studies follow, leading to michael@10: an understanding of the packaging systems used by Android, OpenWRT, michael@10: M0n0wall, Harmattan, WetabOS, Opendreambox, and maybe Tizen. michael@10: Demonstations include examination of the RPM-based WetabOS, the michael@10: DEB-based Harmattan OS, and the I/OPKG-based Opendreambox on a set- michael@10: top box. michael@10: michael@10: The audience consists of software engineers, system administrators, as michael@10: well as advanced users of devices running embedded linux. Attendants michael@10: expect clearly defined device groups (telephones, set-top boxes, IVI) michael@10: and want to know the characteristics of corresponding packaging systems. michael@10: Of importance for both hobby users as well as industry giants hoping to michael@10: profit from the trend to 'stores' and 'markets' of software packages, michael@10: Linux can answer the question 'what comes next in packaging technology michael@10: and software distribution?' michael@10: michael@10: The following text is a lecture outline. michael@10: michael@10: Main chapters (20 minutes) michael@10: -------------------------- michael@10: Concepts michael@10: Definition of packaging michael@10: Software, text, metadata, other data michael@10: Anatomy of various package types michael@10: Mock up package diagram michael@10: History of packaging michael@10: SVR5 michael@10: DEB michael@10: RPM michael@10: Bundle michael@10: Ports michael@10: IPkg michael@10: OPkg michael@10: APK michael@10: Dependency resolution michael@10: Binary or source packages michael@10: Automated package management michael@10: michael@10: Requirements michael@10: Embedded packaging defined michael@10: Mobile packaging defined michael@10: Performance constraints michael@10: Signing and security michael@10: Hardware choices michael@10: ARM, PC Engines, Panda/Beagle board, Chumby... michael@10: Affecting design choices michael@10: michael@10: Commercial aspects michael@10: Trend of online package stores michael@10: Big five (Google, Intel, Nokia, Microsoft, Apple) michael@10: Balancing developer interest with beaurocratic apathy michael@10: Paying money to become an 'official' developer michael@10: Being 'allowed' to develop own applications michael@10: Choice of license, ownership, and business models michael@10: Unwanted nontechnical involvement michael@10: michael@10: Case studies michael@10: Android [1] michael@10: OpenWRT [2] michael@10: M0n0wall [3] michael@10: Harmattan [4] michael@10: WetabOS [5] michael@10: Opendreambox [6] michael@10: Tizen [7][8] michael@10: michael@10: Demonstrations (10 minutes) michael@10: --------------------------- michael@10: WetabOS on ExoPC tablet (RPM) michael@10: Harmattan on Nokia telephone (DEB) michael@10: Opendreambox on Dream set-top box (I/OPKG) michael@10: michael@10: Optional discussion (5 minutes) michael@10: ------------------------------- michael@10: Legacy MeeGo packaging michael@10: Intel AppUp approach michael@10: Packaging Arduino software michael@10: michael@10: Questions (10 minutes) michael@10: ---------------------- michael@10: Anticipated questions michael@10: How to make a package for a given embedded OS? michael@10: Can a package be prepared on one device and copied to another? michael@10: Can packages be prepared for various architectures with fat binaries? michael@10: Architectural hardware 32-bit, 64-bit, and other CPU properties. michael@10: How do I know which packages are installed on my device or phone? michael@10: michael@10: Relevant jokes about... michael@10: ----------------------- michael@10: Packaging systems michael@10: Linux operating system michael@10: michael@10: Glossary michael@10: -------- michael@10: Debian package file (DEB) michael@10: Redhat Package Manager (RPM) michael@10: Android Application Package File (APK) michael@10: Silverlight Application Package (XAP) michael@10: michael@10: Errata michael@10: ------ michael@10: Android is not considered Linux by some. michael@10: M0n0wall does not really run on Linux, rather on FreeBSD. michael@10: Competing 'big five' do not all develop or distribute Linux. michael@10: Some technology is deprecated, for example MeeGo variants. michael@23: Arduino does not seem capable of running Linux. michael@10: michael@10: Lecture materials michael@10: ----------------- michael@10: This lecture is developed on a public source code revision management michael@10: system [9]. It is (or will be) published on a public file server [10]. michael@10: michael@10: Technical requirements michael@10: ---------------------- michael@10: A WLAN connection (for remote slide advancement,) internet connectivity michael@10: (for demonstration purposes,) and a whiteboard (to sketch diagrams) are michael@10: needed for this presentation. michael@10: michael@10: Links and notes michael@10: --------------- michael@10: [1] http://developer.android.com/guide/developing/building/ michael@10: [2] http://www.openwrt.org/ michael@10: [3] http://m0n0.ch/wall/ michael@10: [4] http://harmattan-dev.nokia.com/docs/library/ michael@10: [5] http://www.4tiitoo.com/wetab-os.en.html michael@10: [6] http://www.dreamboxupdate.com/ michael@10: [7] http://www.tizen.org/ michael@10: [8] will be considered a valid topic pending advice from Intel reps. michael@10: [9] http://scm.europalab.com/lectures/ michael@10: [10] ftp://ftp.europalab.com/pub/doc/lect/