Porting a Lightweight Educational Operating System to the Raspberry Pi

Total Page:16

File Type:pdf, Size:1020Kb

Porting a Lightweight Educational Operating System to the Raspberry Pi XinuPi: Porting a Lightweight Educational Operating System to the Raspberry Pi Eric Biggers Farzeen Harunani Tyler Much Dennis Brylow Department of Mathematics, Statistics, Department of Mathematics, Statistics, and Computer Science and Computer Science Macalester College Marquette University 1600 Grand Avenue 1313 W. Wisconsin Avenue Saint Paul, Minnesota 55105-7045 Milwaukee, WI 53201-1881 [email protected] {farzeen.harunani, tyler.much, dennis.brylow}@mu.edu ABSTRACT It is intended to be used for educational purposes, such as The Raspberry Pi is a credit-card sized computer, designed teaching programming with Python, and it normally runs to support hands-on computer science education activities a Linux-based operating system, such as the Debian-based with minimal hardware cost. The Pi's low price, powerful \Raspbian" or Arch Linux ARM [14]. There are currently ARM-based processor, and rich set of built-in peripherals two major versions of the Raspberry Pi: the Model A and has made it an attractive platform for the gamut of hob- Model B, which cost $25 and $35 respectively. byists, researchers, and educators. However, for those in- In aspects such as cost, convenience, and community, the terested in embedded systems education, the Raspberry Pi Raspberry Pi hardware is well-suited for exploring low-level presents a unique opportunity to build curricula introducing computer science concepts, such as operating systems, net- time-oriented, reactive, and embedded system software us- working, and embedded systems. However, lack of docu- ing a mass-produced embedded platform with broad appeal. mentation has limited software support for this platform Despite the growing popularity of the Pi platform for com- to either the very simple (standalone assembly language) puter science education, the device commonly runs a Linux- or the very complex (full-fledged Linux kernel), with very based software stack that is, in practice, opaque except to little available in the productive middle of the spectrum. experienced developers. In addition, important hardware on Over 1 million Raspberry Pi boards were sold as by Jan- the device remains poorly documented. This paper presents uary 2013[13], but key aspects of the hardware, such as the a port of the time-tested Embedded Xinu operating sys- USB controller (essential for network and keyboard support) tem to the Raspberry Pi, combining a commodity embed- and the mailbox subsystem (essential for programming the ded processor with a lightweight kernel designed to support graphics co-processor), remain effectively undocumented ex- hands-on pedagogy at the lowest levels of the software sys- cept by sparsely commented code within vendor-contributed tem stack. Linux device drivers. In cases where documentation is avail- able, such as Broadcom's BCM2835 ARM Peripherals [5], some of the descriptions contains critical errors and omis- Categories and Subject Descriptors sions that, in our experience, have limited their usefulness. K.3.2 [Computer and Information Science Education]: XinuPi, our port of Embedded Xinu[9] to the Raspberry Computer science education; C.3 [Special-Purpose and Pi, provides a cost-effective, usable, understandable plat- Application-Based Systems]: Real-time and embedded form for undergraduate computer science students to exper- systems iment with hardware/software interactions. XinuPi uses an elegant, well-documented kernel design with support for key Keywords hardware peripherals such as graphics, USB, and network- ing, yet is several orders of magnitude smaller than the most Raspberry Pi, Embedded Xinu, Embedded systems educa- compact Linux-based software stacks that run on this device. tion XinuPi offers a unique point in the curriculum design space, allowing low-cost, multi-use laboratories equipped with Pi 1. INTRODUCTION boards to support both the plethora of Python-, Scratch- The Raspberry Pi is a credit-card sized computer designed and Linux-based educational activities already in use and to be plugged into a keyboard and TV or HDMI monitor. low-level, embedded activities with access to GPIO pins, fine-grained clock facilities, a network stack, and the graph- ics processing unit. No hardware modifications are required to run XinuPi, so the same Raspberry Pi board can be easily retasked for higher-level activities with the swap of an SD Permission to make digital or hard copies of all or part of this work for card and a power cycle. personal or classroom use is granted without fee provided that copies are The source code of XinuPi, documentation, and class- not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to tested laboratory activities from previous ports of Embed- republish, to post on servers or to redistribute to lists, requires prior specific ded Xinu are all freely available under a BSD-style license permission and/or a fee. at http://xinu.mscs.mu.edu. Copyright 20XX ACM X-XXXXX-XX-X/XX/XX ...$15.00. 2. PRIOR AND RELATED WORK has an Ethernet port, but the actual hardware supporting The Raspberry Pi is now easy to obtain, and is used by a it, likely for cost reasons, is in fact a USB device (namely, broad spectrum of hobbyists, researchers and educators. Ap- the \SMSC LAN9512 USB 2.0 Hub and 10/100 Ethernet plications of Raspberry Pis range from computer-controlled Controller"). stage lighting[6], automatic coffee-brewing systems[16], and home entertainment systems[20]. Many computing educa- 3.2 Booting and Startup tors have expressed interest in using the Raspberry Pi in To boot the Raspberry Pi, one simply needs to apply 1 their classrooms[4], whilst others have designed entire classes power after inserting a SD card containing appropriate boot around the Pi. files. The SD card must contain an MS-DOS-style disk label Cambridge University has developed a series of hands- (partition table) with at least one FAT-formatted partition on Raspberry Pi exercises that builds a simple command whose root directory contains three \binary blobs" provided line interface[11]. Their target is a single-thread assembly by Broadcom (start.elf, bootcode.bin, and loader.bin) language executable which does not provide many of the core along with the actual kernel that gets started on the ARM features of an operating system, such as concurrent threads, processor (kernel.img). The reason for this somewhat in- device drivers, or interrupts. flexible boot method is that the VideoCore co-processor is Raspberry Pi educational resources include programming in charge of the boot process. However, an optional file con- environments such as Scratch and Python, which are fully fig.txt allows users to customize certain parameters, such implemented in the vendor-provided Raspian distribution, as the memory split between the ARM and VideoCore. as well as a user guide written by co-creators of the Pi After the VideoCore performs various tasks, kernel.img for beginners[15]. Similarly inexpensive embedded systems, is loaded at physical memory address 0x8000 and the ARM such as the Arduino board, are commonly used as teaching begins execution at that address. The kernel is expected to resources beyond simply systems education. For example, be raw binary and not in a format such as ELF. To make high school teachers are using the Arduino to take creative Embedded Xinu comply with this boot protocol, we use a approaches in teaching computational sciences. A recent ex- linker script that links the kernel to run at address 0x8000 ample is the LilyPad e-textile approach, in which students and places the entry point at that address, then use objcopy sew textiles together to create programs out of quilts[17]. to convert the kernel from ELF to raw binary. The Raspberry Pi also has a vibrant user community, as The ARM startup code then must perform at least the can be seen by the constant activity on the Raspberry Pi following tasks: Forum. Many of the forum moderators are creators or de- 1. Set up the ARM exception vector table, which is com- signers of the board, who often share technical knowledge mon to all ARM CPUs as described in [1], at physical with the community. Because the Pi is so new, lessons have memory address 0. The only handler strictly required not been fully tested before classroom implementation; the for basic operating system functionality (including pre- forum represents a place to test lessons and applications. emptive multitasking, but no memory protection etc.) Embedded Xinu has been used by a multitude of schools is the IRQ handler, described in more detail later. in a variety of classes to teach operating systems [9], net- working [10], compilers [19], embedded systems [24], hard- 2. Enable desired CPU features, such as unaligned mem- ware systems [8], and software testing [21]. As a research ory accesses, by reading and writing to the System platform, it has supported novel systems work ranging from Control Coprocessor (again, standard to the ARM ar- IP telephony [22] to distributed, many-core operating sys- chitecture as described in [1]). The ARM contains L1 tems [28]. instruction and data caches that are initially disabled While other groups have begun efforts to port Xinu to the and can be enabled if desired. Raspberry Pi[7], we believe our effort is the first successful project that ports all relevant functionality, including USB 3. Clear the .bss section of the kernel image for zero- and networking. initialized global variables. 4. Reserve memory for operating system use. In Em- 3. PORTING XINU TO THE PI bedded Xinu, we reserve space for the stack of the The following subsections describe the hardware details \nulluser" thread, which is the thread that runs the relevant to porting a lightweight operating system to the initial C startup code. We assign the rest of available Raspberry Pi.
Recommended publications
  • INSTALL ARCH LINUX ARM for a SIMPLE LAN SERVER the Hardware
    INSTALL ARCH LINUX ARM FOR A SIMPLE LAN SERVER The Hardware At the top, two possibilities for the DATA drive which will store all your files. A USB-3 SSD external housing with a SSD of your choice and size. In this case a Samsung 850 500GB SSD. OR if more storage is needed, a USB-3 3.5 inch external hard drive enclosure, in this case with a 2 TB WD Red Label hard drive. Next is a 5 VDC 6 Amp power brick for the Odroid-XU4, not shown is a 12 VDC power supply included with the 3.5 inch hard drive if used. At the bottom, a USB SD Reader. A micro SD to SD adapter. A micro SD card OR an emmc to micro SD adapter with an emmc card for the Operating System. Then the Odroid- XU4 SBC (Single Board Computer). With optional Real Time Clock battery, 40 mm cooling fan, and a 1/4 inch plywood base with stand offs to protect the components on the bottom. Of course, any ARM device that Arch Linux Arm supports can be used, such as a Raspberry PI 4 or the new Odroid N2 with 4 GB RAM, or what ever. Just go to the Arch Linux Arm site, https://archlinuxarm.org/ Hover over "Platforms" then the Architecture, brand name, etc. to see if your device is supported. Click on your device and get a page with overview and installation tabs. Page 1 of 12 EndeavourOS_Server_ARM.odt For security reasons, this server is not intended to be accessed from the internet and should be connected directly by LAN cable to a router or to a switch connected to the router.
    [Show full text]
  • Dennis Brylow in Theory, Simulating an Operating System Is the Same As the Real Thing. in Practice, It Is N
    Experimental Operating System Lab on a Dime Dennis Brylow Department of Mathematics, Statistics and Computer Science In theory, simulating an Operating System is the same as the real thing. In practice, it is not. Setting up specialized Operating System Laboratory hardware usually requires more time, money, and space than most schools can afford. Marquette©s Systems Lab has concentrated specifically on developing a scalable, duplicable design for an Experimental Operating System Laboratory environment with minimal cost and very low space requirements. Our Experimental Operating Systems Laboratory serves as a target platform in undergraduate courses on Hardware Systems (COSC 065), Operating Systems (COSC 125 and COEN 183), Embedded Operating Systems (COSC 195) and Compiler Construction (COSC 170). Coming Soon: Additional modules for coursework in Embedded and Realtime Systems, Networking protocol stacks, Wireless Networking, and Internetworking . http://www.mscs.mu.edu/~brylow/xinu/ XINU in the 21st Century Purdue University©s XINU Operating System has been successfully deployed in classrooms, research labs, and commercial products for more than 20 years. Marquette University presents a new reimplementation of XINU, targeted to modern RISC architectures, written in ANSI-compliant C, and particularly well-suited to embedded platforms with scarce resources. Special Purpose Serial Consoles XINU Backends Serial Annex (optional) Private Network Marquette©s Systems Lab General Purpose runs XINU on inexpensive Laboratory Workstations wireless routers containing XINU the Embedded MIPS32 Server processor. Production Network XINU Backends XINU Server XINU Frontends Backend targets upload student kernel General purpose server with multiple General purpose computer laboratory over private network on boot, run O/S network interfaces manages a private workstations can compile the XINU directly.
    [Show full text]
  • Using TOST in Teaching Operating Systems and Concurrent Programming Concepts
    Advances in Science, Technology and Engineering Systems Journal Vol. 5, No. 6, 96-107 (2020) ASTESJ www.astesj.com ISSN: 2415-6698 Special Issue on Multidisciplinary Innovation in Engineering Science & Technology Using TOST in Teaching Operating Systems and Concurrent Programming Concepts Tzanko Golemanov*, Emilia Golemanova Department of Computer Systems and Technologies, University of Ruse, Ruse, 7020, Bulgaria A R T I C L E I N F O A B S T R A C T Article history: The paper is aimed as a concise and relatively self-contained description of the educational Received: 30 July, 2020 environment TOST, used in teaching and learning Operating Systems basics such as Accepted: 15 October, 2020 Processes, Multiprogramming, Timesharing, Scheduling strategies, and Memory Online: 08 November, 2020 management. TOST also aids education in some important IT concepts such as Deadlock, Mutual exclusion, and Concurrent processes synchronization. The presented integrated Keywords: environment allows the students to develop and run programs in two simple programming Operating Systems languages, and at the same time, the data in the main system tables can be monitored. The Concurrent Programming paper consists of a description of TOST system, the features of the built-in programming Teaching Tools languages, and demonstrations of teaching the basic Operating Systems principles. In addition, some of the well-known concurrent processing problems are solved to illustrate TOST usage in parallel programming teaching. 1. Introduction • Visual OS simulators This paper is an extension of work originally presented in 29th The systems from the first group (MINIX [2], Nachos [3], Xinu Annual Conference of the European Association for Education in [4], Pintos [5], GeekOS [6]) run on real hardware and are too Electrical and Information Engineering (EAEEIE) [1].
    [Show full text]
  • Iot Configuration for Industrial and Domestic Water Saving Monitoring
    ARISTOTLE UNIVERSITY OF THESSALONÍKI COMPUTER SCIENCE DEPARTMENT IoT Configuration for Industrial and Domestic Water Saving Monitoring Iraklis Moutidis Advisor: Ioannis Stamelos 1 Abstract The main objective of the thesis is to implement a water flow monitoring system, using a water flow sensor, the Arduino prototyping board and the Raspberry Pi board. The system should be efficient regarding the electricity consumption and flexible regarding the water installation it will be placed. The information obtained from the sensor(s) is uploaded to a cloud platform (Thingspeak.com) and also locally stored on the Raspberry Pi, which is used as a server for any boards like the Arduino that control a sensor. The data can be further processed to obtain more information about the water consumption of the installation. 2 Contents 1. Introduction………………………..………………………………………..………..……6 1.1 Research Background……………………………………………………………….6 1.2 Problem Statement…………………………………………………………………..7 1.3 Objective of the Study……………………………………………………………….8 1.4 Scope of the Study…………………………………………………………………..8 2. Wireless Sensor Networks………….………………………..……………………….9 2.1 Introduction…….…...………………………………………………………………...9 2.2 Types of Wireless Sensor Networks……………………………………………...10 2.3 Applications………………………………………………………………………….12 2.3.1 Military Applications…….…………………………………………………13 2.3.2 Environmental Monitoring………………………………………………..13 2.3.3 Inventory Monitoring……………………………………………………...15 2.3.4 Health Applications………………………………………………………..16 2.4 Internal Sensor System……………..……………………………………………..16
    [Show full text]
  • Energy-Efficient ARM64 Cluster with Cryptanalytic Applications
    Energy-Efficient ARM64 Cluster with Cryptanalytic Applications 80 Cores That Do Not Cost You an ARM and a Leg Thom Wiggers Institute of Computing and Information Science, Radboud University, The Netherlands Abstract Getting a lot of CPU power used to be an expensive under- taking. Servers with many cores cost a lot of money and consume large amounts of energy. The developments in hardware for mobile devices has resulted in a surge in relatively cheap, powerful, and low-energy CPUs. In this paper we show how to build a low-energy, eighty-core cluster built around twenty ODROID-C2 development boards for under 1500 USD. The ODROID-C2 is a 46 USD microcomputer that provides a 1.536 GHz quad-core Cortex-A53-based CPU and 2 GB of RAM. We investigate the cluster's application to cryptanalysis by implementing Pollard's Rho method to tackle the Certicom ECC2K-130 elliptic curve challenge. We optimise software from the Breaking ECC2K-130 technical report for the Cortex-A53. To do so, we show how to use microbenchmarking to derive the needed instruction characteristics which ARM neglected to document for the public. The implementation of the ECC2K-130 attack finally allows us to compare the proposed platform to various other platforms, including \classical" desktop CPUs, GPUs and FPGAs. Although it may still be slower than for example FPGAs, our cluster still provides a lot of value for money. Keywords: ARM, compute cluster, cryptanalysis, elliptic curve crypto- graphy, ECC2K-130 1 Introduction Bigger is not always better. Traditionally large computational tasks have been deployed on huge, expensive clusters.
    [Show full text]
  • Raspberry Pi from Scratch – 1
    Raspberry Pi from scratch – 1 Christophe Blaess Cet article a été publié dans le numéro 155 (décembre 2012) de Gnu Linux Magazine France. Le succès du petit système Raspberry Pi n'est plus à démontrer. Alliant un prix de revient modique et un potentiel informatique prometteur, il s'impose comme une base expérimentale incontournable pour Linux embarqué. Mais il est dommage de se contenter d'utiliser des images ou des packages précompilés sur cette plate-forme dédiée aux hackers... Je vous propose de construire votre système entièrement personnalisé en partant de zéro. Découverte du Raspberry Pi Dans le courrier du matin une enveloppe blanche dépasse, un peu plus épaisse que les autres et portant la mention « Royal Mail International ». Expéditeur : Farnell. À l'intérieur une petite boîte en carton contenant la fameuse carte Raspberry Pi au format d'une carte de crédit. Pas de notice ni de documentation, toutes les informations seront à chercher sur Internet, essentiellement dans des forums ou des wikis. Mon premier réflexe est évidemment de vérifier si la carte fonctionne. Je branche donc dans le connecteur micro-USB le câble du chargeur de mon téléphone. Une LED rouge s'allume instantanément et aucune autre activité ne se manifeste. Le Raspberry Pi ne contient pas de système d'exploitation intégré (contrairement par exemple des Beagleboard, Pandaboard, Igep, etc. qui embarquent d'origine un petit système Linux). Il n'y a d'ailleurs pas de mémoire flash accessible et nous devrons ajouter une petite carte SD contenant tout le système d'exploitation. Pour être honnête, je dois avouer que j'ai téléchargé à ce stade une image Arch Linux Arm sur http://www.raspberrypi.org/downloads que j'ai copiée sur une carte SD pour vérifier le bon fonctionnement de ma carte, mais j'ai rapidement décidé de l'effacer et de reconstruire le système en repartant de zéro.
    [Show full text]
  • Porting the Embedded Xinu Operating System to the Raspberry Pi Eric Biggers Macalester College, [email protected]
    Macalester College DigitalCommons@Macalester College Mathematics, Statistics, and Computer Science Mathematics, Statistics, and Computer Science Honors Projects 5-2014 Porting the Embedded Xinu Operating System to the Raspberry Pi Eric Biggers Macalester College, [email protected] Follow this and additional works at: https://digitalcommons.macalester.edu/mathcs_honors Part of the OS and Networks Commons, Software Engineering Commons, and the Systems Architecture Commons Recommended Citation Biggers, Eric, "Porting the Embedded Xinu Operating System to the Raspberry Pi" (2014). Mathematics, Statistics, and Computer Science Honors Projects. 32. https://digitalcommons.macalester.edu/mathcs_honors/32 This Honors Project - Open Access is brought to you for free and open access by the Mathematics, Statistics, and Computer Science at DigitalCommons@Macalester College. It has been accepted for inclusion in Mathematics, Statistics, and Computer Science Honors Projects by an authorized administrator of DigitalCommons@Macalester College. For more information, please contact [email protected]. MACALESTER COLLEGE HONORS PAPER IN COMPUTER SCIENCE Porting the Embedded Xinu Operating System to the Raspberry Pi Author: Advisor: Eric Biggers Shilad Sen May 5, 2014 Abstract This thesis presents a port of a lightweight instructional operating system called Em- bedded Xinu to the Raspberry Pi. The Raspberry Pi, an inexpensive credit-card-sized computer, has attracted a large community of hobbyists, researchers, and educators since its release in 2012. However, the system-level software running on the Raspberry Pi has been restricted to two ends of a spectrum: complex modern operating systems such as Linux at one end, and very simple hobbyist operating systems or simple “bare-metal” programs at the other end.
    [Show full text]
  • Real-Time Transport of Internet Telephony Service Utilizing Embedded Resource-Constrained Systems Kyle Persohn Marquette University
    Marquette University e-Publications@Marquette Master's Theses (2009 -) Dissertations, Theses, and Professional Projects Real-Time Transport of Internet Telephony Service Utilizing Embedded Resource-Constrained Systems Kyle Persohn Marquette University Recommended Citation Persohn, Kyle, "Real-Time Transport of Internet Telephony Service Utilizing Embedded Resource-Constrained Systems" (2012). Master's Theses (2009 -). Paper 162. http://epublications.marquette.edu/theses_open/162 REAL-TIME TRANSPORT OF INTERNET TELEPHONY SERVICE UTILIZING EMBEDDED RESOURCE-CONSTRAINED SYSTEMS by Kyle Persohn A Thesis Submitted to the Faculty of the Graduate School, Marquette University, in Partial Fulfillment of the Requirements for the Degree of Master of Science Milwaukee, Wisconsin August 2012 ABSTRACT REAL-TIME TRANSPORT OF INTERNET TELEPHONY SERVICE UTILIZING EMBEDDED RESOURCE-CONSTRAINED SYSTEMS Kyle Persohn Marquette University, 2012 This thesis presents a real-time framework for resource-constrained devices that improves the listening quality of Voice over Internet Protocol calls transported over congested networks. Many VoIP standards and implementations exist, but gaps in the design space encourage further exploration that previous work fails to address. We describe an experimental hardware platform that expands upon a previous design to accommodate technical research and educational needs. Our framework, based on the Real-Time Transport Protocol, integrates closely with existing software constructs available in the Embedded Xinu operating system. We offer features derived from RTP by means of a kernel device that alleviates an application from directly interacting with the underlying protocol. An example application based on Xinu's RTP implementation demonstrates measurable robustness to packet loss and delay variation (jitter)|adverse conditions affecting networks used for VoIP, such as the Internet.
    [Show full text]
  • Raspberry Pi As Hardware In- and Outputs (GPIO)
    A credit-card sized, $35 single-board computer. It runs linux from an SD card and has support for popular options for connection and peripherals (USB, Ethernet) as well Raspberry Pi as hardware in- and outputs (GPIO). It’s open-source and built for hacking. Raspberry Pi GPIO connector (P1) pinout +5V +5V GND GPIO14(TXD) GPIO15(RXD) GPIO18(PCM_CLK) GND GPIO23 GPIO24 GND GPIO25 GPIO8(CE0) GPIO7(CE1) GND GND +3.3V +3.3V GPIO17 GPIO27 GPIO22 GPIO0(SDA1) GPIO1(SCL1) GPIO9(MISO) GPIO10(MOSI) GPIO11(SCLK) GPIO4(GPCLK0) = changed since board revision 2 ACT SD Card activity indicator PWR Device is powered okay. FDX Full duplex connection RCA Composite Video Output Outputs to older TV’s 3.5mm Analog Audio Output headphones or amplifier For LNK Network link established Broadcom ARM CPU (700MHz) & 100 100MBit Ethernet connection Memory (512MB) DSI Screen Connector Broadcom Ethernet controller 2x Full Speed USB SD Memory Card 480MBit Contains Operating System Ethernet Network Micro USB Power Connection 100MBit Requires 5VDC / 800mA HDMI Video Output CSI Camera Connector Outputs screen to newer HD-TV’s Popular operating systems / distributions: of emulators, or as their tag-line says: old computers, classic games, consoles note that some pin and I2C port numbers of connector P1 have been modified and arcade on your Pi... Worth giving a try if you love vintage computers! between revisions! Raspbian “wheezy” http://bit.ly/cham-pi – Header P6 (left from the HDMI port) was added, short these two pins to reset This is the recommended distribution for beginners, based on the Raspbian the computer or wake it up when powered down with the “sudo halt” optimised version of Debian (a Linux distribution), containing development tools Other operating systems command.
    [Show full text]
  • 1 Using ARM-Based Boards in a Second Year Course by Amanpreet
    1 Using ARM-based boards in a second year course by Amanpreet Dhaliwal B.Sc., Punjab University Chandigarh (India)1998 M.Sc. (Physics), Punjabi University Patiala (India)2004 M.Tech., Punjabi University Patiala (India) 2007 Project Report Submitted in Partial Fulfillment of the Requirements for the Degree of MASTER OF SCIENCE in the Department of Computer Science c Amanpreet Dhaliwal 2015 University of Victoria All rights reserved. This report may not be reproduced in whole or in part, by photocopying or other means, without the permission of the author. Supervisory Committee Using ARM-based boards in a second year course by Amanpreet Dhaliwal B.Sc., Punjab University Chandigarh (India) 1998 M.Sc. (Physics), Punjabi University Patiala (India) 2004 M.Tech., Punjabi University Patiala (India) 2007 Dr. M. Serra, Supervisor Department of Computer Science Dr. J. C. Muzio, Member Department of Computer Science ii Dr. M. Serra, Supervisor Department of Computer Science Dr. J. C. Muzio, Member Department of Computer Science Abstract The Raspberry Pi and the Arduino have emerged as very interesting platforms to learn about the ARM processor and its programming environment, and to develop small systems. They are also fairly inexpensive and could be bought directly by students. In this project we investigate the suitability of using the Raspberry Pi as a platform for the assignments in Computer Science 230, a second year course which introduces computer architecture and uses low-level programming to provide hands-on experience with registers and CPU components. To accomplish this goal, all assignments for the last few years are implemented using the Raspberry Pi.
    [Show full text]
  • Proving Safety Properties of Software Kang Gui Iowa State University
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Digital Repository @ Iowa State University Iowa State University Capstones, Theses and Graduate Theses and Dissertations Dissertations 2012 Proving safety properties of software Kang Gui Iowa State University Follow this and additional works at: https://lib.dr.iastate.edu/etd Part of the Computer Engineering Commons, and the Computer Sciences Commons Recommended Citation Gui, Kang, "Proving safety properties of software" (2012). Graduate Theses and Dissertations. 12335. https://lib.dr.iastate.edu/etd/12335 This Dissertation is brought to you for free and open access by the Iowa State University Capstones, Theses and Dissertations at Iowa State University Digital Repository. It has been accepted for inclusion in Graduate Theses and Dissertations by an authorized administrator of Iowa State University Digital Repository. For more information, please contact [email protected]. Proving safety properties of software by Kang Gui A dissertation submitted to the graduate faculty in partial fulfillment of the requirements for the degree of DOCTOR OF PHILOSOPHY Major: Computer Engineering Program of Study Committee: Suraj C. Kothari, Major Professor Srinivas Aluru Tien Nguyen Manimaran Govindarasu Samik Basu Iowa State University Ames, Iowa 2012 Copyright c Kang Gui, 2012. All rights reserved. ii DEDICATION To my parents Yousheng Gui and Jianping Chang iii TABLE OF CONTENTS LIST OF TABLES . vi LIST OF FIGURES . vii ACKNOWLEDGEMENTS . ix ABSTRACT . x CHAPTER 1. OVERVIEW . 1 1.1 Dissertation Outline . .3 CHAPTER 2. RELATED WORKS . 5 2.1 Finding Defects of Large Source Code . .5 2.2 Graph Based Program Analysis .
    [Show full text]
  • Raspberry Pi Needs an Operating System, and the Preferred One for the Pi Is Linux
    CHAPTER 2 Install an Operating System Like every computer, the Raspberry Pi needs an operating system, and the preferred one for the Pi is Linux. That’s partly because it’s free, but mainly it’s because it runs on the Pi’s ARM processor while most other operating systems work only on the Intel architecture. Still, not every Linux distribution will run on the Pi, because some do not support the Pi’s particular type of ARM processor. For example, you cannot install Ubuntu Linux on a Pi. So, in this chapter, you’ll first learn what your options are. Choosing an operating system is only a first step, because you also have to install it. The installation procedure on the Pi is quite different from what you’re probably used to, but it’s not difficult: you need to install the operating system on an SD card. In this chapter, we’re going to install the latest Debian Linux distribution, but the process is the same for all operating systems. You can actually create several SD cards, each with a different operating system, so at the end you’ll have a pretty versatile system that you can turn into completely different machines by simply replacing the card. 2.1 See What’s Available Linux is still the most popular choice for an operating system on the Pi, and it helps you to get the most out of the Pi. Also, many people are already familiar with Linux, while the other operating systems running on the Pi are a bit more exotic.
    [Show full text]