Linux Add-In for Crosscore Embedded Studio

Total Page:16

File Type:pdf, Size:1020Kb

Linux Add-In for Crosscore Embedded Studio Linux Add-in for CrossCore Embedded Studio Linux Add-in for CrossCore Embedded Studio User's Guide © 2018 Analog Devices, Inc. Version 1.3.0, November 2018 http://www.analog.com [email protected] Contents 1 Introduction 9 2 Quick Start Guide 10 2.1 Feature list for Linux on sc5xx boards 10 2.2 SC5xx EZ-Kit Linux Quick Start Guide 13 2.2.1 Introduction 13 2.2.2 Environment set up 14 2.2.3 Flashing U-Boot for the First Time 17 2.2.4 Booting Linux Overview 21 2.2.5 Boot method 1: Copying the Linux image across the network 21 2.2.6 Boot method 2: Booting flashed Linux with persistent file system on SD Card 29 2.2.7 Boot Method 3: Booting the kernel from the SD Card (Quicker Boot) 33 2.2.8 Troubleshooting 34 2.3 Configure and build from source code 36 2.3.1 Introduction 36 2.3.2 Extract the source code 36 2.3.3 Configure and build u-boot 37 2.3.4 Configure and build Buildroot and Linux kernel 37 2.3.5 Customize the Buildroot and Linux kernel 38 2.3.6 Generate Kernel Image for Booting From Non-Volatile Storage 39 2.3.7 More tips about buildroot 40 2.4 SC589-MINI Linux Quick Start Guide 40 2.4.1 Introduction 40 2.4.2 Set up the Board and Console output 42 2.4.3 Booting the board Out of the Box 44 2.4.4 Recovering the board 50 2.4.5 Configuring and Building Source Code 55 2.4.6 Board Component Descriptions 56 3 Das U-boot 62 3.1 Ethernet Driver in U-Boot on SC5xx-EZKIT 62 3.1.1 Overview 62 3.1.2 Hardware Setup 62 3.1.3 Build U-Boot with emac0 or emac1 62 3.1.4 Using EMAC Driver 62 3.2 Creating and Booting Linux Using the New U-Boot "fitImage" 64 3.2.1 Introduction 64 3.2.2 Hardware Setup 64 3.2.3 Builroot and kernel Configuration 64 3.2.4 U-Boot Configuration 65 3.2.5 Create fitImage device tree 66 3.2.6 Boot Linux 69 3.3 Loading file from USB storage in u-boot 71 3.3.1 Overview 71 3.3.2 Hardware Setup 71 3.3.3 Test method 72 3.4 Mobile Storage Interface (MSI) 78 3.4.1 Overview 78 3.4.2 Hardware Setup 78 3.4.3 Software Configuration 79 3.4.4 Build and Load Uboot 79 3.4.5 Usage of MSI Driver 80 4 Linux buildroot distribution and applications 81 4.1 Bluetooth and headset audio example 81 4.1.1 Introduction 81 4.1.2 Hardware setup 81 4.1.3 Software configuration 81 4.1.4 Run headset audio example 83 4.2 Build application outside the buildroot framework 84 4.2.1 Introduction 84 4.2.2 Build Application outside Buildroot Framework 85 4.3 OProfile for performance benchmark 85 4.3.1 Introduction 85 4.3.2 Hardware Setup 86 4.3.3 Software Configuration 86 4.3.4 Simple OProfile usage 87 4.3.5 Examples 88 4.4 FTP Server (ftpd) 91 4.4.1 Introduction 91 4.4.2 Operation 91 4.5 Touchscreen Library 92 4.5.1 Introduction 93 4.5.2 Hardware Setup 93 4.5.3 Software Configuration 93 4.5.4 Example 94 4.6 MPlayer 98 4.6.1 Hardware Setup 98 4.6.2 Software Configuration 99 4.6.3 Build and Load Buildroot 101 4.6.4 Run MPlayer 101 4.7 IEEE 1588 and Linux PTP 102 4.7.1 PTP Introduction 102 4.7.2 PTP Configuration 102 4.7.3 Build 104 4.7.4 Example 104 4.7.5 More information 106 4.8 QT example for GUI 106 4.8.1 Introduction 106 4.8.2 Hardware Setup 106 4.8.3 Software Configuration 106 4.8.4 Build and Load Buildroot 109 4.8.5 Example 109 4.9 SQLite example for database 111 4.9.1 Introduction 111 4.9.2 Build and Load Buildroot 112 4.9.3 Run SQLite 112 4.10 Watchdog 113 4.10.1 Introduction 113 4.10.2 Software Configuration 113 4.10.3 Build and Load Buildroot 114 4.10.4 Test 114 5 Linux kernel and drivers 118 5.1 CAN Bus Data Transaction 118 5.1.1 Introduction 118 5.1.2 Hardware Setup 118 5.1.3 Software Configuration 118 5.1.4 Test Example 119 5.2 CPU Frequency utility 120 5.2.1 Introduction 120 5.2.2 Hardware Setup 121 5.2.3 Enabling CPU Frequency Driver in Linux Kernel 121 5.2.4 How to Change the CPU cpufreq 121 5.2.5 Change Core Clock Frequency via cpufreq-utils 124 5.3 CRC Crypto Driver Guide 125 5.3.1 Introduction 125 5.3.2 Hardware Setup 125 5.3.3 Software Configuration 126 5.3.4 Example 126 5.3.5 Linux Kernel Crypto API 127 5.4 Ethernet driver and performance 127 5.4.1 Introduction 127 5.4.2 Hardware Requirement 127 5.4.3 Software Configuration 127 5.4.4 Performance Benchmark Example 131 5.5 Linux LCD device driver 131 5.5.1 Introduction 131 5.5.2 Hardware Setup 132 5.5.3 Software Configuration 132 5.5.4 Example 133 5.6 Linux Sound Driver 134 5.6.1 Introduction 134 5.6.2 Hardware Setup 135 5.6.3 Software Configuration 136 5.6.4 Example 137 5.7 GPIO operation 142 5.7.1 Introduction 142 5.7.2 Hardware 142 5.7.3 Application space GPIO support 143 5.7.4 Paths in Sysfs 143 5.7.5 Dump the GPIO configuration 145 5.8 I2C Bus 145 5.8.1 Introduction 145 5.8.2 I2C in the Linux Kernel 146 5.8.3 I2C in User Space 148 5.9 Link Port driver 150 5.9.1 Introduction 150 5.9.2 Hardware Setup 150 5.9.3 Software configuration 151 5.9.4 Test Example 152 5.10 USB interface 152 5.10.1 Introduction 152 5.10.2 Hardware Setup 153 5.10.3 USB HOST Example 153 5.10.4 USB Device Example 155 5.10.5 USB OTG Example 158 5.11 General Bluetooth Dongle via USB 158 5.11.1 Introduction 158 5.11.2 Hardware Setup 159 5.11.3 Software Configuration 159 5.11.4 Example 160 5.12 Kernel API for DMA operation 163 5.12.1 Introduction 163 5.12.2 Linux DMA Framework 163 5.13 Linux MTD Driver 169 5.13.1 Introduction 169 5.13.2 Hardware Required 169 5.13.3 Software Configuration 170 5.13.4 Example 172 5.14 Linux PCIE device driver 173 5.14.1 Introduction 173 5.14.2 Hardware Setup 173 5.14.3 Software Configuration 173 5.14.4 Example 175 5.15 Linux Video Driver 176 5.15.1 Introduction 176 5.15.2 Hardware Required 177 5.15.3 Software Configuration 180 5.15.4 Example 185 5.16 Rotary driver 189 5.16.1 Introduction 189 5.16.2 Hardware Setup 189 5.16.3 Software Configuration 189 5.16.4 Example 193 5.17 SPI Driver 194 5.17.1 Introduction 194 5.17.2 Hardware Setup 196 5.17.3 Software Configuration 196 5.17.4 Example 199 5.18 Mobile Storage Interface for MMC/SD 199 5.18.1 Hardware Setup 199 5.18.2 Software Configuration 200 5.18.3 Build and Load Buildroot 201 5.18.4 Usage of MSI 202 5.19 Real Time Clock on ADSP-SC58x 205 5.19.1 Introduction 205 5.19.2 Hardware Required 205 5.19.3 Software Configuration 205 5.19.4 Build and Load Buildroot 206 5.19.5 Example 206 5.20 User manual for uart hardware flow control in linux kernel 207 5.20.1 Introduction 207 5.20.2 Hardware Setup 207 5.20.3 Software Configuration 207 5.20.4 Build and Load Buildroot 208 5.20.5 Example 208 5.21 USB Gadget Audio 209 5.21.1 Introduction 209 5.21.2 Hardware Setup 209 5.21.3 Software Configuration 210 5.21.4 Run the test 211 6 Multicore support 213 6.1 Multi-Core Communication 213 6.1.1 MCAPI Supported Functions 213 6.1.2 Multi-core Development 215 6.2 Run the MCAPI demo 215 6.2.1 Introduction 215 6.2.2 Hardware Requirement 216 6.2.3 Configure and build 216 6.2.4 Running MCAPI MSG Test Example 219 6.2.5 Troubleshooting 221 6.3 Enable and Disable SHARC Cores 222 6.3.1 Introduction 222 6.3.2 Method 1: Enable SHARC cores with u-boot ICC command 222 6.3.3 Method 2: Enable SHARC Cores with corecontrol Utility in Linux 223 6.4 Introduction of MCAPI examples 225 6.4.1 Introduction 225 6.4.2 Performance of MCAPI 227 6.5 Run Linux on ARM and bare-metal application on SHARC 228 6.5.1 Introduction 228 6.5.2 MCAPI Test Example 228 6.6 Reserve Pinmux Functions in Linux for SHARC Applications 237 6.6.1 Introduction 237 6.6.2 Linux Kernel Configuration 238 6.6.3 Pinmux Reservation Example 240 6.7 SEC driver and multicore development 243 6.7.1 Introduction 243 6.7.2 Linux kernel Configuration 243 6.7.3 Coordinate the SEC Initialization for multicore Development 244 7 Generic Linux Documents 247 7.1 Generic U-Boot Documents 247 7.2 Generic Linux Kernel Documents 247 7.3 Generic Buildroot Documents 247 8 Developing Linux Applications Using CrossCore Embedded Studio 248 8.1 Create and build a project using the Linux targeting toolchain 248 8.1.1 Install CCES and Linux Add-in on Linux host 248 8.1.2 Start CCES IDE on Linux Host 248 8.1.3 Creating a new project using CCES 248 8.2 Debug a Linux application from within the CCES IDE 253 8.2.1 Create a new Linux application from within the CCES IDE 253 8.2.2 Copy your newly built application to your Linux target and set-up debugging 253 8.2.3 Launch CCES and create a Debug configuration 254 8.2.4 Debugging your application with CCES 256 9 Appendix A: Hardware Used During Testing 258 Copyright Information © 2018 Analog Devices, Inc., ALL RIGHTS RESERVED.
Recommended publications
  • CNTR: Lightweight OS Containers
    CNTR: Lightweight OS Containers Jorg¨ Thalheim, Pramod Bhatotia Pedro Fonseca Baris Kasikci University of Edinburgh University of Washington University of Michigan Abstract fundamental to achieve high efficiency in virtualized datacenters and enables important use-cases, namely Container-based virtualization has become the de-facto just-in-time deployment of applications. Moreover, standard for deploying applications in data centers. containers significantly reduce operational costs through However, deployed containers frequently include a higher consolidation density and power minimization, wide-range of tools (e.g., debuggers) that are not required especially in multi-tenant environments. Because of all for applications in the common use-case, but they these advantages, it is no surprise that containers have seen are included for rare occasions such as in-production wide-spread adoption by industry, in many cases replacing debugging. As a consequence, containers are significantly altogether traditional virtualization solutions [17]. larger than necessary for the common case, thus increasing the build and deployment time. Despite being lightweight, deployed containers often include a wide-range of tools such as shells, editors, CNTR1 provides the performance benefits of lightweight coreutils, and package managers. These additional tools containers and the functionality of large containers by are usually not required for the application’s core function splitting the traditional container image into two parts: the — the common operational use-case — but they are “fat” image — containing the tools, and the “slim” image included for management, manual inspection, profiling, — containing the main application. At run-time, CNTR and debugging purposes [64]. In practice, this significantly allows the user to efficiently deploy the “slim” image and increases container size and, in turn, translates into then expand it with additional tools, when and if necessary, slower container deployment and inefficient datacenter by dynamically attaching the “fat” image.
    [Show full text]
  • JACSM No 1 2009
    STORE: EMBEDDED PERSISTENT STORAGE FOR CLOJURE PROGRAMMING LANGUAGE Konrad Grzanek1 1IT Institute, Academy of Management, Lodz, Poland [email protected] Abstract Functional programming is the most popular declarative style of programming. Its lack of state leads to an increase of programmers' productivity and software robustness. Clojure is a very effective Lisp dialect, but it misses a solid embedded database implementation. A store is a proposed embedded database engine for Clojure that helps to deal with the problem of the inevitable state by mostly functional, minimalistic interface, abandoning SQL and tight integration with Clojure as a sole query and data-processing language. Key words: Functional programming, Lisp, Clojure, embedded database 1 Introduction Functional programming languages and functional programming style in general have been gaining a growing attention in the recent years. Lisp created by John McCarthy and specified in [8] is the oldest functional pro- gramming language. Some of its flavors (dialects, as some say [9]) are still in use today. Common Lisp was the first ANSI standardized Lisp dialect [13] and Common Lisp Object System (CLOS) was probably the first ANSI stan- dardized object oriented programming language [14]. Apart from its outstand- ing features as a Common Lisp subset. Various Lisps were used in artificial intelligence [11] and to some extent the language comes from AI labs and its ecosystem. Common Lisp was used as the language of choice by some AI tutors, like Peter Norvig (in [10]). But the whole family of languages address general problems in computer science, not only these in AI. John Backus argues [3] that the functional style is a real liberation from the traditional imperative languages and their problems.
    [Show full text]
  • Securing Embedded Systems: Analyses of Modern Automotive Systems and Enabling Near-Real Time Dynamic Analysis
    Securing Embedded Systems: Analyses of Modern Automotive Systems and Enabling Near-Real Time Dynamic Analysis Karl Koscher A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy University of Washington 2014 Reading Committee: Tadayoshi Kohno, Chair Gaetano Borriello Shwetak Patel Program Authorized to Offer Degree: Computer Science and Engineering © Copyright 2014 Karl Koscher University of Washington Abstract Securing Embedded Systems: From Analyses of Modern Automotive Systems to Enabling Dynamic Analysis Karl Koscher Chair of the Supervisory Committee: Associate Professor Tadayoshi Kohno Department of Computer Science and Engineering Today, our life is pervaded by computer systems embedded inside everyday products. These embedded systems are found in everything from cars to microwave ovens. These systems are becoming increasingly sophisticated and interconnected, both to each other and to the Internet. Unfortunately, it appears that the security implications of this complexity and connectivity have mostly been overlooked, even though ignoring security could have disastrous consequences; since embedded systems control much of our environment, compromised systems could be used to inflict physical harm. This work presents an analysis of security issues in embedded systems, including a comprehensive security analysis of modern automotive systems. We hypothesize that dynamic analysis tools would quickly discover many of the vulnerabilities we found. However, as we will discuss, there
    [Show full text]
  • Sentiment Analysis Using a Novel Human Computation Game
    Sentiment Analysis Using a Novel Human Computation Game Claudiu-Cristian Musat THISONE Alireza Ghasemi Boi Faltings Artificial Intelligence Laboratory (LIA) Ecole Polytechnique Fed´ erale´ de Lausanne (EPFL) IN-Ecublens, 1015 Lausanne, Switzerland [email protected] Abstract data is obtained from people using human computa- tion platforms and games. We also prove that the In this paper, we propose a novel human com- method can provide not only labelled texts, but peo- putation game for sentiment analysis. Our ple also help by selecting sentiment-expressing fea- game aims at annotating sentiments of a col- tures that can generalize well. lection of text documents and simultaneously constructing a highly discriminative lexicon of Human computation is a newly emerging positive and negative phrases. paradigm. It tries to solve large-scale problems by Human computation games have been widely utilizing human knowledge and has proven useful used in recent years to acquire human knowl- in solving various problems (Von Ahn and Dabbish, edge and use it to solve problems which are 2004; Von Ahn, 2006; Von Ahn et al., 2006a). infeasible to solve by machine intelligence. To obtain high quality solution from human com- We package the problems of lexicon construc- putation, people should be motivated to make their tion and sentiment detection as a single hu- best effort. One way to incentivize people for sub- man computation game. We compare the re- mitting high-quality results is to package the prob- sults obtained by the game with that of other well-known sentiment detection approaches. lem at hand as a game and request people to play Obtained results are promising and show im- it.
    [Show full text]
  • Root Filesystem
    >>> Operating Systems And Applications For Embedded Systems >>> Root Filesystem Name: Mariusz Naumowicz Date: 27 sierpnia 2018 [~]$ _ [1/21] >>> Plan 1. Root Filesystem Useful System Filesystem Hierarchy Standard (FHS) Staging directory 2. Programs The init program Shell Utilities BusyBox ToyBox Libraries Reducing size by stripping Device nodes The proc and sysfs flesystems Mounting flesystems Additional reading Standalone ramdisk Minimizing size Booting with QEMU Additional reading [~]$ _ [2/21] >>> Useful System * init: The program that starts everything off, usually by running a series of scripts. * shell: Needed to give you a command prompt but, more importantly, to run the shell scripts called by init and other programs. * daemons: Various server programs, started by init. * libraries: Usually, the programs mentioned so far are linked with shared libraries which must be present in the root filesystem. * Configuration files: The configuration for init and other daemons is stored in a series of ASCII text files, usually in the /etc directory. * Device nodes: The special files that give access to various device drivers. * /proc and /sys: Two pseudo filesystems that represent kernel data structures as a hierarchy of directories and files. Many programs and library functions read these files. * kernel modules: If you have configured some parts of your kernel to be modules, they will be here, usually in /lib/modules/[kernel version]. [1. Root Filesystem]$ _ [3/21] >>> Filesystem Hierarchy Standard (FHS) * /bin: programs essential for all
    [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]
  • MANAGING a REAL-TIME EMBEDDED LINUX PLATFORM with BUILDROOT John Diamond, Kevin Martin Fermi National Accelerator Laboratory, Batavia, IL 60510
    MANAGING A REAL-TIME EMBEDDED LINUX PLATFORM WITH BUILDROOT John Diamond, Kevin Martin Fermi National Accelerator Laboratory, Batavia, IL 60510 Desktop distributions are an awkward Buildroot + ucLibc + Busybox + RTAI Quantitative Results implementation of an Embedded RTOS Buildroot – downloads, unpacks, • Whole build process is automated resulting in • Architecture-dependent binary configures, compiles and installs system much quicker build times (hours not days) software automatically • Kernel and root filesystem size: 3.5 MB – 20 packages uClibc – Small-footprint standard C library MB (reduction of 99%) • Loaded with unnecessary software Busybox – all-in-one UNIX utilities and shell • Boot-time: ~9 seconds • Huge footprints RTAI – Real-Time Linux extensions = Qualitative Results • Allows integration with revision control into First Try: Build Linux from Source the platform development process, making it • Success! But.. 2. Buildroot’s menuconfig generates a package configuration file easier to manage an ecosystem of targets • Is as difficult as it sounds and kernel configuration file • Community support for x86 & ARM targets Linux Kernel • Overwhelming number of packages and Configuration gives us confidence that future targets can be patches Package supported without much effort 1. Developer Configuration • No version control configures build via Buildroot’s • Cross-compile even more headaches menuconfig Internet Build Process Power Supply Control Quench Protection Git / CVS / SVN and Regulation for the System for Tevatron Did not do what we needed: Fermilab Linac Electron Lens (TEL II) 3. The build process pulls 4. The output from the software packages from build process is a kernel • Small-footprint network bootable image the internet and custom bzImage bzImage file with an softare packages from a integrated root filesystem ARM Cortex A-9 source code repository file PC/104 AMD • Automated build system Geode SBC Beam Position Monitor Power Supply Control prototype for Fermilab and Regulation for • Support for multiple architectures 5.
    [Show full text]
  • Cross-Compiler Bipartite Vulnerability Search
    electronics Article Cross-Compiler Bipartite Vulnerability Search Paul Black * and Iqbal Gondal Internet Commerce Security Laboratory (ICSL), Federation University, Ballarat 3353, Australia; [email protected] * Correspondence: [email protected] Abstract: Open-source libraries are widely used in software development, and the functions from these libraries may contain security vulnerabilities that can provide gateways for attackers. This paper provides a function similarity technique to identify vulnerable functions in compiled programs and proposes a new technique called Cross-Compiler Bipartite Vulnerability Search (CCBVS). CCBVS uses a novel training process, and bipartite matching to filter SVM model false positives to improve the quality of similar function identification. This research uses debug symbols in programs compiled from open-source software products to generate the ground truth. This automatic extraction of ground truth allows experimentation with a wide range of programs. The results presented in the paper show that an SVM model trained on a wide variety of programs compiled for Windows and Linux, x86 and Intel 64 architectures can be used to predict function similarity and that the use of bipartite matching substantially improves the function similarity matching performance. Keywords: malware similarity; function similarity; binary similarity; machine-learning; bipar- tite matching 1. Introduction Citation: Black, P.; Gondal, I. Cross-Compiler Bipartite Function similarity techniques are used in the following activities, the triage of mal- Vulnerability Search. Electronics 2021, ware [1], analysis of program patches [2], identification of library functions [3], analysis of 10, 1356. https://doi.org/10.3390/ code authorship [4], the identification of similar function pairs to reduce manual analysis electronics10111356 workload, [5], plagiarism analysis [6], and for vulnerable function identification [7–9].
    [Show full text]
  • October 2011 Vol
    NoSQL GREG BURD Hypervisors and Virtual Machines: Implementation Insights on the x86 Architecture DON REVELLE Conference Reports from the 2011 USENIX Annual Technical Conference, HotPar, and more OCTOBER 2011 VOL. 36, NO. 5 THE ADVANCED COMPUTING SYSTEMS ASSOCIATION THE ADVANCED COMPUTING SYSTEMS ASSOCIATION usenix_login_oct11_covers.indd 1 9.9.11 5:55 PM UPCOMING EVENTS 23rd ACM Symposium on Operating Systems 9th USENIX Symposium on Networked Systems Principles (SOSP 2011) Design and Implementation (NSDI ’12) SPONSORED BY ACM SIGOPS IN COOPERATION WITH USENIX SPONSORED BY USENIX IN COOPERATION WITH ACM SIGCOMM AND ACM SIGOPS October 23–26, 2011, Cascais, Portugal April 25–27, 2012, San Jose, CA http://sosp2011.gsd.inesc-id.pt http://www.usenix.org/nsdi12 ACM Symposium on Computer Human Interac- tion for Management of Information Technology 2012 USENIX Federated Conferences Week (CHIMIT 2011) June 12–15, 2012, Boston, MA, USA http://www.usenix.org/fcw12 SPONSORED BY ACM IN ASSOCIATION WITH USENIX December 4–5, 2011, Boston, MA 2012 USENIX Annual Technical Conference http://chimit.acm.org/ (USENIX ATC ’12) June 13–15, 2012, Boston, MA 25th Large Installation System Administration http://www.usenix.org/atc12 Conference (LISA ’11) Paper titles and abstracts due January 10, 2012 SPONSORED BY USENIX IN COOPERATION WITH LOPSA December 4–9, 2011, Boston, MA 21st USENIX Security Symposium http://www.usenix.org/lisa11 (USENIX Security ’12) August 6–10, 2012, Bellevue, WA ACM/IFIP/USENIX 12th International Middleware Conference (Middleware 2011)
    [Show full text]
  • A Variability-Aware Module System
    A Variability-Aware Module System Christian Kästner, Klaus Ostermann, and Sebastian Erdweg Philipps University Marburg, Germany Module systems enable a divide and conquer strategy to software develop- ment. To implement compile-time variability in software product lines, mod- ules can be composed in different combinations. However, this way variability dictates a dominant decomposition. Instead, we introduce a variability-aware module system that supports compile-time variability inside a module and its interface. This way, each module can be considered a product line that can be type checked in isolation. Variability can crosscut multiple modules. The module system breaks with the antimodular tradition of a global variabil- ity model in product-line development and provides a path toward software ecosystems and product lines of product lines developed in an open fashion. We discuss the design and implementation of such a module system on a core calculus and provide an implementation for C, which we use to type check the open source product line Busybox with 811 compile-time options. 1 Introduction A module system allows developers to decompose a large system into manageable sub- systems, which can be developed and checked in isolation [13]. A module hides informa- tion about internal implementations and exports only a well-defined and often machine- enforced interface. This enables an open-world development style, in which software can be composed from modular self-contained parts. The need for compile-time variability, for example in software product lines [6, 17, 10], challenges existing module systems. To tailor a software system, stakeholders may want to select from compile-time configuration options (or features) and derive a specific configuration (or variant, or product) of the system.
    [Show full text]
  • Operating System Components for an Embedded Linux System
    INSTITUTEFORREAL-TIMECOMPUTERSYSTEMS TECHNISCHEUNIVERSITATM¨ UNCHEN¨ PROFESSOR G. F ARBER¨ Operating System Components for an Embedded Linux System Martin Hintermann Studienarbeit ii Operating System Components for an Embedded Linux System Studienarbeit Executed at the Institute for Real-Time Computer Systems Technische Universitat¨ Munchen¨ Prof. Dr.-Ing. Georg Farber¨ Advisor: Prof.Dr.rer.nat.habil. Thomas Braunl¨ Author: Martin Hintermann Kirchberg 34 82069 Hohenschaftlarn¨ Submitted in February 2007 iii Acknowledgements At first, i would like to thank my supervisor Prof. Dr. Thomas Braunl¨ for giving me the opportunity to take part at a really interesting project. Many thanks to Thomas Sommer, my project partner, for his contribution to our good work. I also want to thank also Bernard Blackham for his assistance by email and phone at any time. In my opinion, it was a great cooperation of all persons taking part in this project. Abstract Embedded systems can be found in more and more devices. Linux as a free operating system is also becoming more and more important in embedded applications. Linux even replaces other operating systems in certain areas (e.g. mobile phones). This thesis deals with the employment of Linux in embedded systems. Various architectures of embedded systems are introduced and the characteristics of common operating systems for these devices are reviewed. The architecture of Linux is examined by looking at the particular components such as kernel, standard C libraries and POSIX tools for embedded systems. Furthermore, there is a survey of real-time extensions for the Linux kernel. The thesis also treats software development for embedded Linux ranging from the prerequi- sites for compiling software to the debugging of binaries.
    [Show full text]
  • C:\Andrzej\PDF\ABC Nagrywania P³yt CD\1 Strona.Cdr
    IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TREFCI Wielka encyklopedia komputerów KATALOG KSI¥¯EK Autor: Alan Freedman KATALOG ONLINE T³umaczenie: Micha³ Dadan, Pawe³ Gonera, Pawe³ Koronkiewicz, Rados³aw Meryk, Piotr Pilch ZAMÓW DRUKOWANY KATALOG ISBN: 83-7361-136-3 Tytu³ orygina³u: ComputerDesktop Encyclopedia Format: B5, stron: 1118 TWÓJ KOSZYK DODAJ DO KOSZYKA Wspó³czesna informatyka to nie tylko komputery i oprogramowanie. To setki technologii, narzêdzi i urz¹dzeñ umo¿liwiaj¹cych wykorzystywanie komputerów CENNIK I INFORMACJE w ró¿nych dziedzinach ¿ycia, jak: poligrafia, projektowanie, tworzenie aplikacji, sieci komputerowe, gry, kinowe efekty specjalne i wiele innych. Rozwój technologii ZAMÓW INFORMACJE komputerowych, trwaj¹cy stosunkowo krótko, wniós³ do naszego ¿ycia wiele nowych O NOWOFCIACH mo¿liwoYci. „Wielka encyklopedia komputerów” to kompletne kompendium wiedzy na temat ZAMÓW CENNIK wspó³czesnej informatyki. Jest lektur¹ obowi¹zkow¹ dla ka¿dego, kto chce rozumieæ dynamiczny rozwój elektroniki i technologii informatycznych. Opisuje wszystkie zagadnienia zwi¹zane ze wspó³czesn¹ informatyk¹; przedstawia zarówno jej historiê, CZYTELNIA jak i trendy rozwoju. Zawiera informacje o firmach, których produkty zrewolucjonizowa³y FRAGMENTY KSI¥¯EK ONLINE wspó³czesny Ywiat, oraz opisy technologii, sprzêtu i oprogramowania. Ka¿dy, niezale¿nie od stopnia zaawansowania swojej wiedzy, znajdzie w niej wyczerpuj¹ce wyjaYnienia interesuj¹cych go terminów z ró¿nych bran¿ dzisiejszej informatyki. • Komunikacja pomiêdzy systemami informatycznymi i sieci komputerowe • Grafika komputerowa i technologie multimedialne • Internet, WWW, poczta elektroniczna, grupy dyskusyjne • Komputery osobiste — PC i Macintosh • Komputery typu mainframe i stacje robocze • Tworzenie oprogramowania i systemów komputerowych • Poligrafia i reklama • Komputerowe wspomaganie projektowania • Wirusy komputerowe Wydawnictwo Helion JeYli szukasz ]ród³a informacji o technologiach informatycznych, chcesz poznaæ ul.
    [Show full text]