Similarity in Binary Executables

Total Page:16

File Type:pdf, Size:1020Kb

Similarity in Binary Executables Similarity in Binary Executables Yaniv David Technion - Computer Science Department - Ph.D. Thesis PHD-2020-04 - 2020 Technion - Computer Science Department - Ph.D. Thesis PHD-2020-04 - 2020 Similarity in Binary Executables Research Thesis Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy Yaniv David Submitted to the Senate of the Technion — Israel Institute of Technology Hadar 5780 Haifa March 2020 Technion - Computer Science Department - Ph.D. Thesis PHD-2020-04 - 2020 Technion - Computer Science Department - Ph.D. Thesis PHD-2020-04 - 2020 This research was carried out under the supervision of Prof. Eran Yahav, in the Faculty of Computer Science. Some results in this thesis have been published as articles by the author and research collaborators in conferences and journals during the course of the author’s doctoral research period, the most up-to-date versions of which being: Yaniv David, Nimrod Partush, and Eran Yahav. Statistical similarity of binaries. In Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’16, pages 266–280, New York, NY, USA, 2016. ACM. Yaniv David, Nimrod Partush, and Eran Yahav. Similarity of binaries through re-optimization. In Pro- ceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2017, pages 79–94, New York, NY, USA, 2017. ACM. Yaniv David, Nimrod Partush, and Eran Yahav. Firmup: Precise static detection of common vulnerabilities in firmware. In Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS ’18, pages 392–404, New York, NY, USA, 2018. ACM. Yaniv David and Eran Yahav. Tracelet-based code search in executables. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’14, pages 349–360, New York, NY, USA, 2014. ACM. ACKNOWLEDGEMENTS To Vered and Yael. The Technion’s funding of this research is hereby acknowledged. Technion - Computer Science Department - Ph.D. Thesis PHD-2020-04 - 2020 Technion - Computer Science Department - Ph.D. Thesis PHD-2020-04 - 2020 Contents List of Figures Abstract 1 1 Introduction3 1.1 The Importance of Analyzing Binary Code....................3 1.2 Binary Code Analysis Using Search.......................4 1.3 Binary Code Search as An Information Retrieval Problem............5 1.4 Evaluating Similarity Measures..........................7 1.5 This Thesis....................................8 1.5.1 Tracelet-Based Code Search: Searching for Patched Code.......8 1.5.2 Statistical Similarity of Binaries: Tool-Chains and Configuration Obliv- ious Search................................9 1.5.3 Similarity through re-Optimization: Cross-Architecture Accelerated Search................................... 10 1.5.4 Applying Our Method To a Real-World Problem: Finding Common Vulnerabilities in Firmware........................ 10 1.5.5 Leaving the Source Code Behind: Similarity by Neural Name Prediction 11 2 Tracelet-Based Code Search in Executables 13 2.1 Overview..................................... 13 2.1.1 Motivating Example........................... 13 2.1.2 Similarity using Tracelets........................ 15 2.2 Preliminaries................................... 19 2.3 Tracelet-Based Matching............................. 20 2.3.1 Preprocessing: Dealing with Compilation Side-Effects......... 20 2.3.2 Comparing Binary Code Procedures................... 21 2.3.3 Calculating Tracelet Match Score.................... 23 2.3.4 Using the Rewrite Engine to Bridge the Gap............... 26 2.4 Evaluation..................................... 28 2.4.1 Test-bed Structure............................ 28 2.4.2 Prototype Implementation........................ 30 Technion - Computer Science Department - Ph.D. Thesis PHD-2020-04 - 2020 2.4.3 Test Configuration............................ 30 2.5 Results....................................... 31 2.5.1 Comparing Different Configurations................... 31 2.5.2 Using the Rewrite Engine to Improve Tracelet Match Rate....... 33 2.5.3 Performance............................... 34 2.6 Limitations.................................... 34 3 Statistical Similarity of Binaries 37 3.1 Background: Similarity By Compisition..................... 37 3.2 Overview..................................... 39 3.3 Strand-Based Similarity by Composition..................... 42 3.3.1 Similarity By Composition........................ 42 3.3.2 Procedure Decomposition to Strands................... 43 3.3.3 Statistical Evidence............................ 44 3.3.4 Local and Global Evidence Scores.................... 45 3.4 Semantic Strand Similarity............................ 46 3.4.1 Similarity Semantics........................... 46 3.4.2 Encoding Similarity as a Program Verifier Query............ 47 3.5 Evaluation..................................... 49 3.5.1 Test-Bed Creation and Prototype Implementation............ 49 3.5.2 Using Vulnerable Code as Queries.................... 50 3.5.3 Testing Different Aspects of the Problem Separately.......... 50 3.5.4 Enabling the Use of Powerful Semantic Tools.............. 51 3.6 Results....................................... 53 3.6.1 Finding Heartbleed .......................... 53 3.6.2 Decomposing Our Method into Sub-methods.............. 53 3.6.3 Comparison of TRACY and Esh ...................... 54 3.6.4 Evaluating BinDiff ........................... 55 3.6.5 Pairwise Comparison........................... 55 3.6.6 Limitations................................ 57 4 Similarity of Binaries through re-Optimization 59 4.1 Overview..................................... 59 4.1.1 The Challenge in Establishing Binary Similarity............ 59 4.1.2 Representing Procedures in a Canonicalized & Normalized Form... 61 4.2 Algorithm..................................... 62 4.2.1 Representing Binary Procedures with Canonicalized Normalized Strands 62 4.2.2 Scalable Binary Similarity Search.................... 65 4.3 Evaluation..................................... 67 4.3.1 Creating a Corpus to Evaluate the Different Problem Vectors...... 67 4.3.2 Evaluation Setup............................. 69 Technion - Computer Science Department - Ph.D. Thesis PHD-2020-04 - 2020 4.3.3 GitZ as a Scalable Vulnerability Search Tool.............. 69 4.3.4 All vs. All Comparison.......................... 70 4.3.5 Comparing Components of the Solution................. 74 4.3.6 Understanding the Global Context Effect................ 74 4.3.7 Limitations................................ 75 5 FirmUp: Precise Static Detection of Common Vulnerabilities in Firmware 77 5.1 Overview..................................... 77 5.1.1 Pairwise Procedure Similarity: The syntactic gap............ 77 5.1.2 Efficient Partial Executable Matching.................. 79 5.2 Representing Firmware Executables....................... 80 5.3 Binary Similarity as a Back-and-Forth Game.................. 83 5.3.1 Game Motivation............................. 83 5.3.2 Game Algorithm............................. 84 5.3.3 Graph-based Approaches......................... 86 5.4 Evaluation..................................... 86 5.4.1 Corpus Creation............................. 86 5.4.2 Finding Undiscovered common vulnerabilities and exposures (CVEs) in Firmware................................ 87 5.4.3 Evaluating Precision Against Previous Work.............. 89 6 Similarity by Neural Name prediction 95 6.1 Overview..................................... 95 6.2 Background - Seq2seq Models.......................... 98 6.2.1 LSTM Encoder-Decoder Models..................... 99 6.2.2 Attention Models............................. 100 6.2.3 Transformers............................... 100 6.3 Representing Binary Procedures for Name Prediction.............. 101 6.4 Model....................................... 105 6.4.1 Call Site Encoder............................. 105 6.4.2 Encoding Call Site Sequences with LSTMs............... 105 6.4.3 Encoding Call Site Sequences with Transformers............ 106 6.4.4 Encoding Call Site Sequences with Graph Neural Networks...... 106 6.5 Evaluation..................................... 106 6.5.1 Experimental Setup............................ 106 6.5.2 Results.................................. 108 6.5.3 Ablation Study.............................. 109 6.5.4 Qualitative Evaluation.......................... 110 7 Related Work 113 8 Conclusion 117 Technion - Computer Science Department - Ph.D. Thesis PHD-2020-04 - 2020 Additional Examples of Procedure Name Predictions 119 Hebrew Abstracti Technion - Computer Science Department - Ph.D. Thesis PHD-2020-04 - 2020 List of Figures 1.1 A ROC plot ([Tow18]) showing how the area under (the) curve (AUC) is measured. 8 2.1 doCommand1 and its corresponding control flow graph (CFG) G1........ 14 2.2 doCommand2 and its corresponding CFG G2................... 15 2.3 A pair of 3-tracelets: (a) based on blocks (1,3,5) from Figure 2.1(b), and (b) on blocks (1’,3’,5’) from Figure 2.2(b). Note that jump instructions are omitted from the tracelet, and that empty lines were added to the original tracelet to align similar instructions............................. 16 2.4 A successful rewriting attempt with cost calculation............... 17 2.5 A full alignment and rewrite for the basic blocks 3 and 3’ of fig. 2.1(b) and fig. 2.2(b)...................................... 17 2.6 Simplified grammar for x86 assembly....................... 19 2.7 A’s members are dissimilar to B’s. We will
Recommended publications
  • Performance Assessment and Translation of Physiologically
    TOXICOLOGICAL SCIENCES, 158(1), 2017, 23–35 doi: 10.1093/toxsci/kfx070 Advance Access Publication Date: April 8, 2017 Forum FORUM Performance Assessment and Translation of Physiologically Based Pharmacokinetic Models From acslX to Berkeley Madonna, MATLAB, and R Language: Oxytetracycline and Gold Nanoparticles As Case Examples Zhoumeng Lin,*,1 Majid Jaberi-Douraki,*,† Chunla He,‡ Shiqiang Jin,*,§ Raymond S. H. Yang,¶,k Jeffrey W. Fisher,kj and Jim E. Riviere* *Institute of Computational Comparative Medicine (ICCM), Department of Anatomy and Physiology, College of Veterinary Medicine, Kansas State University, Manhattan, Kansas 66506; †Department of Mathematics, College of Arts and Sciences, Kansas State University, Manhattan, Kansas 66506; ‡Department of Epidemiology and Biostatistics, College of Public Health, The University of Georgia, Athens, Georgia 30602; §Department of Statistics, College of Arts and Sciences, Kansas State University, Manhattan, Kansas 66506; ¶Department of Environmental and Radiological Health Sciences, College of Veterinary Medicine and Biomedical Sciences, Colorado State University, Fort Collins, Colorado 80523; kRay Yang Consulting LLC, Fort Collins, Colorado 80526; and kjDivision of Biochemical Toxicology, National Center for Toxicological Research, U.S. Food and Drug Administration, Jefferson, Arkansas 72079 1To whom correspondence should be addressed at Institute of Computational Comparative Medicine (ICCM), Department of Anatomy and Physiology, College of Veterinary Medicine, Kansas State University, 1800 Denison Avenue, P200 Mosier Hall, Manhattan, KS 66506. Fax: (785) 532-4953. E-mail: [email protected]. ABSTRACT Many physiologically based pharmacokinetic (PBPK) models for environmental chemicals, drugs, and nanomaterials have been developed to aid risk and safety assessments using acslX. However, acslX has been rendered sunset since November 2015. Alternative modeling tools and tutorials are needed for future PBPK applications.
    [Show full text]
  • A High-Performance Serial/Parallel Monte Carlo Simulation Library for C, C++, Fortran
    ParaMonte: A high-performance serial/parallel Monte Carlo simulation library for C, C++, Fortran Amir Shahmoradi1, 2 and Fatemeh Bagheri1 DOI: 1 Department of Physics, The University of Texas, Arlington, TX 2 Data Science Program, The University of Texas, Arlington, TX Software • Review Summary • Repository • Archive ParaMonte (standing for Parallel Monte Carlo) is a serial and MPI/Coarray-parallelized library of Monte Carlo routines for sampling mathematical objective functions of arbitrary-dimensions, in Editor: particular, the posterior distributions of Bayesian models in data science, Machine Learning, and scientific inference. The ParaMonte library has been developed with the design goal of unifying Submitted: 29 September 2020 the automation, accessibility, high-performance, scalability, and reproducibility of Monte Published: Carlo simulations. The current implementation of the library includes ParaDRAM, a Parallel License Delyaed-Rejection Adaptive Metropolis Markov Chain Monte Carlo sampler, accessible from a Authors of papers retain wide range of programming languages including C, C++, Fortran, with a unified Application copyright and release the work Programming Interface and simulation environment across all supported programming languages. under a Creative Commons The ParaMonte library is MIT-licensed and is permanently located and maintained at https: Attribution 4.0 International //github.com/cdslaborg/paramonte. License (CC BY 4.0). Statement of need Monte Carlo simulation techniques, in particular, the Markov Chain Monte Carlo (MCMC) are among the most popular methods of quantifying uncertainty in scientific inference problems. Extensive work has been done over the past decades to develop Monte Carlo simulation programming environments that aim to partially or fully automate the problem of uncertainty quantification via Markov Chain Monte Carlo simulations.
    [Show full text]
  • Latexsample-Thesis
    INTEGRAL ESTIMATION IN QUANTUM PHYSICS by Jane Doe A dissertation submitted to the faculty of The University of Utah in partial fulfillment of the requirements for the degree of Doctor of Philosophy Department of Mathematics The University of Utah May 2016 Copyright c Jane Doe 2016 All Rights Reserved The University of Utah Graduate School STATEMENT OF DISSERTATION APPROVAL The dissertation of Jane Doe has been approved by the following supervisory committee members: Cornelius L´anczos , Chair(s) 17 Feb 2016 Date Approved Hans Bethe , Member 17 Feb 2016 Date Approved Niels Bohr , Member 17 Feb 2016 Date Approved Max Born , Member 17 Feb 2016 Date Approved Paul A. M. Dirac , Member 17 Feb 2016 Date Approved by Petrus Marcus Aurelius Featherstone-Hough , Chair/Dean of the Department/College/School of Mathematics and by Alice B. Toklas , Dean of The Graduate School. ABSTRACT Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah.
    [Show full text]
  • Integral Estimation in Quantum Physics
    INTEGRAL ESTIMATION IN QUANTUM PHYSICS by Jane Doe A dissertation submitted to the faculty of The University of Utah in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Mathematical Physics Department of Mathematics The University of Utah May 2016 Copyright c Jane Doe 2016 All Rights Reserved The University of Utah Graduate School STATEMENT OF DISSERTATION APPROVAL The dissertation of Jane Doe has been approved by the following supervisory committee members: Cornelius L´anczos , Chair(s) 17 Feb 2016 Date Approved Hans Bethe , Member 17 Feb 2016 Date Approved Niels Bohr , Member 17 Feb 2016 Date Approved Max Born , Member 17 Feb 2016 Date Approved Paul A. M. Dirac , Member 17 Feb 2016 Date Approved by Petrus Marcus Aurelius Featherstone-Hough , Chair/Dean of the Department/College/School of Mathematics and by Alice B. Toklas , Dean of The Graduate School. ABSTRACT Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah.
    [Show full text]
  • Econometrics with Octave
    Econometrics with Octave Dirk Eddelb¨uttel∗ Bank of Montreal, Toronto, Canada. [email protected] November 1999 Summary GNU Octave is an open-source implementation of a (mostly Matlab compatible) high-level language for numerical computations. This review briefly introduces Octave, discusses applications of Octave in an econometric context, and illustrates how to extend Octave with user-supplied C++ code. Several examples are provided. 1 Introduction Econometricians sweat linear algebra. Be it for linear or non-linear problems of estimation or infer- ence, matrix algebra is a natural way of expressing these problems on paper. However, when it comes to writing computer programs to either implement tried and tested econometric procedures, or to research and prototype new routines, programming languages such as C or Fortran are more of a bur- den than an aid. Having to enhance the language by supplying functions for even the most primitive operations adds extra programming effort, introduces new points of failure, and moves the level of abstraction further away from the elegant mathematical expressions. As Eddelb¨uttel(1996) argues, object-oriented programming provides `a step up' from Fortran or C by enabling the programmer to seamlessly add new data types such as matrices, along with operations on these new data types, to the language. But with Moore's Law still being validated by ever and ever faster processors, and, hence, ever increasing computational power, the prime reason for using compiled code, i.e. speed, becomes less relevant. Hence the growing popularity of interpreted programming languages, both, in general, as witnessed by the surge in popularity of the general-purpose programming languages Perl and Python and, in particular, for numerical applications with strong emphasis on matrix calculus where languages such as Gauss, Matlab, Ox, R and Splus, which were reviewed by Cribari-Neto and Jensen (1997), Cribari-Neto (1997) and Cribari-Neto and Zarkos (1999), have become popular.
    [Show full text]
  • Numerical Analysis, Modelling and Simulation
    Numerical Analysis, Modelling and Simulation Griffin Cook Numerical Analysis, Modelling and Simulation Numerical Analysis, Modelling and Simulation Edited by Griffin Cook Numerical Analysis, Modelling and Simulation Edited by Griffin Cook ISBN: 978-1-9789-1530-5 © 2018 Library Press Published by Library Press, 5 Penn Plaza, 19th Floor, New York, NY 10001, USA Cataloging-in-Publication Data Numerical analysis, modelling and simulation / edited by Griffin Cook. p. cm. Includes bibliographical references and index. ISBN 978-1-9789-1530-5 1. Numerical analysis. 2. Mathematical models. 3. Simulation methods. I. Cook, Griffin. QA297 .N86 2018 518--dc23 This book contains information obtained from authentic and highly regarded sources. All chapters are published with permission under the Creative Commons Attribution Share Alike License or equivalent. A wide variety of references are listed. Permissions and sources are indicated; for detailed attributions, please refer to the permissions page. Reasonable efforts have been made to publish reliable data and information, but the authors, editors and publisher cannot assume any responsibility for the validity of all materials or the consequences of their use. Copyright of this ebook is with Library Press, rights acquired from the original print publisher, Larsen and Keller Education. Trademark Notice: All trademarks used herein are the property of their respective owners. The use of any trademark in this text does not vest in the author or publisher any trademark ownership rights in such trademarks, nor does the use of such trademarks imply any affiliation with or endorsement of this book by such owners. The publisher’s policy is to use permanent paper from mills that operate a sustainable forestry policy.
    [Show full text]
  • Econometrics with Octave
    Econometrics with Octave Dirk Eddelb¨uttel∗ Bank of Montreal, Toronto, Canada. [email protected] November 1999 Summary GNU Octave is an open-source implementation of a (mostly Matlab compatible) high-level language for numerical computations. This review briefly introduces Octave, discusses applications of Octave in an econometric context, and illustrates how to extend Octave with user-supplied C++ code. Several examples are provided. 1 Introduction Econometricians sweat linear algebra. Be it for linear or non-linear problems of estimation or inference, matrix algebra is a natural way of expressing these problems on paper. However, when it comes to writing computer programs to either implement tried and tested econometric procedures, or to research and prototype new routines, programming languages such as C or Fortran are more of a burden than an aid. Having to enhance the language by supplying functions for even the most primitive operations such as transposing a matrix adds extra programming effort, introduces new points of failure, and moves the level of abstraction further away from the elegant mathematical expressions. As Eddelb¨uttel(1996) argues, object-oriented programming provides `a step up' from Fortran or C by enabling the programmer to seamlessly add new data types such as matrices, along with operations on these new data types, to the language. But with Moore's Law still being validated by ever and ever faster processors, and, hence, ever increasing computational power, the prime reason for using compiled code, i.e. speed, becomes less relevant. Hence the growing popularity of interpreted programming languages, both, in general, as witnessed by the surge in popularity of the general- purpose programming languages Perl and Python and, in particular, for numerical applications with strong emphasis on matrix calculus where languages such as Gauss, Matlab, Ox, R, Splus, which were reviewed by Cribari-Neto and Jensen (1997), Cribari-Neto (1997) and Cribari-Neto and Zarkos (1999), have become popular.
    [Show full text]
  • Unix Et Programmation Shell
    Unix et Programmation Shell Philippe Langevin d´epartment d'informatique UFR sciences et technique universit´edu sud Toulon Var Automne 2013 Philippe Langevin (imath/ustv) Unix et Programmation Shell Automne 2013 1 / 33 document brouillon en r´evision site du cours : http://langevin.univ-tln.fr/cours/UPS/upsh.html localisation du fichier : http://langevin.univ-tln.fr/cours/UPS/doc/intro.pdf Philippe Langevin (imath/ustv) Unix et Programmation Shell Automne 2013 2 / 33 derni`eresmodifications intro.tex 2013-06-23 10:07:23.697660496 +0200 macros.tex 2013-06-22 23:42:16.868263946 +0200 prologue.tex 2013-06-22 22:10:45.967471216 +0200 upsh.tex 2013-06-22 11:24:27.941744751 +0200 tools.tex 2013-06-22 11:24:27.940741957 +0200 term.tex 2013-06-22 11:24:27.934741399 +0200 syntaxe.tex 2013-06-22 11:24:27.931741678 +0200 proc.tex 2013-06-22 11:24:27.927741678 +0200 piped.tex 2013-06-22 11:24:27.922741399 +0200 perm.tex 2013-06-22 11:24:27.921741678 +0200 part.tex 2013-06-22 11:24:27.918742237 +0200 man.tex 2013-06-22 11:24:27.911741957 +0200 langage.tex 2013-06-23 10:04:58.364659987 +0200 file.tex 2013-06-22 11:24:27.896741119 +0200 dup.tex 2013-06-22 11:24:27.885741678 +0200 fic.tex 2013-06-22 11:24:27.885741678 +0200 bash.tex 2013-06-22 11:24:27.881741957 +0200 Philippe Langevin (imath/ustv) Unix et Programmation Shell Automne 2013 3 / 33 shell unix 1 - shell unix origine unices GNU/linux distribution shell unix GUI vs CLI exemple Philippe Langevin (imath/ustv) Unix et Programmation Shell Automne 2013 4 / 33 1969 Ken Thompson cr´eele syst`eme UNICS 1971 Dennis Ritchie cr´ee Le langage C utile pour le d´eveloppement d'unix.
    [Show full text]
  • Computadoras Electronicas
    COMPUTADORAS ELECTRONICAS Prólogo En la unidad 0 se hace una introducción, definiendo algunos conceptos previos. En la unidad 1 se muestran las diversas tecnologías en las que se fueron construyendo las computadoras. Luego se hace una breve revisión de los principios de circuitos digitales secuenciales y combinacionales, para comprender luego el Hardware principal de la computadora, como ser la Unidad Lógico Aritmética y la Unidad De Memoria. También se exponen las principales tecnologías de semiconductor con las que son construidas las computadoras actuales. Y se hace una descripción funcional de todas y cada una de las partes elementales de la computadora. Finalmente se describen los dos tipos básicos de arquitectura de computadoras ejemplificando cada uno. En la unidad 2 se hace un repaso de sistemas posicionales de numeración haciendo especial énfasis en el hexadecimal y binario. Además se desarrollan los diferentes códigos binarios con los que la maquina almacena y procesa la diversa información digital. En la unidad 3 se hace una integración de las unidades anteriores en la programación de un microcontrolador específico. Haciendo uso de un entorno de desarrollo integrado para tal fin. Utilizando el lenguaje Ensamblador ya que al ser de bajo nivel se puede tener una compresión mas profunda de lo que ocurre a nivel Hardware y poder relacionarlo con el Software. En la unidad 4 finalmente se expone el lenguaje C, luego de haber pasado por el Ensamblador se busca un mayor nivel de abstracción para poder resolver problemas de mayor complejidad. Este material se realizó con fines didácticos y se encuentra en proceso de desarrollo.
    [Show full text]
  • Diversity in the GNU Project As Measured by Mailing List Activity
    Just us boys : diversity in the GNU project as measured by mailing list activity. Camille Akmut October 4, 2019 Abstract Structure and patterns of a male-dominated culture. Statistics mea- sured over a period of one year (leading up to, including September 2019). 1 1 Introduction : GNU is not... In the following we measure diversity in the GNU project by using mailing list activity, as proxy1. Specifically, we chose info-gnu, where announcements relating to the GNU project are posted. All the major figures (e.g. Richard Stallman, Werner Koch, Alexandre Oliva...) of this free software project { arguably the most important of all { make regular appearances here and release information regarding their respective areas, or software. These encompass the well-known ones : GNU itself, GPG, Linux-Libre, GCC, GDB, coreutils, etc. | GNU is not for women { such would be the conclusion of anyone going through our statistics. And, if the mostly passive attitudes adopted so far have led to such results, surely they can no longer be considered enough. | At the turn of the last century, men formed peculiar circles, still, in and around universities. The more prestigious these places, the longer it took them to admit women inside their walls { and longer still to admit them as equals.2 In the novels of Waugh and Forster, where the old, male-exclusive university system still exists, undisturbed by the advances of times, the absence of women goes largely unnoticed : unproblematic. "This is just how things are", "They've always been this way" { so went their inner lives. Lise Meitner (who ended up finding a place within academia) or Emmy Noether had no place in these novels, no more than they had in the times they depict..
    [Show full text]
  • Python 101 Documentation Release 0.5
    Python 101 Documentation Release 0.5 Centrum Edukacji Obywatelskiej Sep 08, 2017 Contents 1 Pytania do tych materiałów 3 2 Pobieranie tej dokumentacji 5 3 Przygotowanie do szkolenia 7 i ii Python 101 Documentation, Release 0.5 Niniejsze materiały to dokumentacja do szkolenia z j˛ezykaPython realizowanego w ramach projektu Koduj z Klas ˛a prowadzonego przez Fundacj˛e Centrum Edukacji Obywatelskiej. Krótki link do tej strony: bit.ly/py-101 Contents 1 Python 101 Documentation, Release 0.5 2 Contents CHAPTER 1 Pytania do tych materiałów Zach˛ecamydo dyskusji i zadawania pytan´ na naszym forum 3 Python 101 Documentation, Release 0.5 4 Chapter 1. Pytania do tych materiałów CHAPTER 2 Pobieranie tej dokumentacji Materiały mozna˙ pobrac´ do czytania w wersji offline. Za pomoc ˛aponizszych˙ polecen´ pobierzemy dokumentacj˛ei rozpakujemy do folderu ~/Pulpit/python-101-html: ~$ wget -O python-101-html.zip http://koduj-z-klasa.github.io/python101/python-101- ,!html.zip ~$ unzip python-101-html.zip -d ~/Pulpit/ Materiały mozna˙ takze˙ pobrac,´ zmodyfikowac´ i przygotowac´ według instrukcji w repozytorium 5 Python 101 Documentation, Release 0.5 6 Chapter 2. Pobieranie tej dokumentacji CHAPTER 3 Przygotowanie do szkolenia Przed szkoleniem warto przygotowac´ swój komputer. System i oprogramowanie Nasze materiały zakładaj ˛awykorzystanie systemu Linux i j˛ezyka Python w wersji 2.7.x, który jest cz˛esci´ ˛awszystkich desktopowych dystrybucji. Oprócz interpretera j˛ezykapotrzebne s ˛abiblioteki wykorzystywane w bardziej zaawan- sowanych przykładach, takich jak gry, aplikacje internetowe czy obsługa baz danych za pomoc ˛asystemów ORM. Przygotowalismy´ równiez˙ specjaln ˛awersj˛esystemu Linux Live o nazwie LxPup KzkBox przeznaczon ˛ado instalacji na kluczu USB.
    [Show full text]
  • Unix Et Programmation Shell
    Unix et Programmation Shell Philippe Langevin d´epartment d'informatique UFR sciences et technique universit´edu sud Toulon Var Automne 2013 Philippe Langevin (imath/ustv) Unix et Programmation Shell Automne 2013 1 / 50 document brouillon en r´evision site du cours : http://langevin.univ-tln.fr/cours/UPS/upsh.html localisation du fichier : http://langevin.univ-tln.fr/cours/UPS/doc/shell.pdf Philippe Langevin (imath/ustv) Unix et Programmation Shell Automne 2013 2 / 50 derni`eresmodifications man.tex 2017−09−07 12:27:47.738251920 +0200 perm.tex 2016−09−30 09:41:54.766553521 +0200 file .tex 2016−09−30 09:19:02.810595120 +0200 bash.tex 2016−09−15 12:09:09.887948313 +0200 term.tex 2016−09−14 18:50:05.124091515 +0200 upsh.tex 2015−10−25 18:09:36.027434338 +0100 proc.tex 2015−10−20 22:09:35.450391618 +0200 shell.tex 2015−09−10 19:31:04.581529236 +0200 prologue.tex 2015−09−07 09:06:31.773157847 +0200 tools.tex 2015−07−11 09:04:38.890915266 +0200 pipe.tex 2014−10−02 19:10:22.426127326 +0200 direct.tex 2014−10−02 07:49:17.162784238 +0200 syntaxe.tex 2014−10−01 23:52:29.859357485 +0200 part.tex 2014−10−01 23:52:29.372363438 +0200 Philippe Langevin (imath/ustv) Unix et Programmation Shell Automne 2013 3 / 50 shell unix 1 - shell unix origine unices GNU/linux distribution shell unix GUI vs CLI C-production Philippe Langevin (imath/ustv) Unix et Programmation Shell Automne 2013 4 / 50 1969 Ken Thompson cr´eele syst`eme UNICS 1971 Dennis Ritchie cr´eele langage C [PSLC] prog.
    [Show full text]