Abe Skolnik. Presentation #1: An Introduction to MyGCC
|
|
- Branden Bridges
- 5 years ago
- Views:
Transcription
1 Abe Skolnik Presentation #1: An Introduction to MyGCC
2 What is MyGCC? MyGCC is a variation on GCC which adds customizable intraprocedural verification abilities to the existing abilities of GCC. What is GCC? The GNU Compiler Collection (formerly the GNU C Compiler) The #1 Open Source and Free Software compiler [collection] A crucial component of all GNU/Linux and BSD operating systems produced to date GNU stands for GNU is Not Unix Like all official GNU projects, GCC is governed by the Free Software Foundation GNU
3 Who, When, and Where MyGCC was started in 2004 by Dr. Nic Volanschi Dr. Sebastian Pop joined Dr. Volanschi in 2006 MyGCC was developed in France Nic Volanschi Sebastian Pop
4 Why Implementing software verification inside GCC allows us to: leverage the language front ends for lexical and syntactic analysis (resulting in a verifier for more than one language) create a software verifier that does not depend on a specific target CPU or OS (the system for running the new program) create a software verifier that does not depend on a specific host CPU or OS (the system for running the verifier) How MyGCC operates on GCC's GIMPLE intermediate representation A domain-specific language called Condate is used to specify the code attributes to be tested Simple Condate expressions may be entered on the same command line that is used for requesting compilation and/or verification More complex Condate rules may be entered into text files and used later The expressions and rules define Constrained Reachability Queries
5 Some of the Pros and Cons of MyGCC Pros Open Source Free (both as in zero-cost and as in freedom) Based on a proven, time-tested system (GCC) Able to be applied to multiple source-code languages Extensible Designed for eventual inclusion into normal GCC Cons Not suitable as the basis for a commercial product Does not include a library of pre-defined tests Knowledge of Condate is needed for full effectiveness
6 How to get MyGCC working on your system (1) For an x86-based machine (or virtual machine) with GNU/Linux installed Download the precompiled tarball, extract it to your location of choice (recommendation: use /opt/mygcc if you can), and it should just work. (2) For all other POSIX/UNIX-compatible environments Download the source tarball, extract it to your location of choice (recommendation: use /usr/src/mygcc if you can), and compile. (3) For a machine afflicted with Microsoft Windows and lacking CygWin Download and install CygWin, then proceed to (2). (4) For all other environments Download and install an x86 emulator/simulator/virtualizer (as appropriate), then either download a ready-made GNU/Linux virtual machine (e.g. from or from or install your preferred GNU/Linux distribution as for a real machine, then proceed to (1).
7 A trivial example of using MyGCC To have MyGCC report every assignment in a C program as if it were an error, we can use the following command: mygcc_installed_path/bin/gcc --tree-check="%x=%y" example.c which will cause output similar to the following: example.c:7: warning: user-defined warning %X=%Y:. example.c:7: instance = {X <- i, Y <- 0}, example.c:7: reached: i = 0. if the file example.c contains the assignment i=0 on line 7. A non-trivial Condate rule Here is an example of a rule that catches the case of a subroutine returning without releasing a lock that it acquired. condate missing_unlock { from "flockfile (%X)" to ("return" or "return %_") avoid "funlockfile (%X)" } warning("unreleased lock on file X"); If this rule is stored in a file named unlock.check, then it can be used like so: mygcc_installed_path/bin/gcc --tree-checks="unlock.check" example.c
8 Proven effectiveness when used expertly The author[s] of MyGCC used it to check parts of the Linux kernel, analyzing the source code of version at a time when that was already an old version, to see which of the already-reported bugs it found, how many false positives it generated, and also to compare its performance to that of another (much more complex) software verifier. This more-complex verifier, formerly the Meta-level Compilation (MC) project of Stanford University, which is now [a] commercial product[s] sold by Coverity Incorporated, had already been used on the same source code, and the results of that analysis had already been published. Here is a summary of the results from the MyGCC analysis. Number of known bugs: >100 Number of false negatives: 4 Number of false positives: 2 Number of new bugs found by MyGCC that had not been found by MC: 4 Source:
9 Web domains for further reading MyGCC: mygcc.free.fr Normal GCC: gcc.gnu.org GNU: The Free Software Foundation:
Checking System Rules Using System-Specific, Programmer- Written Compiler Extensions
Motivation for using Checking System Rules Using System-Specific, Programmer- Written Compiler Extensions Dawson Engler Benjamin Chelf Andy Chou Seth Hallem 1 Computer Systems Laboratory Stanford University
More informationCompiler Theory. (GCC the GNU Compiler Collection) Sandro Spina 2009
Compiler Theory (GCC the GNU Compiler Collection) Sandro Spina 2009 GCC Probably the most used compiler. Not only a native compiler but it can also cross-compile any program, producing executables for
More informationQuick Parser Development Using Modified Compilers and Generated Syntax Rules
Quick Parser Development Using Modified Compilers and Generated Syntax Rules KAZUAKI MAEDA Department of Business Administration and Information Science, Chubu University 1200 Matsumoto, Kasugai, Aichi,
More informationIntroduction to Cygwin Operating Environment
Introduction to Cygwin Operating Environment ICT 106 Fundamentals of Computer Systems Eric Li ICT106_Pract_week 1 1 What s Cygwin? Emulates Unix/Linux environment on a Windows Operating System; A collection
More informationCS108 Software Systems: UNIX. Fall 2011
CS108 Software Systems: UNIX Fall 2011 CS108 Fall 2011 2 Course Info cs.utexas.edu/ edwardsj/teaching/2011fall/cs108 CS108 Fall 2011 3 Why Linux? Multi-user, multi-process operating system Open-source
More informationEmbest IDE Pro for ARM 2005
Embest IDE Pro for ARM 2005 1.1 About Embest IDE Pro for ARM2005 Embest IDE Pro for ARM2005 is a new release of Embest IDE for ARM based on 2004 version. It is an Integrated Development Environment for
More informationCSE 4/521 Introduction to Operating Systems
CSE 4/521 Introduction to Operating Systems Lecture 3 Operating Systems Structures (Operating-System Services, User and Operating-System Interface, System Calls, Types of System Calls, System Programs,
More informationAdvances in Compilers
Advances in Compilers Prof. (Dr.) K.R. Chowdhary, Director COE Email: kr.chowdhary@jietjodhpur.ac.in webpage: http://www.krchowdhary.com JIET College of Engineering August 4, 2017 kr chowdhary Compilers
More informationAlternatives for semantic processing
Semantic Processing Copyright c 2000 by Antony L. Hosking. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies
More informationAutomatic Source Audit with GCC. CoolQ Redpig Fedora
Automatic Source Audit with GCC CoolQ Redpig Fedora Contents Problems with software evolution Framework for automatic/static analysis An attempt BDL Bug Description Language Architecture overview Module
More informationChapter 4: Multi-Threaded Programming
Chapter 4: Multi-Threaded Programming Chapter 4: Threads 4.1 Overview 4.2 Multicore Programming 4.3 Multithreading Models 4.4 Thread Libraries Pthreads Win32 Threads Java Threads 4.5 Implicit Threading
More informationNational Aeronautics and Space and Administration Space Administration. CFE CMake Build System
National Aeronautics and Space and Administration Space Administration CFE CMake Build System 1 1 Simplify integrating apps together CFS official Recycled from other projects Custom LC... SC HK A C B Z
More informationLaboratorio di Programmazione. Prof. Marco Bertini
Laboratorio di Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Code versioning: techniques and tools Software versions All software has multiple versions: Each
More informationQ&A about SuperTest for compiler users working in safety critical markets
Q&A about SuperTest for compiler users working in safety critical markets What is SuperTest? SuperTest is a compiler test and validation suite for C and C++. SuperTest contains a tool to run tests (the
More informationYocto Project components
Lecture 3 3 Yocto Project components 25 octombrie 2016 Exam questions 1. Please write al least four of the described components of a GNU toolchain 2. List the components which define a Linux distribution
More informationCS 300 Data Structures
CS 300 Data Structures Introduction 1 Topics Data Structures Linux C Programming Software Development Tools Software Development Methods 2 UNIX/Linux/GNU UNIX is an Operating System (OS) 1969 at Bell Labs
More informationSimply RISC S1 Core Specification. - version 0.1 -
Simply RISC S1 Core Specification - version 0.1 - Simply RISC S1 Core Summary =========================== This is the summary for the S1 Core (codename "Sirocco"); all the informations you need are contained
More informationFree & Open Source Software: The Academic Future
Free & Open Source Software: The Academic Future Paul E. Johnson University of Kansas http://lark.cc.ku.edu/~pauljohn Presentation at Ukrainian National University of L'viv May 27, 2005
More informationSLIDE 2. At the beginning of the lecture, we answer question: On what platform the system will work when discussing this subject?
SLIDE 2 At the beginning of the lecture, we answer question: On what platform the system will work when discussing this subject? We have two systems: Widnows and Linux. The easiest solution is to use the
More informationUnix/Linux: History and Philosophy
Unix/Linux: History and Philosophy History and Background Multics project Unix Linux Multiplexed Information and Computing Service Collaborative venture between General Electric, Bell Telephone Labs, and
More informationReview: Easy Piece 1
CS 537 Lecture 10 Threads Michael Swift 10/9/17 2004-2007 Ed Lazowska, Hank Levy, Andrea and Remzi Arpaci-Dussea, Michael Swift 1 Review: Easy Piece 1 Virtualization CPU Memory Context Switch Schedulers
More informationClusters. Rob Kunz and Justin Watson. Penn State Applied Research Laboratory
Clusters Rob Kunz and Justin Watson Penn State Applied Research Laboratory rfk102@psu.edu Contents Beowulf Cluster History Hardware Elements Networking Software Performance & Scalability Infrastructure
More informationSPARKSkein A Formal and Fast Reference Implementation of Skein
SPARKSkein A Formal and Fast Reference Implementation of Skein Rod Chapman, Altran Praxis Copyright Altran Praxis Agenda The big idea What is Skein? Coding SPARKSkein Results The release Conclusions and
More informationEKT332 COMPUTER NETWORK
EKT332 COMPUTER NETWORK LAB 1 INTRODUCTION TO GNU/LINUX OS Lab #1 : Introduction to GNU/Linux OS Objectives 1. Introduction to Linux File System (Red Hat Distribution). 2. Introduction to various packages
More informationUnix to Linux. CS 3113 Fall 2018 Dr. Christan Grant
Unix to Linux CS 3113 Fall 2018 Dr. Christan Grant Outline A Brief History of Unix, C, Linux and the people involved. 2 https://commons.wikimedia.org/wiki/file:unix_history-simple.png 3 UNIX Unix definitions
More informationBasic Concepts & OS History
Basic Concepts & OS History Nima Honarmand Administrivia TA: Babak Amin Azad Office hours: Monday & Wednesday, 5:30-7:00 PM Location: 2217 old CS building VMs ready; SSH Keys will be emailed today Lab1
More informationOften, more information is required when designing system call Information varies according to OS and types of system call
System Call Parameter Passing Often, more information is required when designing system call Information varies according to OS and types of system call Three general methods used to pass parameters to
More informationOS PORTING AND ABSTRACTION LAB USER MANUAL
OS PORTING AND ABSTRACTION LAB USER MANUAL Release 1.3.8 Copyright (c) 2010 MapuSoft Technologies 1301 Azalea Road Mobile, AL 36693 www.mapusoft.com Table of Contents CHAPTER 1. INTRODUCTION TO OS PAL...
More informationSoftware Application (SWA) Skill Area 208: Use Personal Computer And Operating System
Software Application (SWA) Skill Area 208: Use Personal Computer And Operating System 208.2 Types of OS and its Features (5hrs) 208.2.1 Types of Operating System What is an Operating System? An operating
More informationCompiling and Linking
Compiling and Linking ECE2893 Lecture 17 ECE2893 Compiling and Linking Spring 2011 1 / 10 The gcc/g++ Compiler 1 The Gnu C and C++ compiler (gcc and g++ respectively) have been under development for decades,
More informationMC: Meta-level Compilation
MC: Meta-level Compilation Extending the Process of Code Compilation with Application-Specific Information for the layman developer (code monkey) Gaurav S. Kc 8 th October, 2003 1 Outline Dawson Engler
More informationLecture 12 Summary. Goals
Main topics What use is this for? What next? Next Courses? Next topics? Lecture 12 Summary Goals To understand basic features of a computer system, from the point of view of the executing program To understand,
More informationLecture 12 Summary. Main topics What use is this for? What next? Next Courses? Next topics? Teemu Kerola, Copyright 2010
Lecture 12 Summary Main topics What use is this for? What next? Next Courses? Next topics? 1 Goals To understand basic features of a computer system, from the point of view of the executing program To
More informationMingw-w64 and Win-builds.org - Building for Windows
Mingw-w64 and Win-builds.org - Building for Windows February 2, 2014 1 Mingw-w64 2 3 Section outline Mingw-w64 History, motivations and philosophy What comes with a mingw-w64 tarball Environments to build
More informationTechnical aspects of VTL to SQL translation Prepared by Regional Statistical Office in Olsztyn, Poland
Working Paper. UNITED NATIONS ECONOMIC COMMISSION FOR EUROPE CONFERENCE OF EUROPEAN STATISTICIANS Work Session on Statistical Data Editing (The Hague, Netherlands, 24-26 April 2017) I. Introduction A.
More informationHow to Edit a Trademark Record Trademark Agent
How to Edit a Trademark Record Trademark Agent Trademark Clearinghouse 24/03/2016 Version 1.1 Table of Contents 1. Introduction... 3 2. How to edit a Trademark Record when signed in as a Trademark Agent...
More informationAgenda. Threads. Single and Multi-threaded Processes. What is Thread. CSCI 444/544 Operating Systems Fall 2008
Agenda Threads CSCI 444/544 Operating Systems Fall 2008 Thread concept Thread vs process Thread implementation - user-level - kernel-level - hybrid Inter-process (inter-thread) communication What is Thread
More informationArch Linux. The Linux That Could Have Been. The concepts of distributions and flavors is perhaps one of the most unique things
Carl D. Bales CSC 345: Operating Systems Dr. Box 24 April 2014 Arch Linux The Linux That Could Have Been The concepts of distributions and flavors is perhaps one of the most unique things about Linux.
More informationCPSC/ECE 3220 Fall 2017 Exam Give the definition (note: not the roles) for an operating system as stated in the textbook. (2 pts.
CPSC/ECE 3220 Fall 2017 Exam 1 Name: 1. Give the definition (note: not the roles) for an operating system as stated in the textbook. (2 pts.) Referee / Illusionist / Glue. Circle only one of R, I, or G.
More informationUSING CODEBLOCKS. Implementing Computational Models
USING CODEBLOCKS Implementing Computational Models With C and the the GSL on Linux Dr. José M. Garrido Department of Computer Science Updated September 2014 College of Science and Mathematics Kennesaw
More informationRegression testing for the effective upgrade of an automatic track protection system
Regression testing for the effective upgrade of an automatic track protection system Dr. Petr Štěpán Ph.D. Czech Technical University in Prague AŽD Praha Zero on-site testing is very important for effective
More informationMRCP. Installation Manual. Developer Guide. Powered by Universal Speech Solutions LLC
Powered by Universal Speech Solutions LLC MRCP Installation Manual Developer Guide Revision: 39 Last updated: August 28, 2017 Created by: Arsen Chaloyan Universal Speech Solutions LLC Overview 1 Table
More informationModule 2: GNU Tools and Compilation Process Introduction to GCC and History The original GNU C Compiler is developed by Richard Stallman in 1984 to create a complete UNIX like operating systems as free
More informationProcesses and Threads
COS 318: Operating Systems Processes and Threads Kai Li and Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall13/cos318 Today s Topics u Concurrency
More informationAndroid PC Splash Brothers Design Specifications
Android PC Splash Brothers Design Specifications Contributors: Zach Bair Taronish Daruwalla Joshua Duong Anthony Nguyen 1. Technology background The Android x86 project has been in existence since 2011.
More informationFouad Riaz Bajwa. Co-Founder & FOSS Advocate FOSSFP - ifossf International Free and open Source Software Foundation, MI, USA.
Fouad Riaz Bajwa Co-Founder & FOSS Advocate FOSSFP - ifossf International Free and open Source Software Foundation, MI, USA. www.ifossf.org Worst Security Threats Sharing Knowledge What makes FOSS secure?
More informationcgatools Installation Guide
Version 1.3.0 Complete Genomics data is for Research Use Only and not for use in the treatment or diagnosis of any human subject. Information, descriptions and specifications in this publication are subject
More informationCprE Computer Architecture and Assembly Level Programming Spring Lab-2
CprE 381 - Computer Architecture and Assembly Level Programming Spring 2017 Lab-2 INTRODUCTION: This introductory lab is aimed at introducing you to the Simplescalar simulator, while letting you explore
More informationTowards Lean 4: Sebastian Ullrich 1, Leonardo de Moura 2.
Towards Lean 4: Sebastian Ullrich 1, Leonardo de Moura 2 1 Karlsruhe Institute of Technology, Germany 2 Microsoft Research, USA 1 2018/12/12 Ullrich, de Moura - Towards Lean 4: KIT The Research An University
More informationIntroduction to Linux Overview and Some History
Introduction to Linux Overview and Some History Computational Science and Engineering North Carolina A&T State University Instructor: Dr. K. M. Flurchick Email: kmflurch@ncat.edu Operating Systems and
More informationFinding Concurrency Bugs in Java
July 25, 2004 Background Our Work Recommendations Background Our Work Programmers are Not Scared Enough Java makes threaded programming too easy Language often hides consequences of incorrect synchronization
More information12. Debugging. Overview. COMP1917: Computing 1. Developing Programs. The Programming Cycle. Programming cycle. Do-it-yourself debugging
COMP1917 12s2 Debugging 1 COMP1917: Computing 1 12. Debugging Overview Programming cycle Do-it-yourself debugging Debugging withgdb Nastier bugs Memory leaks COMP1917 12s2 Debugging 2 Developing Programs
More informationCSCI 2132 Software Development. Lecture 2: Introduction to UNIX and Unix-like Operating Systems
CSCI 2132 Software Development Lecture 2: Introduction to UNIX and Unix-like Operating Systems Instructor: Vlado Keselj Faculty of Computer Science Dalhousie University 7-Sep-2018 (2) CSCI 2132 1 Previous
More informationPerformance Measurement
ECPE 170 Jeff Shafer University of the Pacific Performance Measurement 2 Lab Schedule Activities Today / Thursday Background discussion Lab 5 Performance Measurement Next Week Lab 6 Performance Optimization
More informationLectures 20, 21: Axiomatic Semantics
Lectures 20, 21: Axiomatic Semantics Polyvios Pratikakis Computer Science Department, University of Crete Type Systems and Static Analysis Based on slides by George Necula Pratikakis (CSD) Axiomatic Semantics
More informationMariaDB: Community Driven SQL Server. Kristian Nielsen MariaDB developer Monty Program AB
MariaDB: Community Driven SQL Server Kristian Nielsen MariaDB developer AB Background Why MySQL is a high-profile Free Software package and very important to the Free Software world in general. Ensure
More informationLinux: Powering the Internet
Linux: Powering the Internet Computer Tech 2018 Tom Browder [tom.browder@gmail.com] Northwest Florida Linux User Group [nwflug.org] 2018-01-27 AUDIENCE EXPECTATIONS What do you expect from this presentation?
More informationSystems Programming. The Unix/Linux Operating System
Systems Programming The Unix/Linux Operating System 1 What is UNIX? A modern computer operating system Operating system: a program that acts as an intermediary between a user of the computer and the computer
More informationHistory of Unix and Linux
License and cost Linux stand for Linus Unix. Linux originally developed by Linus Tarwalds of Finland, who currently owns the Linux trademark. Linux is Free (as in beer [freedom]). Using the open source
More informationRace Catcher. Automatically Pinpoints Concurrency Defects in Multi-threaded JVM Applications with 0% False Positives.
Race Catcher US and International Patents Issued and Pending. Automatically Pinpoints Concurrency Defects in Multi-threaded JVM Applications with 0% False Positives. Whitepaper Introducing Race Catcher
More informationFree as in Freedom A step towards Software freedom. Salahaddin University By: Amanj Sherwany
Free as in Freedom A step towards Software freedom Salahaddin University By: Amanj Sherwany http://www.amanj.me 2011 Who am I? 27 years old. M.Sc. in Computer Science, Uppsala University 2011. B.Sc. in
More informationMemory Consistency Models
Memory Consistency Models Contents of Lecture 3 The need for memory consistency models The uniprocessor model Sequential consistency Relaxed memory models Weak ordering Release consistency Jonas Skeppstedt
More informationStatic Analysis: Overview, Syntactic Analysis and Abstract Interpretation TDDC90: Software Security
Static Analysis: Overview, Syntactic Analysis and Abstract Interpretation TDDC90: Software Security Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2014 Outline Overview Syntactic Analysis Abstract
More informationProgramming Tools. Computer Organization Tools. Most of the programming assignments will require using the C language.
Programming Tools Tools 1 Most of the programming assignments will require using the C language. We will use a current version of the GCC C compiler. What s GCC? - the Gnu Compiler Collection (see gcc.gnu.org)
More informationFormal Methods for Software Development
Formal Methods for Software Development Verification with Spin Wolfgang Ahrendt 07 September 2018 FMSD: Spin /GU 180907 1 / 34 Spin: Previous Lecture vs. This Lecture Previous lecture Spin appeared as
More informationDr. Babasaheb Ambedkar Open University
Enrollment Number : Dr. Babasaheb Ambedkar Open University Term End Examination January - 2015 Course : BCA Numerical Code: 0065 Subject Code : BCA 301 Numerical Code: 0530 Subject : Introduction to Computer
More informationCOMP1007 Principles of Programming
Agenda COMP1007 Principles of Programming Definitions. What is programming? What is Java? Writing your first program. Classes and Objects. 3 Reading Program You should be reading chapters 1 & 2 of the
More informationThe New Framework for Loop Nest Optimization in GCC: from Prototyping to Evaluation
The New Framework for Loop Nest Optimization in GCC: from Prototyping to Evaluation Sebastian Pop Albert Cohen Pierre Jouvelot Georges-André Silber CRI, Ecole des mines de Paris, Fontainebleau, France
More informationTechnical White Paper iscsi Boot November 11, 2004
Technical White Paper iscsi Boot November 11, 2004 SN0032004-00 Rev A 11/04 Page 1 of 12 Table of Contents I. Executive Summary...3 II. Booting The Basics...3 Booting Options...3 Boot Methods Pros and
More informationChapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on
Chapter 2: Operating-System Structures Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures 1. Operating System Services 2. User Operating System
More informationOpen Source Development
Open Source Development Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. Chris Walton cdw@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/cdw SEOC2 Spring 2005: Open Source
More informationIntroduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras
Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 01 Lecture - 03 From Programs to Processes Hello. In
More informationRelease Note MPI/XMP-Linux Support Package
33 South La Patera Lane Santa Barbara, CA 93117-3214 ph (805) 681-3300 fax (805) 681-3311 tech@motioneng.com Release Note MPI/XMP-Linux Support Package MPI/XMP-Linux Library Version: 20030620.1.1 Revised
More informationProgram verification. Generalities about software Verification Model Checking. September 20, 2016
Program verification Generalities about software Verification Model Checking Laure Gonnord David Monniaux September 20, 2016 1 / 43 The teaching staff Laure Gonnord, associate professor, LIP laboratory,
More informationC Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006
C Compilation Model Comp-206 : Introduction to Software Systems Lecture 9 Alexandre Denault Computer Science McGill University Fall 2006 Midterm Date: Thursday, October 19th, 2006 Time: from 16h00 to 17h30
More informationWelcome to the Software Overview section of the MIPS Software Training course. In this section I will discuss software and software tools you can use
Welcome to the Software Overview section of the MIPS Software Training course. In this section I will discuss software and software tools you can use in developing software for MIPS Cores 1 I want to make
More informationDynamic Detection and Prevention of Race Conditions in File Accesses
Dynamic Detection and Prevention of Race Conditions in File Accesses Eugene Tsyrklevich eugene@securityarchitects.com Outline What are race conditions? How can we prevent them? Implementation description
More informationComLinC User Manual. Kefei Lu
ComLinC User Manual Kefei Lu December 3, 2007 Contents 1 Introduction to ComLinC 1 1.1 Licensing............................... 1 1.2 Getting Started............................ 1 1.2.1 Prerequists..........................
More informationThe only open-source type-1 hypervisor
Monika Danikáková What is Xen? The only open-source type-1 hypervisor For Unix and Unix-like OS Linux, NetBSD and OpenSolaris From ancient greek term Xenos (ξένος), guest-friends Developed by the University
More informationKU Compilerbau - Programming Assignment
716.077 KU Compilerbau - Programming Assignment Univ.-Prof. Dr. Franz Wotawa, Birgit Hofer Institute for Software Technology, Graz University of Technology April 20, 2011 Introduction During this semester
More informationOperating System Structure
Operating System Structure Joey Echeverria joey42+os@gmail.com April 18, 2005 Carnegie Mellon University: 15-410 Spring 2005 Overview Motivations Kernel Structures Monolithic Kernels Open Systems Microkernels
More informationDeveloping with L4 Overview and Pointers
Developing with L4 Overview and Pointers Carsten Weinhold 11. April 2012 1 Introduction 1.1 Scope of this Document This document aims at helping developers who are new to L4 with their first steps. In
More informationMDF4 Lib. Product Information
Product Information Table of Contents 1 Overview...3 1.1 Introduction...3 1.2 Application Areas...3 1.3 Overview of Advantages...3 2 Features and Advantages...4 2.1 Supported MDF Versions...4 3 Functional
More informationExam Questions. Give an example network topology where GPSR cannot find a way from a source to a sink. Explain your answer.
Exam Questions Type 1 Consider a 1000m2 area with a uniform distribution of 1000 sensor nodes, each equipped with a temperature sensor. You want to constitute a temperature map of the area at various resolutions.
More informationThe GNU Compiler Collection
The GNU Compiler Collection Diego Novillo dnovillo@redhat.com Gelato Federation Meeting Porto Alegre, Rio Grande do Sul, Brazil October 3, 2005 Introduction GCC is a popular compiler, freely available
More informationProgram Testing via Symbolic Execution
Program Testing via Symbolic Execution Daniel Dunbar Program Testing via Symbolic Execution p. 1/26 Introduction Motivation Manual testing is difficult Program Testing via Symbolic Execution p. 2/26 Introduction
More informationThreads Implementation. Jo, Heeseung
Threads Implementation Jo, Heeseung Today's Topics How to implement threads? User-level threads Kernel-level threads Threading models 2 Kernel/User-level Threads Who is responsible for creating/managing
More informationOperating Systems. VI. Threads. Eurecom. Processes and Threads Multithreading Models
Operating Systems VI. Threads Ludovic Apvrille ludovic.apvrille@telecom-paristech.fr Eurecom, office 470 http://soc.eurecom.fr/os/ @OS Eurecom Outline 2/36 Fall 2017 Institut Mines-Telecom Operating Systems
More informationSoftware Engineering at VMware Dan Scales May 2008
Software Engineering at VMware Dan Scales May 2008 Eng_BC_Mod 1.Product Overview v091806 The Challenge Suppose that you have a very popular software platform: that includes hardware-level and OS code that
More informationCOS 318: Operating Systems
COS 318: Operating Systems OS Structures and System Calls Prof. Margaret Martonosi Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall11/cos318/ Outline Protection
More informationYacc: A Syntactic Analysers Generator
Yacc: A Syntactic Analysers Generator Compiler-Construction Tools The compiler writer uses specialised tools (in addition to those normally used for software development) that produce components that can
More informationThe C language. Introductory course #1
The C language Introductory course #1 History of C Born at AT&T Bell Laboratory of USA in 1972. Written by Dennis Ritchie C language was created for designing the UNIX operating system Quickly adopted
More informationEL2310 Scientific Programming
Lecture 6: Introduction to C (pronobis@kth.se) Overview Overview Lecture 6: Introduction to C Roots of C Getting started with C Closer look at Hello World Programming Environment Schedule Last time (and
More informationCS 153 Design of Operating Systems
CS 153 Design of Operating Systems Winter 19 Lecture 2: Historical perspective Instructor: Nael Abu-Ghazaleh Last time What is an OS? What roles does it play? Today: Historic evolution of Operating Systems
More informationExtension of GCC with a fully manageable reverse engineering front end
Proceedings of the 7 th International Conference on Applied Informatics Eger, Hungary, January 28 31, 2007. Vol. 1. pp. 147 154. Extension of GCC with a fully manageable reverse engineering front end Csaba
More information(12) Patent Application Publication (10) Pub. No.: US 2016/ A1
(19) United States US 2016037 1322A1 (12) Patent Application Publication (10) Pub. No.: US 2016/0371322 A1 GUNTI et al. (43) Pub. Date: Dec. 22, 2016 (54) EFFICIENT MANAGEMENT OF LARGE (52) U.S. Cl. NUMBER
More informationCS 5523 Operating Systems: Midterm II - reivew Instructor: Dr. Tongping Liu Department Computer Science The University of Texas at San Antonio
CS 5523 Operating Systems: Midterm II - reivew Instructor: Dr. Tongping Liu Department Computer Science The University of Texas at San Antonio Fall 2017 1 Outline Inter-Process Communication (20) Threads
More informationCS 642 Homework #4. Due Date: 11:59 p.m. on Tuesday, May 1, Warning!
CS 642 Homework #4 Due Date: 11:59 p.m. on Tuesday, May 1, 2007 Warning! In this assignment, you will construct and launch attacks against a vulnerable computer on the CS network. The network administrators
More informationOperating Systems 2013/14 Assignment 1. Submission Deadline: Monday, November 18th, :30 a.m.
Name Matriculation no. Tutorial no. Operating Systems 2013/14 Assignment 1 Prof. Dr. Frank Bellosa Dipl.-Inform. Marius Hillenbrand Dipl.-Inform. Marc Rittinghaus Submission Deadline: Monday, November
More informationScalable Program Verification by Lazy Abstraction
Scalable Program Verification by Lazy Abstraction Ranjit Jhala U.C. Berkeley ars, July, 997 Lost contact due to real-time priority inversion bug ars, December, 999 Crashed due to uninitialized variable
More information