SmPL: A Domain-Specic Language for Specifying Collateral Evolutions in Linux Device Drivers
|
|
- Jeffry Wade
- 5 years ago
- Views:
Transcription
1 SmPL: A Domain-Specic Language for Specifying Collateral Evolutions in Linux Device Drivers Yoann Padioleau Ecole des Mines de Nantes Julia Lawall, DIKU, University of Copenhagen Gilles Muller, Ecole des Mines de Nantes ERCIM workshop on software evolution, Lille, April / 13
2 The collateral evolution problem I Libraries change. I These changes may aect the library interfaces. I Dependent code must be updated accordingly.! Evolutions in generic library entails modications, i.e. collateral evolutions in library clients. Our target: Linux device drivers. 2 / 13
3 An example Interface change: Drivers \proc info" functions shouldn't use the functions scsi host hn get and scsi host put. static int usb storage proc info (char *buffer, char **start, off t offset, int length, int hostno, int inout) { struct us data *us; char *pos = buffer; struct Scsi Host *hostptr; unsigned long f; if (inout) return length; hostptr = scsi host hn get(hostno); if (!hostptr) { return -ESRCH; us = (struct us data*)hostptr->hostdata[0]; if (!us) { scsi host put(hostptr); return -ESRCH; <SOME CODE OMMITED> scsi host put(hostptr); <SOME CODE OMMITED> 3 / 13
4 An example Interface change: Drivers \proc info" functions shouldn't use the functions scsi host hn get and scsi host put. static int usb storage proc info (char *buffer, char **start, off t offset, int length, int hostno, int inout) { struct us data *us; char *pos = buffer; struct Scsi Host *hostptr; unsigned long f; if (inout) return length; hostptr = scsi host hn get(hostno); if (!hostptr) { return -ESRCH; us = (struct us data*)hostptr->hostdata[0]; if (!us) { scsi host put(hostptr); return -ESRCH; <SOME CODE OMMITED> scsi host put(hostptr); <SOME CODE OMMITED> 4 / 13
5 A corresponding patch le --- a/drivers/usb/storage/scsiglue.c Sat Jun 14 12:18: b/drivers/usb/storage/scsiglue.c Sat Jun 14 12:18: , ,21 -static int usb_storage_proc_info ( +static int usb_storage_proc_info (struct Scsi_Host *hostptr, char *buffer, char **start, off_t offset, - int length, int hostno, int inout) { + int length, int inout) { struct us_data *us; char *pos = buffer; - struct Scsi_Host *hostptr; unsigned long f; if (inout) return length; - hostptr = scsi_host_hn_get(hostno); - if (!hostptr) { - return -ESRCH; - us = (struct us_data*)hostptr->hostdata[0]; if (!us) { - scsi_host_put(hostptr); return -ESRCH; -318,9 +342,6 - scsi_host_put(hostptr); 5 / 13
6 A corresponding patch le --- a/drivers/usb/storage/scsiglue.c Sat Jun 14 12:18: b/drivers/usb/storage/scsiglue.c Sat Jun 14 12:18: , ,21 -static int usb_storage_proc_info ( +static int usb_storage_proc_info (struct Scsi_Host *hostptr, char *buffer, char **start, off_t offset, - int length, int hostno, int inout) { + int length, int inout) { struct us_data *us; char *pos = buffer; - struct Scsi_Host *hostptr; unsigned long f; if (inout) return length; - hostptr = scsi_host_hn_get(hostno); - if (!hostptr) { - return -ESRCH; - us = (struct us_data*)hostptr->hostdata[0]; if (!us) { - scsi_host_put(hostptr); return -ESRCH; -318,9 +342,6 - scsi_host_put(hostptr); 6 / 13
7 A corresponding patch le --- a/drivers/usb/storage/scsiglue.c Sat Jun 14 12:18: b/drivers/usb/storage/scsiglue.c Sat Jun 14 12:18: , ,21 -static int usb_storage_proc_info ( +static int usb_storage_proc_info (struct Scsi_Host *hostptr, char *buffer, char **start, off_t offset, - int length, int hostno, int inout) { + int length, int inout) { struct us_data *us; char *pos = buffer; - struct Scsi_Host *hostptr; unsigned long f; if (inout) return length; - hostptr = scsi_host_hn_get(hostno); - if (!hostptr) { - return -ESRCH; - us = (struct us_data*)hostptr->hostdata[0]; if (!us) { - scsi_host_put(hostptr); return -ESRCH; -318,9 +342,6 - scsi_host_put(hostptr); 7 / 13
8 Motivations Collateral evolutions in Linux are mostly done manually (with a basic editor and the help of grep). Some collateral evolutions can involve: I hundreds of les I thousands of code sites Some collateral evolutions are quite complex.! Collateral evolutions in Linux is thus time consuming and error prone.! We propose a language to specify easily and automate such program transformations. 8 / 13
9 Proposal for a semantic patch language (SmPL) proc_info_func ( + struct Scsi_Host *hostptr, char *buffer, char **start, off_t offset, int length, - int hostno, int inout) { 9 / 13
10 Proposal for a semantic patch language (SmPL) identifier buffer, start, offset, length, inout, hostptr, hostno; proc_info_func ( + struct Scsi_Host *hostptr, char *buffer, char **start, off_t offset, int length, - int hostno, int inout) { 10 / 13
11 Proposal for a semantic patch language (SmPL) struct SHT sht; local function proc_info_func; sht.proc_info = &proc_info_func; identifier buffer, start, offset, length, inout, hostptr, hostno; proc_info_func ( + struct Scsi_Host *hostptr, char *buffer, char **start, off_t offset, int length, - int hostno, int inout) { 11 / 13
12 Proposal for a semantic patch language (SmPL) struct SHT sht; local function proc_info_func; sht.proc_info = &proc_info_func; identifier buffer, start, offset, length, inout, hostptr, hostno; proc_info_func ( + struct Scsi_Host *hostptr, char *buffer, char **start, off_t offset, int length, - int hostno, int inout) {... - struct Scsi_Host *hostptr;... - hostptr = scsi_host_hn_get(hostno);... - if (!hostptr) { scsi_host_put(hostptr); / 13
13 Summary A single small semantic patch can modify hundreds of les, at thousands of code sites. This is because the features of SmPL make a semantic patch generic by abstracting away the specic details at each code site: I dierences in spacing, indentation, and comments. I choice of the names given to variables (use of metavariables). I dierent way to sequence instructions in C (control-ow oriented rather than AST oriented). I other variations in coding style (use of isomorphisms). 13 / 13
Semantic Patches. Yoann Padioleau EMN Julia L. Lawall DIKU Gilles Muller EMN
Semantic Patches Documenting and Automating Collateral Evolutions in Linux Device Drivers Yoann Padioleau EMN padator@wanadoo.fr Julia L. Lawall DIKU julia@diku.dk Gilles Muller EMN Gilles.Muller@emn.fr
More informationDocumenting and Automating Collateral Evolutions in Linux Device Drivers
Documenting and Automating Collateral Evolutions in Linux Device Drivers Yoann Padioleau Julia Lawall Ecole des Mines DIKU, University of de Nantes Copenhagen yoann.padioleau@acm.org julia@diku.dk René
More informationCoccinelle: A Program Matching and Transformation Tool for Linux
Coccinelle: A Program Matching and Transformation Tool for Linux Nicolas Palix (DIKU) joint work with Julia Lawall (DIKU), Gilles Muller (INRIA) Jesper Andersen, Julien Brunel, René Rydhof Hansen, and
More informationCoccinelle: A Program Matching and Transformation Tool for Systems Code
Coccinelle: A Program Matching and Transformation Tool for Systems Code Gilles Muller Julia Lawall (INRIA/LIP6/IRILL) http://coccinelle.lip6.fr The problem: Dealing with Legacy Systems Code (Linux) It
More informationOn Designing a Target-Independent DSL for Safe OS Process Scheduling Components
On Designing a Target-Independent DSL for Safe OS Process Scheduling Components Julia Lawall, DIKU, University of Copenhagen Anne-Françoise Le Meur, Jacquard Group, LIFL, Lille Gilles Muller, OBASCO Group,
More informationLinux for Safety Critical Applications: Hunting down bug patterns
Linux for Safety Critical Applications: Hunting down bug patterns GNU/Linux for Safety Open-Source procedures and decisions Availability of technology and know-how Built on
More informationCoccinelle: Bug Finding for the Linux Community
Coccinelle: Bug Finding for the Linux Community Julia Lawall (INRIA) Gilles Muller (INRIA), René Rydhof Hansen (Aalborg), Nicolas Palix (Grenoble) January 6, 2012 Overview Goal: Improving the robustness
More informationCoccinelle: Killing Driver Bugs Before They Hatch
Coccinelle: Killing Driver Bugs Before They Hatch Julia Lawall DIKU, University of Copenhagen Gilles Muller, Richard Urunuela École des Mines de Nantes-INRIA, LINA OS evolution Motivations: Improve performance.
More informationCoccigrep: a semantic grep for C language
Coccigrep: a semantic grep for C language Éric Leblond Stamus Networks April 27, 2014 Éric Leblond (Stamus Networks) Coccigrep: a semantic grep for C language April 27, 2014 1 / 14 Eric Leblond a.k.a Regit
More informationAPI migration is a hard problem!
19 March 2012 API migration is a hard problem! Ralf Lämmel Software Languages Team, University of Koblenz-Landau Acknowledgement: This is joint work with (in alphabetic order) Thiago Tonelli Bartolomei
More informationBachelor s Thesis : Finding Bugs in Open Source Software using Coccinelle
Bachelor s Thesis : Finding Bugs in Open Source Software using Coccinelle Sune Rievers - sunerievers@stud.ku.dk Supervisor: Julia Lawall January 13, 2010 1 Contents 1 Abstract 4 2 Preface 5 3 Acknowledgments
More informationTowards Easing the Diagnosis of Bugs in OS Code
Towards Easing the Diagnosis of Bugs in OS Code Henrik Stuart René Rydhof Hansen Julia L. Lawall Jesper Andersen DIKU, University of Copenhagen, Copenhagen, Denmark {hstuart,rrhansen,julia,jespera}@diku.dk
More informationFinding Error Handling Bugs in OpenSSL using Coccinelle
1 Finding Error Handling Bugs in OpenSSL using Coccinelle (Practical Experience Report) Julia Lawall (University of Copenhagen/INRIA-Regal) Ben Laurie (Google), René Rydhof Hansen (Aalborg University),
More informationHow Double-Fetch Situations turn into Double-Fetch Vulnerabilities:
How Double-Fetch Situations turn into Double-Fetch Vulnerabilities: A Study of Double Fetches in the Linux Kernel Pengfei Wang, Jens Krinke, Kai Lu, Gen Li, Steve Dodier-Lazaro College of Computer National
More informationCoccinelle. Julia Lawall (Inria/Irill/LIP6) August 19, 2015
1 Coccinelle Julia Lawall (Inria/Irill/LIP6) http://coccinelle.lip6.fr http://btrlinux.inria.fr August 19, 2015 Goal Help developers scan and transform a large legacy C code base. Applications: Bug finding
More informationInside the Mind of a Coccinelle Programmer
Inside the Mind of a Coccinelle Programmer Julia Lawall (Inria/LIP6) Linux Security Summit August 25, 2016 2 What is Coccinelle? Find once, fix everywhere. Approach: Coccinelle: http://coccinelle.lip6.fr/
More informationPatl: Safe Program Transformation between APIs with Many-to-Many Mappings. Yingfei Xiong Peking University
Patl: Safe Program Transformation between APIs with Many-to-Many Mappings Yingfei Xiong Peking University API change is common! New APIs are released to replace older ones. Migrate a program to another
More informationCoccinelle: Practical Program Transformation for the Linux Kernel. Julia Lawall (Inria/LIP6) June 25, 2018
Coccinelle: Practical Program Transformation for the Linux Kernel Julia Lawall (Inria/LIP6) June 25, 2018 1 Motivation Large, critical infrastructure-software code bases Linux kernel, OpenSSL, Qemu, Firefox,
More informationGeneric Patch Inference
Generic Patch Inference Jesper Andersen DIKU, University of Copenhagen, Universitetsparken 1, 2100 Copenhagen Ø, Denmark Email: jespera@diku.dk Julia L. Lawall DIKU, University of Copenhagen, Universitetsparken
More informationCoccinelle Usage (version )
Coccinelle Usage (version 1.0.6 ) September 27, 2016 1 Introduction This document describes the options provided by Coccinelle. The options have an impact on various phases of the semantic patch application
More informationUnderstanding the Genetic Makeup of Linux Device Drivers
Understanding the Genetic Makeup of Linux Device Drivers (Work in Progress) Peter Senna Tschudin, Laurent Réveillère, Lingxiao Jiang, David Lo, Julia Lawall, Gilles Muller LIP6 Inria & UPMC, LaBRI, Singapore
More informationAdvanced SmPL: Finding Missing IS ERR tests
1 Advanced SmPL: Finding Missing IS ERR tests Julia Lawall January 26, 2011 The error handling problem The C language does not provide any error handling abstractions. For pointer-typed functions, Linux
More informationGeneric patch inference
Autom Softw Eng (2010) 17: 119 148 DOI 10.1007/s10515-010-0062-z Generic patch inference Jesper Andersen Julia L. Lawall Received: 24 January 2010 / Accepted: 1 February 2010 / Published online: 12 February
More informationIntroduction to Coccinelle
Introduction to Coccinelle Julia Lawall (Inria/LIP6) http://coccinelle.lip6.fr September 17, 2014 Common programming problems Programmers don t really understand how C works.!e1 & e2 does a bit-and with
More informationOutline. 1 About the course
Outline EDAF50 C++ Programming 1. Introduction 1 About the course Sven Gestegård Robertz Computer Science, LTH 2018 2 Presentation of C++ History Introduction Data types and variables 1. Introduction 2/1
More informationFlash Drive Emulation
Flash Drive Emulation Eric Aderhold & Blayne Field aderhold@cs.wisc.edu & bfield@cs.wisc.edu Computer Sciences Department University of Wisconsin, Madison Abstract Flash drives are becoming increasingly
More informationOutline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations
Outline Computer Science 331 Data Structures, Abstract Data Types, and Their Implementations Mike Jacobson 1 Overview 2 ADTs as Interfaces Department of Computer Science University of Calgary Lecture #8
More informationFile Systems. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University
File Systems Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu SSE3044: Operating Systems, Fall 2016, Jinkyu Jeong (jinkyu@skku.edu) File System Layers
More informationFast and Precise Retrieval of Forward and Back Porting Information for Linux Device Drivers
Fast and Precise Retrieval of Forward and Back Porting Information for Linux Device Drivers Julia Lawall, Derek Palinski, Lukas Gnirke, and Gilles Muller, Sorbonne Universités/UPMC/Inria/LIP6 https://www.usenix.org/conference/atc17/technical-sessions/presentation/lawall
More informationEffective Programming in C and UNIX Lab 6 Image Manipulation with BMP Images Due Date: Sunday April 3rd, 2011 by 11:59pm
15-123 Effective Programming in C and UNIX Lab 6 Image Manipulation with BMP Images Due Date: Sunday April 3rd, 2011 by 11:59pm The Assignment Summary: In this assignment we are planning to manipulate
More informationThe Semantics of Semantic Patches in Coccinelle: Program Transformation for the Working Programmer
The Semantics of Semantic Patches in Coccinelle: Program Transformation for the Working Programmer Neil D. Jones 1 and René Rydhof Hansen 2 1 DIKU (Computer Science Dept., University of Copenhagen, Denmark)
More informationIncreasing Automation in the Backporting of Linux Drivers Using Coccinelle
Increasing Automation in the Backporting of Linux Drivers Using Coccinelle Luis R. Rodriguez, (SUSE Labs) Julia Lawall (Inria/LIP6/UPMC/Sorbonne University-Whisper) January, 2015 (Unpublished work) What
More informationVIRTIO 1.0. Paravirtualized I/O for KVM and beyond. Stefan Hajnoczi 8 th February 2014 INTERNAL ONLY PRESENTER NAME
VIRTIO 1.0 Paravirtualized I/O for KVM and beyond Stefan Hajnoczi 8 th February 2014 1 What we're going to cover How VIRTIO 1.0 works You want to: Understand paravirtualized I/O Design
More informationA Foundation for Flow-Based Program Matching
A Foundation for Flow-Based Program Matching Using Temporal Logic and Model Checking Julien Brunel DIKU, University of Copenhagen, Denmark brunel@diku.dk Damien Doligez INRIA, Gallium Project, France damien.doligez@inria.fr
More informationForward declaration of enumerations
Doc. no.: N2499=08-0009 Date: 2008-01-09 Project: Programming Language C++ Reply to: Alberto Ganesh Barbati Forward declaration of enumerations 1 Introduction In C++03 every declaration
More informationUniversity of Utrecht. 1992; Fokker, 1995), the use of monads to structure functional programs (Wadler,
J. Functional Programming 1 (1): 1{000, January 1993 c 1993 Cambridge University Press 1 F U N C T I O N A L P E A R L S Monadic Parsing in Haskell Graham Hutton University of Nottingham Erik Meijer University
More informationFrama-C's metrics plug-in
Metrics Frama-C's metrics plug-in 20120901 (Oxygen) Richard Bonichon & Boris Yakobowski CEA LIST, Software Reliability Laboratory, Saclay, F-91191 c 2011 CEA LIST CONTENTS Contents 1 Quick overview 7
More informationCoccinelle: Tool support for automated CERT C Secure Coding Standard certification
Coccinelle: Tool support for automated CERT C Secure Coding Standard certification Mads Chr. Olesen a, René Rydhof Hansen a,, Julia L. Lawall b, Nicolas Palix b a Department of Computer Science, Aalborg
More informationListening to Programmers /* -- Taxonomies and Characteristics of Comments in Operating System Code */
Listening to Programmers /* -- Taxonomies and Characteristics of Comments in Operating System Code */ Yoann Padioleau,, Yuanyuan Zhou University of Illinois, Urbana-Champaign Motivation Many innovations
More informationAutomating Program Transformation for Java Using Semantic Patches
Automating Program Transformation for Java Using Semantic Patches Hong Jin Kang, Ferdian Thung, Julia Lawall, Gilles Muller, Lingxiao Jiang, David Lo To cite this version: Hong Jin Kang, Ferdian Thung,
More informationIncreasing Automation in the Backporting of Linux Drivers Using Coccinelle
1 Increasing Automation in the Backporting of Linux Drivers Using Coccinelle Luis R. Rodriguez, (SUSE Labs) Julia Lawall (Inria/LIP6/UPMC/Sorbonne Universités) September 10, 2015 What is backporting? Linux
More informationLIVEPATCH MODULE CREATION. LPC 2016 Josh Poimboeuf
LPC 2016 Josh Poimboeuf Overview Review current approaches kpatch-build (out-of-tree) kbuild (in-tree) Propose common in-tree approach 2 kpatch-build $ kpatch-build dirtycow.patch Fedora/Red Hat distribution
More informationBlack-Box Program Specialization
Published in Technical Report 17/99, Department of Software Engineering and Computer Science, University of Karlskrona/Ronneby: Proceedings of WCOP 99 Black-Box Program Specialization Ulrik Pagh Schultz
More informationFile I/O. Dong-kun Shin Embedded Software Laboratory Sungkyunkwan University Embedded Software Lab.
1 File I/O Dong-kun Shin Embedded Software Laboratory Sungkyunkwan University http://nyx.skku.ac.kr Unix files 2 A Unix file is a sequence of m bytes: B 0, B 1,..., B k,..., B m-1 All I/O devices are represented
More informationLanguage Design for Implementing Process Scheduling Hierarchies
Language Design for Implementing Process Scheduling Hierarchies (Invited Paper) Julia L. Lawall DIKU, University of Copenhagen 2100 Copenhagen Ø, Denmark julia@diku.dk Gilles Muller Obasco Group, EMN/INRIA
More information15-122: Principles of Imperative Computation, Spring Due: Thursday, March 10, 2016 by 22:00
15-122 Programming 7 Page 1 of 8 15-122: Principles of Imperative Computation, Spring 2016 Programming homework 7: Text Buers Due: Thursday, March 10, 2016 by 22:00 For the programming portion of this
More informationStorage Systems. NPTEL Course Jan K. Gopinath Indian Institute of Science
Storage Systems NPTEL Course Jan 2013 (Lecture 11) K. Gopinath Indian Institute of Science USB Mass Storage Device A USB has a microcontroller that handles USB protocol a media controller that handles
More informationKhoral Research, Inc. Khoros is a powerful, integrated system which allows users to perform a variety
Data Parallel Programming with the Khoros Data Services Library Steve Kubica, Thomas Robey, Chris Moorman Khoral Research, Inc. 6200 Indian School Rd. NE Suite 200 Albuquerque, NM 87110 USA E-mail: info@khoral.com
More informationCoccinelle Usage (version 0.1.7)
Coccinelle Usage (version 0.1.7) June 5, 2009 1 Introduction This document describes the options provided by Coccinelle. The options have an impact on various phases of the semantic patch application process.
More informationELEC 377 Operating Systems. Week 4 Lab 2 Tutorial
ELEC 377 Operating Systems Week 4 Tutorial Modules Provide extensions to the kernel Device Drivers File Systems Extra Functionality int init_module() {.. do initialization stuff.... tell the kernel what
More information3L: Learning Linux Logging (Extended Abstract for BENEVOL 15)
3L: Learning Linux Logging (Extended Abstract for BENEVOL 15) Peter Senna Tschudin Peter.Senna@lip6.fr Julia Lawall Julia.Lawall@lip6.fr Gilles Muller Gilles.Muller@lip6.fr Abstract Logging is a common
More informationOpen Source support for OSD
Open Source support for OSD IBM Haifa Research Lab IBM Labs in Haifa 2006 IBM Corporation Outline IBM Labs in Haifa Object Based Storage (OSD) OSD Initiator Past Going forward OSD Simulator on AlphaWorks
More informationHigh Level Design IOD KV Store FOR EXTREME-SCALE COMPUTING RESEARCH AND DEVELOPMENT (FAST FORWARD) STORAGE AND I/O
Date: January 10, 2013 High Level Design IOD KV Store FOR EXTREME-SCALE COMPUTING RESEARCH AND DEVELOPMENT (FAST FORWARD) STORAGE AND I/O LLNS Subcontract No. Subcontractor Name Subcontractor Address B599860
More informationWhat to Expect from Honors Course
COMP 530H Operating Systems Honors: A Study of Linux on Intel IA-32 Systems Introduction Kevin Jeffay Don Smith 1 What to Expect from Honors Course Introduction to Linux OS kernel implementation. Experience
More informationPatch Management. Proposal
Patch Management Proposal September 2001 Adrian Schuur - schuur@de.ibm.com Viktor Mihajlovski - mihajlov@de.ibm.com Introduction As described by John Williams there is a need for better management of patches
More informationReduction of nite linear CSPs to SAT using dierent encod
Reduction of nite linear CSPs to SAT using dierent encodings Mirko Stojadinovi mirkos@matf.bg.ac.rs Department of Computer Science Faculty of Mathematics University of Belgrade Fifth Workshop on Formal
More informationAalborg Universitet. Published in: Science of Computer Programming. DOI (link to publication from Publisher): /j.scico
Downloaded from vbn.aau.dk on: marts 27, 2019 Aalborg Universitet Coccinelle Tool support for automated CERT C Secure Coding Standard certification Olesen, Mads Chr.; Hansen, Rene Rydhof; Lawall, Julia
More informationresidual residual program final result
C-Mix: Making Easily Maintainable C-Programs run FAST The C-Mix Group, DIKU, University of Copenhagen Abstract C-Mix is a tool based on state-of-the-art technology that solves the dilemma of whether to
More informationSA30228 / CVE
Generated by Secunia 29 May, 2008 5 pages Table of Contents Introduction 2 Technical Details 2 Exploitation 4 Characteristics 4 Tested Versions 5 Fixed Versions 5 References 5 Generated by Secunia 29 May,
More informationTutorial 7. Y. Bernat. Object Oriented Programming 2, Spring Y. Bernat Tutorial 7
Tutorial 7 Y. Bernat Object Oriented Programming 2, Spring 2016 Exercise 4 STL Outline Part I Today's Topics 1 Exercise 4 2 STL Containers - continue Lambda functions Algorithms Exercise 4 STL Exercise
More informationWhat s an API? Do we need standardization?
Network Interface z The network protocol stack is a part of the OS z Need an API to interface applications to the protocol stack. What s an API? Do we need standardization? z The socket interface is the
More informationImplementation of F# language support in JetBrains Rider IDE
SAINT-PETERSBURG STATE UNIVERSITY Software Engineering Evgeniy Auduchinok Implementation of F# language support in JetBrains Rider IDE Graduation Thesis Scientific supervisor: Senior lecturer Iakov Kirilenko
More informationIntergrity Policies CS3SR3/SE3RA3. Ryszard Janicki. Outline Integrity Policies The Biba Integrity Model
Intergrity Policies CS3SR3/SE3RA3 Ryszard Janicki Acknowledgments: Material based on Computer Security: Art and Science by Matt Bishop (Chapter 6) Ryszard Janicki Intergrity Policies 1 / 13 Outline 1 2
More informationCOM324 System Programming. Midterm Exam
Name: COM324 System Programming Spring 2009-2010 Computer Engineering Department Near East University Midterm Exam April 28, 2010 [11:30A] Lecturer: Hüseyin Sevay INSTRUCTIONS You have 100 minutes for
More informationnftables switchdev support
nftables switchdev support Pablo Neira Ayuso Netdev 1.1 February 2016 Sevilla, Spain nftables switchdev support Steps: Check if switchdev is available If so, transparently insertion
More informationContents. Programming Assignment 0 review & NOTICE. File IO & File IO exercise. What will be next project?
File I/O Prof. Jin-Soo Kim(jinsookim@skku.edu) TA - Dong-Yun Lee(dylee@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Contents Programming Assignment 0 review & NOTICE
More informationcompute event display
Programming Connectors In an Open Language Uwe Amann, Andreas Ludwig, Daniel Pfeifer Institut fur Programmstrukturen und Datenorganisation Universitat Karlsruhe Postfach 6980, Zirkel 2, 76128 Karlsruhe,
More informationASPECT GENERATOR. Audit Trail WEAVER. Aspect Editor. Weaving Strategies Editor. Model Editor. Mapping. Instructions. Original Model (XMI)
Tool Support for Aspect-Oriented Design Francois Mekerke 1, Geri Georg 2, Robert France 3, and Roger Alexander 3 1 Ecole Nationale Superieure des Etudes et Techniques d'armement, Brest, France mekerkfr@ensieta.fr
More informationAll the scoring jobs will be done by script
File I/O Prof. Jin-Soo Kim( jinsookim@skku.edu) TA Sanghoon Han(sanghoon.han@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Announcement (1) All the scoring jobs
More informationDirty COW Attack Lab
SEED Labs Dirty COW Attack Lab 1 Dirty COW Attack Lab Copyright 2017 Wenliang Du, Syracuse University. The development of this document was partially funded by the National Science Foundation under Award
More informationSymbol Tables. ASU Textbook Chapter 7.6, 6.5 and 6.3. Tsan-sheng Hsu.
Symbol Tables ASU Textbook Chapter 7.6, 6.5 and 6.3 Tsan-sheng Hsu tshsu@iis.sinica.edu.tw http://www.iis.sinica.edu.tw/~tshsu 1 Definitions Symbol table: A data structure used by a compiler to keep track
More informationgrib_api.h File Reference
grib_api.h File Reference Copyright 2005-2013 ECMWF. More... Defines #define GRIB_API_VERSION (GRIB_API_MAJOR_VERSION*10000+G RIB_API_MINOR_VERSION*100+GRIB_API_REVISION_VERSI ON) #define GRIB_SECTION_PRODUCT
More informationServer 1 Server 2 CPU. mem I/O. allocate rec n read elem. n*47.0. n*20.0. select. n*1.0. write elem. n*26.5 send. n*
Information Needs in Performance Analysis of Telecommunication Software a Case Study Vesa Hirvisalo Esko Nuutila Helsinki University of Technology Laboratory of Information Processing Science Otakaari
More informationConsolidation dynamique d applications Web haute disponibilité
Consolidation dynamique d applications Web haute disponibilité Fabien Hermenier 1, Julia Lawall 2, Jean-Marc Menaud 1, Gilles Muller 3 1 ASCOLA Mines de Nantes, INRIA, LINA. prenom.nom@mines-nantes.fr
More informationOn Reconciling Patches and Aspects Laurent Burgy Marc Fiuczynski Marco Yuen Robert Grimm Department of Computer Science Princeton University
On Reconciling Patches and Aspects Laurent Burgy Marc Fiuczynski Marco Yuen Robert Grimm Princeton University University of Victoria New York University ABSTRACT In previous work, we presented a domain-specific
More informationApplications of. Virtual Memory in. OS Design
Applications of Virtual Memory in OS Design Nima Honarmand Introduction Virtual memory is a powerful level of indirection Indirection: IMO, the most powerful concept in Computer Science Fundamental Theorem
More informationTHE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano
THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL Jun Sun, Yasushi Shinjo and Kozo Itano Institute of Information Sciences and Electronics University of Tsukuba Tsukuba,
More informationAUTO FOCUS MODULE CUSTOM CAMERAS FOR MASS PRODUCTION APPLICATIONS USER GUIDE
AUTO FOCUS MODULE CUSTOM CAMERAS FOR MASS PRODUCTION APPLICATIONS USER GUIDE Copyright Imaging Diagnostics 2010, 2011 This manual is copyrighted. All rights are reserved and no part of this publication
More informationCSE 333 SECTION 3. POSIX I/O Functions
CSE 333 SECTION 3 POSIX I/O Functions Administrivia Questions (?) HW1 Due Tonight Exercise 7 due Monday (out later today) POSIX Portable Operating System Interface Family of standards specified by the
More informationOperating System Performance and Large Servers 1
Operating System Performance and Large Servers 1 Hyuck Yoo and Keng-Tai Ko Sun Microsystems, Inc. Mountain View, CA 94043 Abstract Servers are an essential part of today's computing environments. High
More informationMan vs. Machine Dierences in SPARQL Queries
Man vs. Machine Dierences in SPARQL Queries Laurens Rietveld 1 and Rinke Hoekstra 1,2 1 Department of Computer Science, VU University Amsterdam, The Netherlands {laurens.rietveld,rinke.hoekstra}@vu.nl
More informationLessons from Amoeba. Sape J. Mullender. Huygens Systems Research Laboratory Universiteit Twente Enschede
Lessons from Amoeba Sape J. Mullender Huygens Systems Research Laboratory Universiteit Twente Enschede 1 Introduction Amoeba is a distributed system designed at the Vrije Universiteit and at CWI, the Centre
More informationECE 650 Systems Programming & Engineering. Spring 2018
ECE 650 Systems Programming & Engineering Spring 2018 Inter-process Communication (IPC) Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) Recall Process vs. Thread A process is
More informationS E M A N T I C PAT C H I N F E R E N C E. jesper andersen. Computer Science Department (DIKU)
S E M A N T I C PAT C H I N F E R E N C E jesper andersen Computer Science Department (DIKU) The Graduate School of Science Faculty of Science University of Copenhagen Copenhagen November 2009 Supervisor:
More informationTechnical Note. Enabling On-Die ECC NAND with JFFS2. Introduction. TN-29-75: Enabling On-Die ECC NAND with JFFS2. Introduction.
Technical Note Enabling On-Die ECC NAND with JFFS2 Introduction Introduction Terminology The Micron NAND Flash memory with on-die ECC is specifically designed to work with application processors that have
More informationMetaRTL: Raising the Abstraction Level of RTL Design
MetaRTL: Raising the Abstraction Level of RTL Design Jianwen Zhu Electrical and Computer Engineering University of Toronto March 16, 2001 zhu@eecg.toronto.edu http://www.eecg.toronto.edu/ zhu DATE 2001,
More informationDierencegraph - A ProM Plugin for Calculating and Visualizing Dierences between Processes
Dierencegraph - A ProM Plugin for Calculating and Visualizing Dierences between Processes Manuel Gall 1, Günter Wallner 2, Simone Kriglstein 3, Stefanie Rinderle-Ma 1 1 University of Vienna, Faculty of
More informationThe course that gives CMU its Zip! I/O Nov 15, 2001
15-213 The course that gives CMU its Zip! I/O Nov 15, 2001 Topics Files Unix I/O Standard I/O A typical hardware system CPU chip register file ALU system bus memory bus bus interface I/O bridge main memory
More informationHowever, no results are published that indicate the applicability for cycle-accurate simulation purposes. The language RADL [12] is derived from earli
Retargeting of Compiled Simulators for Digital Signal Processors Using a Machine Description Language Stefan Pees, Andreas Homann, Heinrich Meyr Integrated Signal Processing Systems, RWTH Aachen pees[homann,meyr]@ert.rwth-aachen.de
More informationCS241 Computer Organization Spring Data Alignment
CS241 Computer Organization Spring 2015 Data Alignment 3-26 2015 Outline! Data Alignment! C: pointers to functions! Memory Layout Read: CS:APP2 Chapter 3, sections 3.8-3.9 Quiz next Thursday, April 2nd
More informationLab 09 - Virtual Memory
Lab 09 - Virtual Memory Due: November 19, 2017 at 4:00pm 1 mmapcopy 1 1.1 Introduction 1 1.1.1 A door predicament 1 1.1.2 Concepts and Functions 2 1.2 Assignment 3 1.2.1 mmap copy 3 1.2.2 Tips 3 1.2.3
More informationCPSC 822 MIDTERM EXAM, SPRING 2015
CPSC 822 MIDTERM EXAM, SPRING 2015 NAME: 1. (5) In our warm-up C code that was used to configure a NetApp file server,we see the line while(wait(&status)!=pid); The wait suspends us until we receive any
More informationImplementing an Embedded Compiler using Program Transformation Rules
SOFTWARE PRACTICE AND EXPERIENCE Softw. Pract. Exper. 2012; 00:1 20 Published online in Wiley InterScience (www.interscience.wiley.com). Implementing an Embedded Compiler using Program Transformation Rules
More informationMy malloc: mylloc and mhysa. Johan Montelius HT2016
1 Introduction My malloc: mylloc and mhysa Johan Montelius HT2016 So this is an experiment where we will implement our own malloc. We will not implement the world s fastest allocator, but it will work
More informationP4 Language Design Working Group. Gordon Brebner
P4 Language Design Working Group Gordon Brebner Language Design Working Group Responsibilities Defining the P4 language specification Managing the graceful evolution of the language Membership Co-chairs:
More informationMMPI: Asynchronous Message Management for the. Message-Passing Interface. Harold Carter Edwards. The University of Texas at Austin
MMPI: Asynchronous Message Management for the Message-Passing Interface Harold Carter Edwards Texas Institute for Computational and Applied Mathematics The University of Texas at Austin Austin, Texas,
More informationIndexing Large, Mixed- Language Codebases. Luke Zarko
Indexing Large, Mixed- Language Codebases Luke Zarko The Kythe project aims to establish open data formats and protocols for interoperable developer tools. Outline Introduction System
More informationC Language: A Style Guide
C Language: A Style Guide Antón Gómez, october 2010 Introduction This guide proposes a set of basic rules, studied to favor the writing of clean code. In order to understand why is it necessary to keep
More informationCS429: Computer Organization and Architecture
CS429: Computer Organization and Architecture Dr. Bill Young Department of Computer Sciences University of Texas at Austin Last updated: March 5, 2018 at 05:33 CS429 Slideset 11: 1 Alignment CS429 Slideset
More informationFlauncher and DVMS Deploying and Scheduling Thousands of Virtual Machines on Hundreds of Nodes Distributed Geographically
Flauncher and DVMS Deploying and Scheduling Thousands of Virtual Machines on Hundreds of Nodes Distributed Geographically Daniel Balouek 1, Adrien Lèbre 2, Flavien Quesnel 2 1 AVALON, Ecole Normale Supérieure
More information