Mastering Variability Challenges in Linux and Related Highly-Configurable System Software

Total Page:16

File Type:pdf, Size:1020Kb

Mastering Variability Challenges in Linux and Related Highly-Configurable System Software Mastering Variability Challenges in Linux and Related Highly-Configurable System Software Der Technischen Fakultät der Friedrich-Alexander-Universität Erlangen-Nürnberg zur Erlangung des Doktorgrades DOKTOR-INGENIEUR vorgelegt von Reinhard Tartler aus Nürnberg Als Dissertation genehmigt von der Technischen Fakultät Friedrich-Alexander-Universität Erlangen-Nürnberg Tag der mündlichen Prüfung: 8. August 2013 Vorsitzender des Promotionsorgans: Prof. Dr. Marion Merklein Gutachter: Prof. Dr.-Ing. Wolfgang Schröder-Preikschat Dr.-Ing. Sven Apel Beherrschung von Variabilitätsproblemen in Linux und verwandter hoch-konfigurierbarer Systemsoftware Die von moderner Systemsoftware angebotenen Konfigurationsmechanismen erlauben die Anpassung an eine breite Auswahl von unterstützten Hard- warearchitekturen und Anwendungsdomänen. Linux ist hierbei ein sowohl prominentes als auch gutes Beispiel: In Version 3.2 bietet Linux mehr als 12;000 vom Benutzer steuerbare Konfigurationsschalter, mit stark steigender Tendenz. Dieses hohe Maß an Konfigurierbarkeit stellt Entwickler vor große Heraus- forderungen. Zum einen muss die in den Konfigurationswerkzeugen deklari- erte, mit der im Programmtext umgesetzten Variabilität in Einklang gehalten werden. Bei händischer Durchführung stellt dies einen mühsamen und fehler- anfälligen Arbeitsschritt dar. Zum anderen erschweren die im Programmtext programmierten Alternativen den Einsatz von statischen Analysewerkzeugen. Schließlich macht die überwältigende Anzahl an Konfigurationsoptionen es Systemintegratoren und Entwicklern schwer, die für einen gegebenen Anwen- dungsfall beste Belegung der Konfigurationsschalter zu finden. In dieser Arbeit analysiere ich die Variabilitätsmechanismen in Linux und verwandter Systemsoftware, bei der ich im ersten Schritt viele Inkonsistenzen zwischen der Deklaration und Umsetzung von Variabilität aufdecke. Viele dieser Inkonsistenzen sind dabei nachweislich tatsächliche Programmierfehler. Es stellt sich dabei heraus, dass das extrahierte Variabilitätsmodell auch für weitere Anwendungen nützlich ist. So hilft das formalisierte Modell Entwick- lern bestehende statische Analysewerkzeuge effektiver einsetzen zu können. Dies erlaubt die systematische Aufdeckung von Programmfehlern, die in selten gewählten Konfigurationen verborgen sind. Darüber hinaus ermöglicht mein Ansatz die Konstruktion einer minimalen Konfiguration mit dem extrahierten Variabilitätsmodell und einer Laufzeitanalyse des Systems. Dies ermöglicht es Systemadministratoren einen Linux-Kern mit einer deutlich verkleinerten Angriffsfläche zu übersetzen und zu betreiben, was die Sicherheit des Gesamt- systems deutlich erhöht. Letztendlich erlaubt mein Ansatz die ganzheitliche Beherrschung der Variabilität in Linux zur Übersetzungszeit über die Sprach- grenzen der eingesetzten Werkzeuge KCONFIG, MAKE und CPP, hinweg. Mastering Variability Challenges in Linux and Related Highly-Configurable System Software The compile-time configuration mechanisms of modern system software allow the adaptation to a broad range of supported hardware architectures and application domains. Linux is hereby a both prominent and good example: In version 3.2, Linux provides more than 12;000 user-configurable configuration options, growing rapidly. This high amount of configurability imposes big challenges for developers. First, the declared variability in the configuration tooling, and what is actually implemented in the code, have to be kept in sync. If performed manually, this is a tedious and error-prone task. Second, alternatives implemented in the code make the use of tools for static analysis challenging. Finally, the overwhelming amount of configuration options make finding the best configuration for a given use-case hard for system integrators and developers. In this thesis, I analyze the variability mechanisms in Linux and related system software, in which I reveal many inconsistencies between the variability declaration and implementation. Many of these inconsistencies are hereby provably actual programming errors. It turns out that the extracted variability model is useful for additional applications. The formalized model helps developers with employing existing tools for static analysis more effectively. This allows the systematic revelation of bugs that are hidden under seldom tested configurations. Moreover, my approach enables the construction of a minimal Linux configuration with the extracted variability model and a run- time analysis of the system. This enables system administrators to compile and operate a Linux kernel with significantly reduced attack-surface, which makes the system more secure. In the end, my approach allows the holistic mastering of compile-time variability across the language barriers of the employed tools KCONFIG, MAKE and CPP. Acknowledgements Many people have supported me in writing this thesis, for which I am very thankful. Special thanks go to my supervising professor WOLFGANG SCHRÖDER- PREIKSCHAT, who has given me the opportunity to work in a tremendous environment of research and teaching! I am thankful for having met DANIEL LOHMANN, who has not only supervised my master thesis, but has always acted as a thoughtful and great mentor. I am very thankful for the enduring support from my wife KATHRIN, who continuously motivated me during both my studies and research. Also many thanks to my parents, and my in-laws INGRID and BURCKHARD, for their assistance and backing that I received over the many years. I wish all the best for the future to the VAMOS team, which at the time of writing consisting of CHRISTIAN DIETRICH and CHRISTOPH EGGER, with whom I kick-started the very first ideas of this dissertation. Also many thanks to the “tracewars” team: VALENTIN ROTHBERG, ANDREAS RUPRECHT and BERNHARD HEINLOTH for the great time we spent together. I wish all the best to STEFAN HENGELEIN and MANUEL ZERPIES for the future. I’m am overwhelmed by the friendliness, openness and support of the research staff at the Department of Computer Science 4. I’m happy to have met JÜRGEN KLEINÖDER, who has enabled me to join the group. It was more than pleasure to work with JULIO SINCERO—thank you for the great time. Many thanks to my former colleagues MICHAEL GERNOTH, FABIAN SCHELER, PETER ULBRICH, MORITZ STRÜBE, BENJAMIN OECHSLEIN, and TOBIAS DISTLER, who always assisted me with idea and provided inspiration. My respect and thanks also go to the rest of the remarkable and very vivid team of researchers of this department, who made my former workplace a joyful and inspirational, and successful place. Thanks! Erlangen, August 2013 vii Contents 1. Introduction1 1.1. Variability in Configurable System Software...........2 1.2. Problem Statement and Contributions of this Thesis.......4 1.3. Structure of this Thesis.......................5 2. Problem Analysis and State of the Art7 2.1. Variability Realization in Linux..................9 2.1.1. The Variability Declaration................ 11 2.1.2. Variability Implementation................. 12 2.1.3. Granularity of Variability Implementations........ 14 2.1.4. Generalization....................... 14 2.2. Related Work............................ 15 2.2.1. Program Families and Software Product Lines...... 15 2.2.2. Management of Variability in Operating Systems.... 16 2.2.3. Variability-Aware Analysis of Source Code........ 18 2.2.4. Implementation of Features in Operating Systems.... 19 2.3. Chapter Summary......................... 22 3. Extraction and Validation of Variability Implementations 23 3.1. The Variability Language of the Linux Kernel........... 25 3.1.1. General Characteristics of the Linux Configuration Model 26 3.1.2. Translation into Propositional Logic............ 27 3.1.3. Analysis of the KCONFIG Model.............. 28 3.1.4. Related Work and Limitations............... 29 3.1.5. Summary: The Variability Language of the Linux Kernel 30 3.2. Robust Extraction of Variability from the Linux Build System.. 31 3.2.1. The Role of the Build System............... 31 3.2.2. Related Approaches for Build System Variability Extraction 33 3.2.3. Common KBUILD Idioms.................. 34 3.2.4. Challenges in Build-System Analysis........... 35 3.2.5. Experimental Probing for Build-System Variability.... 38 3.2.6. Benefits and Limitations.................. 43 3.2.7. Application to Real-World Software Projects....... 44 ix Contents 3.2.8. Summary: Robust Extraction of Variability from the Linux Build System..................... 50 3.3. Variability with the C Preprocessor................ 51 3.3.1. The use of C preprocessor (CPP) in Linux........ 51 3.3.2. Conditional Compilation.................. 52 3.3.3. Expressing the Variability of CPP in Propositional Formulas 53 3.3.4. Non-Boolean expression.................. 58 3.3.5. Extraction of Code Variability in BUSYBOX ........ 59 3.3.6. Experimental Validation of the Extracted Formula.... 60 3.3.7. Further Related Work................... 60 3.3.8. Summary: Variability with the C Preprocessor...... 61 3.4. Chapter Summary......................... 63 4. Case Studies 65 4.1. Configuration Consistency..................... 67 4.1.1. Manifestations of Configuration Inconsistencies..... 67 4.1.2. Ensuring Configuration Consistency........... 70 4.1.3. Application on Linux.................... 74 4.1.4. Improvements by Makefile Constraints.......... 78 4.1.5. Accuracy.......................... 79 4.1.6. General Applicability of the Approach.......... 79 4.1.7. Further Related Work................... 81 4.1.8. Summary: Configuration Consistency........... 81 4.2. Configuration
Recommended publications
  • Security Analysis of Docker Containers in a Production Environment
    Security analysis of Docker containers in a production environment Jon-Anders Kabbe Master of Science in Communication Technology Submission date: June 2017 Supervisor: Colin Alexander Boyd, IIK Co-supervisor: Audun Bjørkøy, TIND Technologies Norwegian University of Science and Technology Department of Information Security and Communication Technology Title: Security Analysis of Docker Containers in a Production Environment Student: Jon-Anders Kabbe Problem description: Deployment of Docker containers has achieved its popularity by providing an au- tomatable and stable environment serving a particular application. Docker creates a separate image of a file system with everything the application require during runtime. Containers run atop the regular file system as separate units containing only libraries and tools that particular application require. Docker containers reduce the attack surface, improves process interaction and sim- plifies sandboxing. But containers also raise security concerns, reduced segregation between the operating system and application, out of date or variations in libraries and tools and is still an unsettled technology. Docker containers provide a stable and static environment for applications; this is achieved by creating a static image of only libraries and tools the specific application needs during runtime. Out of date tools and libraries are a major security risk when exposing applications over the Internet, but availability is essential in a competitive market. Does Docker raise some security concerns compared to standard application deploy- ment such as hypervisor-based virtual machines? Is the Docker “best practices” sufficient to secure the container and how does this compare to traditional virtual machine application deployment? Responsible professor: Colin Alexander Boyd, ITEM Supervisor: Audun Bjørkøy, TIND Technologies Abstract Container technology for hosting applications on the web is gaining traction as the preferred mode of deployment.
    [Show full text]
  • Embedded Linux Systems with the Yocto Project™
    OPEN SOURCE SOFTWARE DEVELOPMENT SERIES Embedded Linux Systems with the Yocto Project" FREE SAMPLE CHAPTER SHARE WITH OTHERS �f, � � � � Embedded Linux Systems with the Yocto ProjectTM This page intentionally left blank Embedded Linux Systems with the Yocto ProjectTM Rudolf J. Streif Boston • Columbus • Indianapolis • New York • San Francisco • Amsterdam • Cape Town Dubai • London • Madrid • Milan • Munich • Paris • Montreal • Toronto • Delhi • Mexico City São Paulo • Sidney • Hong Kong • Seoul • Singapore • Taipei • Tokyo Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. For information about buying this title in bulk quantities, or for special sales opportunities (which may include electronic versions; custom cover designs; and content particular to your business, training goals, marketing focus, or branding interests), please contact our corporate sales depart- ment at [email protected] or (800) 382-3419. For government sales inquiries, please contact [email protected]. For questions about sales outside the U.S., please contact [email protected]. Visit us on the Web: informit.com Cataloging-in-Publication Data is on file with the Library of Congress.
    [Show full text]
  • Introduction to the Yocto Project / Openembedded-Core
    Embedded Recipes Conference - 2017 Introduction to the Yocto Project / OpenEmbedded-core Mylène Josserand Bootlin [email protected] embedded Linux and kernel engineering - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/1 Mylène Josserand I Embedded Linux engineer at Bootlin since 2016 I Embedded Linux expertise I Development, consulting and training around the Yocto Project I One of the authors of Bootlin’ Yocto Project / OpenEmbedded training materials. I Kernel contributor: audio driver, touchscreen, RTC and more to come! embedded Linux and kernel engineering - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/1 I Understand why we should use a build system I How the Yocto Project / OpenEmbedded core are structured I How we can use it I How we can update it to fit our needs I Give some good practices to start using the Yocto Project correctly I Allows to customize many things: it is easy to do things the wrong way I When you see a X, it means it is a good practice! Introduction I In this talk, we will: - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/1 I How the Yocto Project / OpenEmbedded core are structured I How we can use it I How we can update it to fit our needs I Give some good practices to start using the Yocto Project correctly I Allows to customize many things: it is easy to do things the wrong way I When you see a X, it means it is a good practice!
    [Show full text]
  • Hands-On Kernel Lab
    Hands-on Kernel Lab Based on the Yocto Project 1.4 release (dylan) April 2013 Tom Zanussi <[email protected]> Darren Hart <[email protected]> Introduction Welcome to the Yocto Project Hands-on Kernel Lab! During this session you will learn how to work effectively with the Linux kernel within the Yocto Project. The 'Hands-on Kernel Lab' is actually a series of labs that will cover the following topics: • Creating and using a traditional kernel recipe (lab1) • Using 'bitbake -c menuconfig' to modify the kernel configuration and replace the defconfig with the new configuration (lab1) • Adding a kernel module to the kernel source and configuring it as a built-in module by adding options to the kernel defconfig (lab1) • Creating and using a linux-yocto-based kernel (lab2) • Adding a kernel module to the kernel source and configuring it as a built-in module using linux-yocto 'config fragments' (lab2) • Using the linux-yocto kernel as an LTSI kernel (configuring in an item added by the LTSI kernel which is merged into linux-yocto) (lab2) • Using an arbitrary git-based kernel via the linux-yocto-custom kernel recipe (lab3) • Adding a kernel module to the kernel source of an arbitrary git-based kernel and configuring it as a loadable module using 'config fragments' (lab3) • Actually getting the module into the image and autoloading it on boot (lab3) • Using a local clone of an arbitrary git-based kernel via the linux-yocto- custom kernel recipe to demonstrate a typical development workflow (lab4) • Modifying the locally cloned custom
    [Show full text]
  • OS Selection for Dummies
    OS SELECTION HOW TO CHOOSE HOW TO CHOOSE Choosing your OS is the first step, so take the time to consider your choice fully. There are many parameters to take into account: l Is this a new project or the evolution of an existing product? l Using the same SW stack? Re-using existing code? l Is your team familiar with a particular OS? Ø Using an OS you are already comfortable with can help l What are the HW constraints of your system? Ø Some operating systems require more memory/processing power than others l Have no SW team? Not sure about the above? Ø Contact us so we can help you decide! Ø We can also introduce you to one of our many partners! 1 OS SELECTION OPEN SOURCE VS. COMMERCIAL OS Embedded OS BSP Provider $ Cost Open-Source OS Boundary Devices • Embedded Linux / Android Embedded Linux $0, included • Large pool of developers available with Board Purchase • Strong community • Royalty-free And / or partners 3rd Party - Commercial OS Partners • QNX / Win10 IoT / Green Hills $>0, depends on • Professional support requirements • Unique set of development tools 2 OS SELECTION OPEN SOURCE SELECTION OS SELECTION PROS CONS Embedded Linux Most powerful / optimized Complexity for newcomers solution, maintained by NXP • Build systems Ø Yocto / Buildroot Simpler solution, makefile- Not as flexible as Yocto Ø Everything built from scratch based, maintained by BD Desktop-like approach, Harder to customize, non- Package-based distribution easy-to-use atomic updates, no cross- • Ubuntu / Debian compilation SDK Apt install / update, millions • Packages installed from server of prebuilt packages available Android Millions of apps available, same number of developers, Resource-hungry, complex • AOSP-based (no GMS) development environment, BSP modifications (HAL) • APK applications IDE + debugging tools 3 SOFTWARE PARTNERS Boundary Devices has an industry-leading group of software partners.
    [Show full text]
  • Firecracker: Lightweight Virtualization for Serverless Applications
    Firecracker: Lightweight Virtualization for Serverless Applications Alexandru Agache, Marc Brooker, Andreea Florescu, Alexandra Iordache, Anthony Liguori, Rolf Neugebauer, Phil Piwonka, and Diana-Maria Popa, Amazon Web Services https://www.usenix.org/conference/nsdi20/presentation/agache This paper is included in the Proceedings of the 17th USENIX Symposium on Networked Systems Design and Implementation (NSDI ’20) February 25–27, 2020 • Santa Clara, CA, USA 978-1-939133-13-7 Open access to the Proceedings of the 17th USENIX Symposium on Networked Systems Design and Implementation (NSDI ’20) is sponsored by Firecracker: Lightweight Virtualization for Serverless Applications Alexandru Agache Marc Brooker Andreea Florescu Amazon Web Services Amazon Web Services Amazon Web Services Alexandra Iordache Anthony Liguori Rolf Neugebauer Amazon Web Services Amazon Web Services Amazon Web Services Phil Piwonka Diana-Maria Popa Amazon Web Services Amazon Web Services Abstract vantage over traditional server provisioning processes: mul- titenancy allows servers to be shared across a large num- Serverless containers and functions are widely used for de- ber of workloads, and the ability to provision new func- ploying and managing software in the cloud. Their popularity tions and containers in milliseconds allows capacity to be is due to reduced cost of operations, improved utilization of switched between workloads quickly as demand changes. hardware, and faster scaling than traditional deployment meth- Serverless is also attracting the attention of the research com- ods. The economics and scale of serverless applications de- munity [21,26,27,44,47], including work on scaling out video mand that workloads from multiple customers run on the same encoding [13], linear algebra [20, 53] and parallel compila- hardware with minimal overhead, while preserving strong se- tion [12].
    [Show full text]
  • Yocto-Slides.Pdf
    Yocto Project and OpenEmbedded Training Yocto Project and OpenEmbedded Training © Copyright 2004-2021, Bootlin. Creative Commons BY-SA 3.0 license. Latest update: October 6, 2021. Document updates and sources: https://bootlin.com/doc/training/yocto Corrections, suggestions, contributions and translations are welcome! embedded Linux and kernel engineering Send them to [email protected] - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/296 Rights to copy © Copyright 2004-2021, Bootlin License: Creative Commons Attribution - Share Alike 3.0 https://creativecommons.org/licenses/by-sa/3.0/legalcode You are free: I to copy, distribute, display, and perform the work I to make derivative works I to make commercial use of the work Under the following conditions: I Attribution. You must give the original author credit. I Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. I For any reuse or distribution, you must make clear to others the license terms of this work. I Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. Document sources: https://github.com/bootlin/training-materials/ - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/296 Hyperlinks in the document There are many hyperlinks in the document I Regular hyperlinks: https://kernel.org/ I Kernel documentation links: dev-tools/kasan I Links to kernel source files and directories: drivers/input/ include/linux/fb.h I Links to the declarations, definitions and instances of kernel symbols (functions, types, data, structures): platform_get_irq() GFP_KERNEL struct file_operations - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/296 Company at a glance I Engineering company created in 2004, named ”Free Electrons” until Feb.
    [Show full text]
  • Why the Yocto Project for My Iot Project?
    Why the Yocto Project for my IoT Project? Drew Moseley Technical Solutions Architect Mender.io Session overview ● Motivation ● Challenges for Embedded, Linux and IoT developers ● Describe IoT workflow ● Overview of Yocto ● Benefits of Linux and Yocto for IoT about.me Drew Moseley Mender.io ○ 10 years in Embedded Linux/Yocto development. ○ Over-the-air updater for Embedded Linux ○ Longer than that in general Embedded Software. ○ Project Lead and Solutions Architect. ○ Open source (Apache License, v2) ○ Dual A/B rootfs layout (client) [email protected] https://twitter.com/drewmoseley ○ Remote deployment management (server) https://www.linkedin.com/in/drewmoseley/ https://twitter.com/mender_io ○ Under active development Motivation Embedded Projects increasingly use Linux: ● AspenCore/Linux.com1: Embedded Linux top 2 in current and planned use. Huge IoT market opportunity: ● Forbes2: $267B by 2020 Linux is a big player in IoT ● Nodes & Gateways3 - 17.18 Billion units by 2023 ● Inexpensive prototyping hardware - Raspberry Pi, Beaglebone, etc ● Readily available production hardware - Toradex, Variscite, Boundary Devices ● Wide selection of chipsets - NXP, TI, Microchip, Nvidia 1 https://www.linux.com/news/event/elce/2017/linux-and-open-source-move-embedded-says-survey 2 https://www.forbes.com/sites/louiscolumbus/2017/01/29/internet-of-things-market-to-reach-267b-by-2020 3 http://www.marketsandmarkets.com/PressReleases/iot-gateway.asp Challenges for Embedded Linux/IoT Developers Hardware variety Storage Media Software may be maintained in forks Cross development Initial device provisioning Getting Started Guide for Embedded/IoT Development 1. Buy Hardware1 1https://makezine.com/comparison/boards/ Getting Started Guide for Embedded/IoT Development 1. Buy Hardware1 2.
    [Show full text]
  • RTI TLS Support Release Notes
    RTI TLS Support Release Notes Version 6.1.0 © 2021 Real-Time Innovations, Inc. All rights reserved. Printed in U.S.A. First printing. April 2021. Trademarks RTI, Real-Time Innovations, Connext, NDDS, the RTI logo, 1RTI and the phrase, “Your Systems. Work- ing as one,” are registered trademarks, trademarks or service marks of Real-Time Innovations, Inc. All other trademarks belong to their respective owners. Copy and Use Restrictions No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form (including electronic, mechanical, photocopy, and facsimile) without the prior written permission of Real- Time Innovations, Inc. The software described in this document is furnished under and subject to the RTI software license agreement. The software may be used or copied only under the terms of the license agree- ment. This is an independent publication and is neither affiliated with, nor authorized, sponsored, or approved by, Microsoft Corporation. The security features of this product include software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/). This product includes cryptographic software written by Eric Young ([email protected]). This product includes software written by Tim Hudson ([email protected]). Technical Support Real-Time Innovations, Inc. 232 E. Java Drive Sunnyvale, CA 94089 Phone: (408) 990-7444 Email: [email protected] Website: https://support.rti.com/ Contents Chapter 1 Supported Platforms 1 Chapter 2 Compatibility 3 Chapter 3 What's New in 6.1.0 3.1 Added Platforms 4 3.2 Removed Platforms 4 3.3 Updated OpenSSL Version 5 3.4 Target OpenSSL Bundles Distributed as .rtipkg Files 5 3.5 Changes to OpenSSL Static Library Names 5 Chapter 4 What's Fixed in 6.1.0 4.1 Still reachable memory leaks 6 4.2 No way to configure TLS 1.3 ciphers 6 Chapter 5 Known Issues 5.1 Possible Valgrind still-reachable leaks when loading dynamic libraries 7 iii Chapter 1 Supported Platforms This release of RTI® TLS Support is supported on the platforms in Table 1.1 Supported Platforms.
    [Show full text]
  • A Timeline for Embedded Linux
    A timeline for embedded Linux Chris Simmonds 2net Ltd. 30th April 2014 Chris Simmonds (2net Ltd.) A timeline for embedded Linux 30th April 2014 1 / 26 License These slides are available under a Creative Commons Attribution-ShareAlike 3.0 license. You can read the full text of the license here http://creativecommons.org/licenses/by-sa/3.0/legalcode You are free to • copy, distribute, display, and perform the work • make derivative works • make commercial use of the work Under the following conditions • Attribution: you must give the original author credit • Share Alike: if you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one (i.e. include this page exactly as it is) • For any reuse or distribution, you must make clear to others the license terms of this work The orginals are at http://2net.co.uk/slides/ Chris Simmonds (2net Ltd.) A timeline for embedded Linux 30th April 2014 2 / 26 About Chris Simmonds • Consultant and trainer • Working with embedded Linux since 1999 • Android since 2009 • Speaker at many conferences and workshops "Looking after the Inner Penguin" blog at http://2net.co.uk/ https://uk.linkedin.com/in/chrisdsimmonds/ https://google.com/+chrissimmonds Chris Simmonds (2net Ltd.) A timeline for embedded Linux 30th April 2014 3 / 26 The early days: 1995 to 1999 • By 1995 Linux was already attracting attention beyond desktop and server • It just needed a few more steps to make it a real contender... Chris Simmonds (2net Ltd.) A timeline for embedded Linux
    [Show full text]
  • Yocto Project Development Manual [ from the Yocto Project Website
    Scott Rifenbark, Intel Corporation <[email protected]> by Scott Rifenbark Copyright © 2010-2014 Linux Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-Share Alike 2.0 UK: England & Wales [http://creativecommons.org/licenses/by-sa/2.0/uk/] as published by Creative Commons. Note For the latest version of this manual associated with this Yocto Project release, see the Yocto Project Development Manual [http://www.yoctoproject.org/docs/1.7/dev-manual/dev-manual.html] from the Yocto Project website. Table of Contents 1. The Yocto Project Development Manual .................................................................................. 1 1.1. Introduction ................................................................................................................. 1 1.2. What This Manual Provides .......................................................................................... 1 1.3. What this Manual Does Not Provide ............................................................................. 1 1.4. Other Information ........................................................................................................ 2 2. Getting Started with the Yocto Project .................................................................................... 4 2.1. Introducing the Yocto Project ....................................................................................... 4 2.2. Getting Set Up ...........................................................................................................
    [Show full text]
  • Instituto Tecnológico De Costa Rica Escuela De Ingenier´Ia En
    Instituto Tecnol´ogicode Costa Rica Escuela de Ingenier´ıaen Electr´onica Improvement of small satellite's software design with build system and continuous integration tools para optar por el t´ıtulode Ingeniero en Electr´onicacon ´enfasisen sistemas empotrados con el grado acad´emicode Maestr´ıa Allan Granados [email protected] Cartago, Diciembre, 2015 2 Contents 1 Introduction 8 1.1 Previous work focus on small satellites . .9 1.2 Problem statement . 11 1.3 Proposed solution . 13 1.3.1 Proposed development . 13 2 Software development approaches for small satellites 15 2.1 Software methodologies used for satellites design . 15 2.2 Small satellite design and structure . 17 2.3 Central computation system in satellites. Homogeneous and Het- erogeneous systems . 18 2.4 Different approach on software development for small satellites . 20 2.4.1 Software development: Monolithic approach . 20 2.4.2 Software development: Development by component . 21 2.5 Open Source tools on the design and implementation of software satellite . 23 3 Integration of build system for small satellite missions 24 3.1 Build systems as an improvement on the design methodology . 24 3.1.1 Yocto build system . 29 4 Development platforms 32 4.1 Beagleboard XM . 32 4.2 Pandaboard . 35 4.3 Beaglebone . 38 5 Design and implementation of the construction system 41 5.1 Construction System . 41 5.1.1 The hardware independent layer: meta-tecSat . 42 5.1.2 The hardware dependent later: meta-tecSat-target . 43 5.1.3 Integration of the dependent and independent hardware layers in the construction system . 44 5.1.4 Adding a new recipe to a layer .
    [Show full text]