Page 1 Proceedings of FREENIX Track: 2000 USENIX Annual

Total Page:16

File Type:pdf, Size:1020Kb

Page 1 Proceedings of FREENIX Track: 2000 USENIX Annual Proceedings of FREENIX Track: 2000 USENIX Annual Technical Conference San Diego, California, USA, June 18–23, 2000 U N I X F I L E S Y S T E M E X T E N S I O N S I N T H E G N O M E E N V I R O N M E N T Ettore Perazzoli THE ADVANCED COMPUTING SYSTEMS ASSOCIATION © 2000 by The USENIX Association All Rights Reserved For more information about the USENIX Association: Phone: 1 510 528 8649 FAX: 1 510 548 5738 Email: [email protected] WWW: http://www.usenix.org Rights to individual papers remain with the author or the author's employer. Permission is granted for noncommercial reproduction of the work for educational or research purposes. This copyright notice must be included in the reproduced paper. USENIX acknowledges all trademarks herein. Unix file system extensions in the GNOME environment Ettore Perazzoli Helix Code, Inc. [email protected], http://primates.helixcode.com/~ettore/ 1 Introduction files in a simple way. This paper explains how the GNOME 1.2 Representing special non-file [GNOME] project is extending the function- objects ality of the Unix file system for use in both the desktop and applications, by using a user- level library called the GNOME Virtual File Current Unix desktop environments lack a System. unified file system -like representation of the system resources. In the Windows operat- There are various reasons for extending the ing system, users can access all the system Unix file system and its API, as explained in resources from the \My Computer" folder the following sections. which acts as the root of the operating system shell's \namespace". This means that the control panel, the printer's spool, the trash- 1.1 Uniform file access can, the removeable devices and so on are all accessible through the same simple \point- and-click" mechanism within the same appli- In a modern desktop environment, users cation (Explorer.exe). Unlike the current have to deal with files that are available in Unix desktop environments, users don't need different ways. For example, files can be re- to deal with different applications for the var- motely available from a Web or FTP site. ious objects that are in their computer: they Sometimes they are stored locally, but are can just use the desktop shell. contained in tar or zip files. Sometimes they are stored in a compressed form. To implement similiar functionality on Unix, we would need to have an extensible Each of these cases usually requires the mechanism for providing the contents to these user to use a different tool; using different virtual folders and implementing operations tools means that users have to learn the user that can be performed on them. interface for each of them, and have to manu- ally make these tools talk to the applications, for example by using temporary files. 1.3 Asynchronous operation To avoid this problem, there should be a global file system namespace that all applica- On Unix, there is no API to let applica- tions can use to access these different kinds tions do fully asynchronous I/O in an easy of files. Users should not need to install and and portable way. use different programs to access files available through different methods, and all the appli- The reason why this is so important is that cations should be able to access this global GUI applications need to be responsive all the file system namespace. time. If a GUI application is blocked during a long synchronous file operation, the user So basically we need a consistent API that cannot stop the operation, nor perform any all the applications can use to access these other task with the same application. This is especially important for a file manager, 2.1 The GNU Midnight Comman- which needs to be able to perform multiple der I/O tasks in parallel without taking control away from the user. The GNU Midnight Commander is the file One of the ways of dealing with asyn- manager of choice for the GNOME project chronous I/O, i.e. using the select() sys- at the time of writing. It implements a user- tem call, does not work with all the opera- space Virtual File System library that solves tions; for example, there is no way to make the problem of accessing files within archive an asynchronous gethostbyname(), open() files or on remote Internet sites through an or stat() without complicated hacks. extended URI system which is explained in greater detail in section 4. Unix programmers could also use POSIX threads for performing asynchronous opera- Although the VFS library source code tions, but thread programming is very error- could be made independent of the GNU Mid- prone and can easily lead to problems. Writ- night Commander and thus its functionality ing a threaded application requires more pro- could be used by all the applications, it suf- gramming skills writing a non-threaded one, fers a few design problems: and in the free software world it is very im- portant to make things easy for programmers. It does not support asynchronous oper- • Moreover, POSIX threads are not fully ation: if you perform an operation on a portable across different platforms, as not all remote system, the Midnight Comman- implementations are reliable and efficient. der will be blocked until the operation is complete, and the user is not even able Finally, although a POSIX API for asyn- to stop the operation. chronous I/O exist, it is not implemented on The library is hidden under a Unix API all systems and does not work with all system • that is not very extensible. calls. For example, you cannot execute the open() nsystem call in an asynchronous fash- ion. Moreover, this API does not fit nicely in The latter problem is the most important the event-based model of GUI systems; con- one: as a Virtual File System has to deal sequently, it is not suitable for rapid develop- with kinds of files that can be quite different ment of GUI applications. from the standard Unix files, it needs some API extensions to support this functionality. What we need for asynchronous operation Moreover, it needs some API extensions to is an easy to use API that hides most of the deal with asynchronous operations. Unfortu- details from the programmer and integrates nately, it is not possible to add functionality nicely with the existing GUI toolkits. The to the API in a clean way without breaking API should give a better abstraction for doing Unix compat- ibility, so this makes the GNU async I/O, in the most simple way possible. Midnight Commander's Virtual File System unsuitable as a generic library for GNOME. 2 Existing User Space Virtual 2.2 KDE's kio File Systems The K Desktop Environment [KDE] pro- vides a completely asynchronous virtual file In the past, there have been other attempts system library called kio. to implement extensions to the Unix file sys- tem in the free software world, none of which kio uses the same extended URI syntax completely fulfilled the needs of the GNOME that the GNU Midnight Commander uses; project. but unlike the Midnight Commander, all the file operations are performed through exter- The implementation should be portable, nal helper processes (kioslaves) in an asyn- • so that making GNOME VFS a core chronous fashion. The helper process commu- component of GNOME would not re- nicates with the master process using Unix strict the availabilty of GNOME on var- domain sockets and custom protocols; the ious Unix platforms. library performs encoding/decoding of such Using GNOME VFS should not make protocols automatically and notifies the pro- • grammer using the Qt [Qt] signal system. the programmer's life harder. The asynchronous API should be simple Although this system is closer to the re- • to use, and be nicely integrated with the quirements that we have listed at the begin- standard GLIB main loop that is central ning of this paper, it is still suboptimal, for to GNOME applications. (The GLIB the following reasons: main loop is the main event-handling loop in GTK+ and GNOME applica- tions. The X main loop is nicely wrapped Operations are very simple: the API by the GLIB loop.) • allows the programmer to down- load/upload a whole file and perform Adding new access methods should be some simple file operations, but it does • possible, and programmers should not not provide all the versatility of the need to care about too many of the Unix API. details, such as asynchronous behavior. (By \access method", we mean the im- Each file operation requires an external plementation of a protocol, of a file for- • process: kio does not take advantage of mat, or any other way to retrieve, create threads. or modify a GNOME VFS file. For ex- ample, there should be an HTTP access There is no API to perform operations in method, a ZIP file access method and so • a synchronous fashion, so the program- on.) mer needs to spawn a process, request an operation and then wait for the result from it. 4 Extended URIs 3 The GNOME Virtual File The GNOME VFS uses an extension of the System traditional web Uniform Resource Identifiers (URIs) to access files, instead of the standard Unix file paths. This enables us to access dif- The solution we gave to these issues in the ferent kinds of resources in a way that is both GNOME project is in the form of a new li- generic and easy to understand for users.
Recommended publications
  • Third Party Terms for Modular Messaging 3.0 (July 2005)
    Third Party Terms for Modular Messaging 3.0 (July 2005) Certain portions of the product ("Open Source Components") are licensed under open source license agreements that require Avaya to make the source code for such Open Source Components available in source code format to its licensees, or that require Avaya to disclose the license terms for such Open Source Components. If you are a licensee of this Product, and wish to receive information on how to access the source code for such Open Source Components, or the details of such licenses, you may contact Avaya at (408) 577-7666 for further information. The Open Source Components are provided “AS IS”. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR THE CONTRIBUTORS OF THE OPEN SOURCE COMPONENTS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE PRODUCT, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Avaya provides a limited warranty on the Product that incorporates the Open Source Components. Refer to your customer sales agreement to establish the terms of the limited warranty. In addition, Avaya’s standard warranty language as well as information regarding support for the Product, while under warranty, is available through the following web site: http://www.avaya.com/support.
    [Show full text]
  • A Brief History of GNOME
    A Brief History of GNOME Jonathan Blandford <[email protected]> July 29, 2017 MANCHESTER, UK 2 A Brief History of GNOME 2 Setting the Stage 1984 - 1997 A Brief History of GNOME 3 Setting the stage ● 1984 — X Windows created at MIT ● ● 1985 — GNU Manifesto Early graphics system for ● 1991 — GNU General Public License v2.0 Unix systems ● 1991 — Initial Linux release ● Created by MIT ● 1991 — Era of big projects ● Focused on mechanism, ● 1993 — Distributions appear not policy ● 1995 — Windows 95 released ● Holy Moly! X11 is almost ● 1995 — The GIMP released 35 years old ● 1996 — KDE Announced A Brief History of GNOME 4 twm circa 1995 ● Network Transparency ● Window Managers ● Netscape Navigator ● Toolkits (aw, motif) ● Simple apps ● Virtual Desktops / Workspaces A Brief History of GNOME 5 Setting the stage ● 1984 — X Windows created at MIT ● 1985 — GNU Manifesto ● Founded by Richard Stallman ● ● 1991 — GNU General Public License v2.0 Our fundamental Freedoms: ○ Freedom to run ● 1991 — Initial Linux release ○ Freedom to study ● 1991 — Era of big projects ○ Freedom to redistribute ○ Freedom to modify and ● 1993 — Distributions appear improve ● 1995 — Windows 95 released ● Also, a set of compilers, ● 1995 — The GIMP released userspace tools, editors, etc. ● 1996 — KDE Announced This was an overtly political movement and act A Brief History of GNOME 6 Setting the stage ● 1984 — X Windows created at MIT “The licenses for most software are ● 1985 — GNU Manifesto designed to take away your freedom to ● 1991 — GNU General Public License share and change it. By contrast, the v2.0 GNU General Public License is intended to guarantee your freedom to share and ● 1991 — Initial Linux release change free software--to make sure the ● 1991 — Era of big projects software is free for all its users.
    [Show full text]
  • About This Particular Macintosh 6.03
    Cover ATPM About This Particular Macintosh™ 6.03: About the personal computing experience™ Volume 6, Number 3 March 1, 2000 Sign up for free subscriptions at: http://www.atpm.com/subscribe or send email to: [email protected] ATPM 6.03 ←→1 Cover Cover Art Copyright © 2000 David Knopfler david@knopfler.com http://www.knopfler.com We need new cover art every month! Write to us! Contributors Eric Blair Daniel Chvatik Paul Fatula Scott Feldstein Matthew Glidden Edward Goss Lisa Haller Tom Iov ino Nick Kratz Robert Paul Leitao William Lovett Colin Mansfield Jamie McCornack Grant Osborne David Ozab David Spencer Michael Tsai Christopher Turner Macintosh users like you Please write for ATPM! Check out the FAQ. Editorial Staff Publisher/Editor-in-Chief - Michael Tsai Managing Editor - Daniel Chvatik Associate Editor/Reviews - Paul Fatula ATPM 6.03 ←→2 Cover Associate Editor/Shareware Reviews - William Lovett Copy Editors - Raena Armitage Johann Campbell Paul Fatula Brooke Smith Adam Zaner Publicity Manager - Christopher Turner Contributing Editor/Welcome - Robert Paul Leitao Contributing Editors/Opinion - Tom Iovino Scott Feldstein Contributing Editors/Reviews - Eric Blair Evan Trent Vac a nt Contributing Editor/How To’s & Reviews - Jamie McCornack Contributing Editor/Trivia - Edward Goss Contibuting Editor/Music - David Ozab Contributing Editor/Networking - Matthew Glidden Contributing Editor/Web - David Spencer Help Jedi - Christopher Turner Hollywood Guy - Mike Shields Webmaster - Michael Tsai Assistant Webmaster - A. Lee Bennett Interviews
    [Show full text]
  • GNOME Annual Report 2008
    1 Table of Contents Foreword Letter from the Executive Director 4 A year in review GNOME in 2008 8 GNOME Mobile 16 Events and Community initiatives Interview with Willie Walker 20 GNOME around the world 24 GNOME Foundation Foundation Finances 30 List of all 2008 donors 33 2 Letter from Stormy Peters Stormy Peters is the GNOME Foundation Executive Director and has great experience in the industry and with the open source culture. Hello GNOME Lovers! seek them out and to invite them to come play. (Actually, I felt welcome from day -1, GNOME's goal is to bring free and open as I met a bunch of guys on the plane who source computing to everyone regardless of turned out to also be going to GUADEC. I ability. I consider myself extremely lucky to spent my first day in Copenhagen walking have joined the project as executive director around with some guys from Red Hat and of the GNOME Foundation. It's a pleasure Eazel trying to stay awake through jetlag. I and a privilege to work with thousands of pe- remember Havoc Pennington saying we just ople dedicated to making free had to stay awake until dinner software available for everyone The spirit and time.) on desktops and mobile plat- dedication of the forms. I don't think it's an GNOME community to One of the most common exaggeration to say that their goals of creating questions I get asked is GNOME technology is chan- a free and open source why did you take this job? ging the world for many from software ..
    [Show full text]
  • Replacing C Library Code with Rust
    Replacing C library code with Rust: What I learned with librsvg Federico Mena Quintero [email protected] GUADEC 2017 Manchester, UK What uses librsvg? GNOME platform and desktop: gtk+ indirectly through gdk-pixbuf thumbnailer via gdk-pixbuf eog gstreamer-plugins-bad What uses librsvg? Fine applications: gnome-games (gnome-chess, five-or-more, etc.) gimp gcompris claws-mail darktable What uses librsvg? Desktop environments mate-panel Evas / Enlightenment emacs-x11 What uses librsvg? Things you may not expect ImageMagick Wikipedia ← they have been awesome Long History ● First commit, Eazel, 2001 ● Experiment instead of building a DOM, stream in SVG by using libbxml2’s SAX parser ● Renderer used libart ● Gill → Sodipodi → Inkscape ● Librsvg was being written while the SVG spec was being written ● Ported to Cairo eventually – I’ll remove the last libart-ism any day now Federico takes over ● Librsvg was mostly unmaintained in 2015 ● Took over maintenance in February 2015 ● Started the Rust port in October 2016 Pain points: librsvg’s CVEs ● CVE-2011-3146 - invalid cast of RsvgNode type, crash ● CVE-2015-7557 - out-of-bounds heap read in list-of-points ● CVE-2015-7558 - Infinite loop / stack overflow from cyclic element references (thanks to Benjamin Otte for the epic fix) ● CVE-2016-4348 - NOT OUR PROBLEM - integer overflow when writing PNGs in Cairo (rowstride computation) ● CVE-2017-11464 - Division by zero in Gaussian blur code (my bad, sorry) ● Many non-CVEs found through fuzz testing and random SVGs on the net ● https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=librsvg
    [Show full text]
  • Which Linux Distribution? Difficulty in Choosing?
    Which Linux distribution? Difficulty in choosing? Ver 190916 www.ubuntutor.com Twitter @LaoYa14 Contents Page Contents 3 That's enough 4 At first 5 At first little about Linux world 6 Quick start guide for choosing the right distro for beginners 7 Basic information 8 ”Linux tree” 9 Basic information 10 Questions on the web site 11 Distros 12 App store 13 Ubuntu 16.04 and 18.04 14 Ubuntu MATE 15 Lubuntu 16 Ubuntu Budgie 17 Kubuntu 18 Xubuntu 19 Linux Mint 20 Zorin 21 MX Linux 22 Pepermint 23 Deepin 24 Arch Linux 25 Manjaro 26 Ubuntu Kylin 27 Ubuntu Studio 28 Kali Linux 29 Edubuntu 30 Desktop environments for Linux 31 File manager NEMO 32 File manager NAUTILUS 33 Installing Ubuntu live USB (test drive) That's enough When laptop is old and there is Windows XP, what to do? You can install Ubuntu Mate on your old laptop and keep at the same time Windows XP too, if you like XP. Or you can buy a tiny new laptop about 200-300 €/$ and change Windows 10 to Ubuntu. It works! I have made both about three years ago, and I haven't used Windows since then. My own laptop is cheap HP Stream 4 MB/32 GB. When I was studying Ubuntu, I noticed that simple beginner's guide books were not available. So, I did a guide book. I also created a website and named it www.ubuntutor.com. It currently includes Ubuntu 16.04 and 18.04 tutorials. And this guide is third one.
    [Show full text]
  • Tools for the Detection and Analysis of Potentially Unwanted Programs
    UNIVERSIDAD POLITECNICA´ DE MADRID ESCUELA TECNICA´ SUPERIOR DE INGENIEROS INFORMATICOS´ Tools for the Detection and Analysis of Potentially Unwanted Programs PH.D THESIS Richard Rivera Guevara Copyright© 2018 by Richard Rivera Guevara DEPARTAMENTAMENTO DE LENGUAJES Y SISTEMAS INFORMATICOS´ E INGENIERIA DE SOFTWARE ESCUELA TECNICA´ SUPERIOR DE INGENIEROS INFORMATICOS´ Tools for the Detection and Analysis of Potentially Unwanted Programs SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF: Doctor of Philosophy in Software, Systems and Computing Author: Richard Rivera Guevara Advisor Dr. Juan Caballero 2018 Abstract In this thesis we study potentially unwanted programs (PUP), a category of undesirable software that, while not outright malicious, contains behaviors that may alter the secu- rity state or the privacy of the system on which they are installed. PUP often comes bundled with freeware, i.e., proprietary software that can be used free of charge. A popular vector for distributing freeware are download portals, i.e., websites that in- dex, categorize, and host programs. Download portals can be abused to distribute PUP. Freeware is often distributed as an installer, i.e., an auxiliary program in charge of per- forming all installation steps for the target program. During installation, besides the target program desired by the user, the installer may install PUP as well. PUP may be difficult to uninstall and may persist installed in the system after the user tries to uninstall it. Current malware analysis systems are not able to detect and analyze char- acteristic behaviors of PUP. For example, current malware analysis systems operate on a single program execution, while detecting incomplete PUP uninstallations requires analyzing together two program executions: the installation and the uninstallation.
    [Show full text]
  • GNOME, a Case of Open Source Global Software Development
    GNOME, a case of open source global software development Daniel M. German Department of Computer Science University of Victoria [email protected] Abstract an “office suite” [6]. The GNOME Project was founded by Miguel de Icaza in 1996 as a loosely coupled group of de- The GNOME Project is an open source project which velopers, scattered all over the world. The project currently main goal is to create a GUI desktop for Unix systems, and involves around five hundred developers. The first version encompases close to two million lines of code. It is com- (0.10) was posted in 1997. Version 1.0 was released in posed by a group of more than 500 different contributors, March 1999, a point in which it was integrated into Red Hat distributed across the world Some companies employ sev- Linux as its default desktop. Version 2.0 is the latest stable eral of these contributors with the hope of accelerating the version, released in 2002, and development of Version 2.2 development of the project, but many other contributors are is on its way. GNOME is composed of a large collection of volunteers. The project is divided into several dozen mod- programs and libraries, comprising almost two million lines ules, ranging from libraries (such as GUI, CORBA, XML, of code [2, 3]. etc) to core applications (such as email client, graphical editor, word processor, spreadsheet, etc). This paper de- 2. Infrastructure scribes the organization and management of the project and describes the infrastructure needed by a contributor, how One of the main requirements for distributed develop- contributors work as independently together, but still with a ment is agreement on a common toolkit for software devel- common goal.
    [Show full text]
  • DA-683 Linux User's Manual
    DA-683 Linux User’s Manual First Edition, January 2011 www.moxa.com/product © 2011 Moxa Inc. All rights reserved. Reproduction without permission is prohibited. DA-683 Linux User’s Manual The software described in this manual is furnished under a license agreement and may be used only in accordance with the terms of that agreement. Copyright Notice Copyright ©2011 Moxa Inc. All rights reserved. Reproduction without permission is prohibited. Trademarks The MOXA logo is a registered trademark of Moxa Inc. All other trademarks or registered marks in this manual belong to their respective manufacturers. Disclaimer Information in this document is subject to change without notice and does not represent a commitment on the part of Moxa. Moxa provides this document as is, without warranty of any kind, either expressed or implied, including, but not limited to, its particular purpose. Moxa reserves the right to make improvements and/or changes to this manual, or to the products and/or the programs described in this manual, at any time. Information provided in this manual is intended to be accurate and reliable. However, Moxa assumes no responsibility for its use, or for any infringements on the rights of third parties that may result from its use. This product might include unintentional technical or typographical errors. Changes are periodically made to the information herein to correct such errors, and these changes are incorporated into new editions of the publication. Technical Support Contact Information www.moxa.com/support Moxa Americas Moxa China (Shanghai office) Toll-free: 1-888-669-2872 Toll-free: 800-820-5036 Tel: +1-714-528-6777 Tel: +86-21-5258-9955 Fax: +1-714-528-6778 Fax: +86-21-5258-5505 Moxa Europe Moxa Asia-Pacific Tel: +49-89-3 70 03 99-0 Tel: +886-2-8919-1230 Fax: +49-89-3 70 03 99-99 Fax: +886-2-8919-1231 Table of Contents 1.
    [Show full text]
  • Novell SUSE Linux Package Description and Support Level Information for Contracted Customers and Partners
    Novell SUSE Linux Package Description and Support Level Information for Contracted Customers and Partners Definitions and Support Level Descriptions ACC: Additional Customer Contract necessary L1: Installation and problem determination, which means technical support Configuration designed to provide compatibility information, installation assistance, usage support, on-going maintenance and basic troubleshooting. Level 1 Support is not intended to correct product defect errors. L2: Reproduction of problem isolation, which means technical support designed to Potential Issues duplicate customer problems, isolate problem area and provide resolution for problems not resolved by Level 1 Support. L3: Code Debugging and problem resolution, which means technical support designed Patch Provision to resolve complex problems by engaging engineering in resolution of product defects which have been identified by Level 2 Support. Servicelevel Package Short Name Package Description SLES10 SP3 ia64 3ddiag A Tool to Verify the 3D Configuration L3 844-ksc-pcf Korean 8x4x4 Johab Fonts L2 This software changes the resolution of an available vbios 915resolution L2 mode. a2ps Converts ASCII Text into PostScript L2 aaa_base SUSE Linux Base Package L3 aaa_skel Skeleton for Default Users L3 aalib An ASCII Art Library L2 aalib-devel Development Package for AAlib L2 aalib-x86 An ASCII Art Library L2 acct User-Specific Process Accounting L3 acl Commands for Manipulating POSIX Access Control Lists L3 acpid Executes Actions at ACPI Events L3 adaptec-firmware Firmware files for Adaptec SAS Cards (AIC94xx Series) L3 agfa-fonts Professional TrueType Fonts L2 aide Advanced Intrusion Detection Environment L2 alsa Advanced Linux Sound Architecture L3 alsa-devel Include Files and Libraries mandatory for Development.
    [Show full text]
  • The Evolution of the GNOME Project
    The evolution of the GNOME Project Daniel M. German Department of Computer Science University of Victoria [email protected] Presented at the 2nd Workshop on Open Source Software En- The GNU Network Object Model Environment (GNOME) Project gineering, during ICSE 2002. May 2002. (www.gnome.org) is an attempt to create a free (as defined by the General Public License) desktop environment for Unix systems. It is composed of three main components: an easy- Since I published this paper, I have been mining the CVS repos- to-use GUI environment, a collection of tools, libraries, and itory of the GNOME project. The preliminary observation of components to develop this environment, and an “office suite” this data might suggest some inaccuracies in section 3.1 with [4] respect to the nature of the contributions of paid employees to the GNOME project (like stating that Helix has been having an The GNOME Project was founded by Miguel de Icaza in 1996 important contribution to gnumeric). A follow-up paper will as a loosely coupled group of developers, scattered all over discuss this analysis. the world. Like many othe open source projects, they use the World-Wide Web and email for intercommunication, the GNU tool suite (gcc, make, emacs, gdb, for software development), ABSTRACT CVS (for software configuration management), and bugzilla The GNOME Project is an attempt to create a GUI desktop (for bug tracking) as their main development platform. The for Unix systems. Originally started by a handful of volun- project currently involves around five hundred developers. In teers in 1996, GNOME has become the desktop of choice for 1997 the first tarball is posted (version 0.10).
    [Show full text]
  • Using Software Archaeology to Measure Knowledge Loss in Software Projects Due to Developer Turnover ∗
    Proceedings of the 42nd Hawaii International Conference on System Sciences - 2009 Using Software Archaeology To Measure Knowledge Loss in Software Projects Due To Developer Turnover ∗ Daniel Izquierdo-Cortazar, Gregorio Robles, Felipe Ortega and Jesus M. Gonzalez-Barahona GSyC/LibreSoft Universidad Rey Juan Carlos (Madrid, Spain) dizquierdo, grex, jfelipe, jgb @gsyc.escet.urjc.es { } Abstract The lifespan of a software system can range from sev- eral years to decades. In such scenarios, the develop- Developer turnover can result in a major problem ment team in charge of the software may suffer from when developing software. When senior developers turnover: old developers leave while new developers abandon a software project, they leave a knowledge gap join the project. With the abandonment of old, senior that has to be managed. In addition, new (junior) devel- developers, projects lose human resources experienced opers require some time in order to achieve the desired both with the details of the software system and with the level of productivity. In this paper, we present a method- organizational and cultural circumstances of the project. ology to measure the effect of knowledge loss due to de- New developers will need some time to become famil- veloper turnover in software projects. For a given soft- iar with both issues. In this regard, the time for volun- ware project, we measure the quantity of code that has teers to become core contributors to FLOSS 1 projects been authored by developers that do not belong to the has been measured to be 30 months in mean, since their current development team, which we define as orphaned first contribution [11].
    [Show full text]