Master-Thesis 12.07.2014 Prof

Total Page:16

File Type:pdf, Size:1020Kb

Master-Thesis 12.07.2014 Prof Master-Thesis Name: Yves Fischer Thema: Monitoring and Diagnostics for C/C++ Real-Time Applications Fakultät für Informatik und Wirtschaftsinformatik Arbeitsplatz: CERN, Genf Referent: Prof. Dr. Fuchß Korreferent: Prof. Dr. Hoffmann Abgabetermin: 12.07.2014 CERN-THESIS-2014-086 21/07/2014 Karlsruhe, 13.01.2014 Der Vorsitzende des Prüfungsausschusses Prof. Dr. Ditzinger Eidesstattliche Erklärung Statutory Declaration Ich versichere alle verwendeten Quellen angege- I hereby declare that no other person's work has ben zu haben. been used without due reference. The german ver- Alle übernommenen Textzeilen, ganze Textpassag- sion of this statutory is authoritative. en, Tabellen oder Bilder sind mit Quelle angege- ben. Dies gilt unabhängig davon ob die Quelle ein Buch oder eine Veröffentlichung im Internet ist. Auch eine direkte Übersetzung eines fremdspra- chigen Dokuments ist mit Quellenangabe verse- hen. Die deutsche Version dieser Erklärung ist bindend. Prévessin, 12th of July 2014 Yves Johannes Wolfgang Fischer i Acknowledgements First I would like to thank my supervisor at CERN, Felix Ehm, for his support and helpful guidance. His advice, expertise and understanding added considerably to my graduate experience. I would like to express my gratitude to professor Thomas Fuchß, as he provided me with many great points to include and gave me advice whenever it was required. I would also like to thank Stephen Page, who proofread my text and provided me with helpful comments and suggestions. ii Abstract Knowledge about the internal state of computational processes is essential for problem diagnostics as well as for constant monitoring and pre-failure recognition. The CMX li- brary provides monitoring capabilities similiar to the Java Management Extensions (JMX) for C and C++ applications. This thesis provides a detailed analysis of the requirements for monitoring and diagnos- tics of the C/C++ processes at CERN. The developed CMX library enables real-time C/C++ processes to expose values with- out harming their normal execution. CMX is portable and can be integrated in different monitoring architectures. Contents 1 Introduction 1 1.1 Motivation .................................... 1 1.2 Overview of CERN ............................... 2 1.3 Structure of this Thesis ............................. 4 2 Monitoring of C/C++ Systems 5 2.1 Technical Environment ............................. 6 2.2 Motivation .................................... 7 2.3 Related Work .................................. 8 3 Requirements 10 3.1 Terms ....................................... 10 3.2 Functional Requirements ............................ 12 3.3 Technical Requirements ............................. 13 4 Existing Technologies and Solutions 16 4.1 Monitoring Systems ............................... 16 4.2 Logging Systems ................................. 19 4.3 Interprocess Communications ......................... 21 4.3.1 Possibilities ............................... 22 4.3.2 Evaluation ................................ 24 4.4 Existing Software Solutions ........................... 25 4.5 Conclusions ................................... 27 5 Design of CMX Protocol and Data Structures 28 5.1 Design of CMX Data Structures ........................ 28 5.2 Shared Memory ................................. 30 5.3 Design of CMX Protocol ............................ 34 5.3.1 Real-Time Constraints ......................... 35 5.3.2 Concurrent Access to Shared Memory ................ 36 5.3.3 Verification ............................... 43 5.4 Comparison with Similar Algorithms ..................... 45 iv 5.5 Verification with Models ............................ 48 5.5.1 Simple Example of a Promela Model ................. 48 5.5.2 Model of Two Writers ......................... 49 5.5.3 Model of Concurrent Reader/Writer ................. 50 5.6 Conclusions ................................... 52 6 Implementation of CMX 53 6.1 Platform and Toolchain ............................. 53 6.1.1 Compiler ................................ 53 6.1.2 Atomicity of Operations ........................ 55 6.1.3 Processor Memory Consistency .................... 58 6.1.4 Processor Cache Coherency ...................... 64 6.1.5 Choosing a Suitable Timesource ................... 64 6.2 Implementation Overview ........................... 66 6.2.1 The Implementation in C ....................... 66 6.2.2 The C++ API .............................. 66 6.2.3 Independent Usage of CMX ...................... 70 6.2.4 Real-Time Compatibility ........................ 70 6.2.5 Automated Testing ........................... 73 6.2.6 Performance Analysis ......................... 75 6.2.7 Possible Extensions ........................... 77 6.3 Conclusions ................................... 78 7 Integration in CERN Infrastructure 79 7.1 A Remote Agent for CMX ............................ 79 7.1.1 Diagnostic Access in the DIAMON GUI ............... 80 7.1.2 Monitoring of CMX Enabled Applications in DIAMON ....... 80 7.2 Interaction of CMX with Build Tools ..................... 82 7.3 Conclusions ................................... 85 8 Summary 86 Literature 87 Glossary 91 List of Definitions and Requirements 92 List of Figures 93 List of Tables 95 v 1 Introduction High system availability is essential for successfully operating a large industrial facility. For this reason it is important to identify sources of errors and potential problems as early as possible. In the field of computing, system and application monitoring is applied to fulfill this task. This work describes the implementation of application monitoring and diagnostic tools that are suitable for real-time applications, such as the ones which are used in CERN's accelerator control system. 1.1 Motivation Large installations like particle accelerators or industrial sites are expensive in construc- tion and operation. The cost for building the LHC accelerator was about 6 billion CHF. The experiments which depend on the correct functioning of the accelerator are funded independently. The material costs for the ATLAS experiment were 540 million CHF [1, p. 17]. The only time frame in which this investment pays back is when everything is working correctly and, in case of the LHC, collisions can be delivered to the experiments. The condition of a proper operating accelerator depends on the reliability of many smaller or bigger hard- and software components. The BE-CO group, where this work was carried out, is responsible for a large part of the accelerator controls software. Naturally our primary goal is to provide reliable, fault- tolerant software and - in case of unforeseen events - response times as short as possible. Monitoring plays a critical role in early recognition of possible error conditions and fast identification of problem sources. The monitoring system constantly watches about 2,000 machines and applies many rules to detect problems. 1 1 Introduction Monitoring is always limited to what developers consider worth being monitored. Hence, enabling developers to expose metrics easily from within their application in a suitable and standardized way is a key factor for success. We failed to find any existing solution in this area for C/C++ applications that fulfills our requirements to a large extent and is at the same time compatible with the existing mon- itoring and diagnostic system. This was the initial reason to develop a new monitoring and diagnostics library for C/C++, called CMX, at CERN. 1.2 Overview of CERN This project is carried out at CERN in Geneva, where physicists and engineers are re- searching the fundamental structure of the universe. Founded in 1954, the CERN labora- tory is one of Europe's first joint ventures and now has 21 member states. Figure 1.1: CERN Accelerator Complex [2] Today CERN hosts many particle physic experiments. The biggest and most well known is the particle accelerator LHC and the detectors ATLAS and CMS, most known for the discovery of the Higgs-Boson. A bunch of particles in the LHC, that collide in one of the detectors, have gone through a cascade of increasingly powerful accelerators (Fig. 1.1) to reach the speed of 0.999 999 991 2 1 Introduction (a) “The observed probability (local p-value) that (b) “Event recorded with the CMS detector in 2012 the background-only hypothesis would yield the at a proton-proton centre-of-mass energy of 8 same or more events as are seen in the CMS data, TeV. The event shows characteristics expected as a function of the SM Higgs boson mass for from the decay of the SM Higgs boson to a pair of the five channels considered. The solid black line photons (dashed yellow lines and green towers). shows the combined local p-value for all chan- The event could also be due to known standard nels.” model background processes” Figure 1.2: Pictures related to the discovery of the Higgs Boson, CMS Collaboration [3] times the speed of light. Moreover, at the time of collision, every proton has reached a top energy of 3:5 TeV. Compared to energy emissions in the real-world, these energies are still low. However, in the LHC they are so heavily concentrated in space like nowhere else. A complete beam, in the LHC two beams circulating in opposite directions, contains: 2 · 3:5 TeV · (1:1 · 1011 particles) · (2808 Bunches) ' 350 MJ, which is about as energetic as a 400t train, such as the French TGV, travelling at 150 km/h [1]. Colliding inside one of the four detectors, the protons or lead-ions produce sub-atomic particles. Particle detectors use different devices to identify these
Recommended publications
  • Latest Release Rather Than Working on the Develop Branch
    WarpX Documentation Release 21.09 WarpX collaboration Sep 28, 2021 CONTENTS 1 Contact us 3 1.1 Code of Conduct.............................................3 1.2 Acknowledge WarpX...........................................4 2 Installation 7 2.1 Users...................................................7 2.2 Developers................................................9 2.3 HPC................................................... 18 3 Usage 47 3.1 Run WarpX................................................ 47 3.2 Input Parameters............................................. 48 3.3 Python (PICMI)............................................. 84 3.4 Examples................................................. 85 3.5 In-Depth: PWFA............................................. 87 3.6 Workflows................................................ 91 4 Data Analysis 103 4.1 Output formats.............................................. 103 4.2 yt-project................................................. 120 4.3 openPMD-viewer............................................. 126 4.4 openPMD-api.............................................. 127 4.5 3D Visualization: ParaView....................................... 127 4.6 3D Visualization: VisIt.......................................... 127 4.7 VisualPIC................................................. 129 4.8 PICViewer................................................ 129 4.9 Back-Transformed Diagnostics...................................... 131 4.10 Reduced diagnostics........................................... 132 5 Theory
    [Show full text]
  • Validated Products List, 1995 No. 3: Programming Languages, Database
    NISTIR 5693 (Supersedes NISTIR 5629) VALIDATED PRODUCTS LIST Volume 1 1995 No. 3 Programming Languages Database Language SQL Graphics POSIX Computer Security Judy B. Kailey Product Data - IGES Editor U.S. DEPARTMENT OF COMMERCE Technology Administration National Institute of Standards and Technology Computer Systems Laboratory Software Standards Validation Group Gaithersburg, MD 20899 July 1995 QC 100 NIST .056 NO. 5693 1995 NISTIR 5693 (Supersedes NISTIR 5629) VALIDATED PRODUCTS LIST Volume 1 1995 No. 3 Programming Languages Database Language SQL Graphics POSIX Computer Security Judy B. Kailey Product Data - IGES Editor U.S. DEPARTMENT OF COMMERCE Technology Administration National Institute of Standards and Technology Computer Systems Laboratory Software Standards Validation Group Gaithersburg, MD 20899 July 1995 (Supersedes April 1995 issue) U.S. DEPARTMENT OF COMMERCE Ronald H. Brown, Secretary TECHNOLOGY ADMINISTRATION Mary L. Good, Under Secretary for Technology NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY Arati Prabhakar, Director FOREWORD The Validated Products List (VPL) identifies information technology products that have been tested for conformance to Federal Information Processing Standards (FIPS) in accordance with Computer Systems Laboratory (CSL) conformance testing procedures, and have a current validation certificate or registered test report. The VPL also contains information about the organizations, test methods and procedures that support the validation programs for the FIPS identified in this document. The VPL includes computer language processors for programming languages COBOL, Fortran, Ada, Pascal, C, M[UMPS], and database language SQL; computer graphic implementations for GKS, COM, PHIGS, and Raster Graphics; operating system implementations for POSIX; Open Systems Interconnection implementations; and computer security implementations for DES, MAC and Key Management.
    [Show full text]
  • Open Babel Documentation Release 2.3.1
    Open Babel Documentation Release 2.3.1 Geoffrey R Hutchison Chris Morley Craig James Chris Swain Hans De Winter Tim Vandermeersch Noel M O’Boyle (Ed.) December 05, 2011 Contents 1 Introduction 3 1.1 Goals of the Open Babel project ..................................... 3 1.2 Frequently Asked Questions ....................................... 4 1.3 Thanks .................................................. 7 2 Install Open Babel 9 2.1 Install a binary package ......................................... 9 2.2 Compiling Open Babel .......................................... 9 3 obabel and babel - Convert, Filter and Manipulate Chemical Data 17 3.1 Synopsis ................................................. 17 3.2 Options .................................................. 17 3.3 Examples ................................................. 19 3.4 Differences between babel and obabel .................................. 21 3.5 Format Options .............................................. 22 3.6 Append property values to the title .................................... 22 3.7 Filtering molecules from a multimolecule file .............................. 22 3.8 Substructure and similarity searching .................................. 25 3.9 Sorting molecules ............................................ 25 3.10 Remove duplicate molecules ....................................... 25 3.11 Aliases for chemical groups ....................................... 26 4 The Open Babel GUI 29 4.1 Basic operation .............................................. 29 4.2 Options .................................................
    [Show full text]
  • Oracle Berkeley DB Installation and Build Guide Release 18.1
    Oracle Berkeley DB Installation and Build Guide Release 18.1 Library Version 18.1.32 Legal Notice Copyright © 2002 - 2019 Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. Berkeley DB, and Sleepycat are trademarks or registered trademarks of Oracle. All rights to these marks are reserved. No third- party use is permitted without the express prior written consent of Oracle. Other names may be trademarks of their respective owners. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.
    [Show full text]
  • Oracle Solaris 10 910 Release Notes
    Oracle® Solaris 10 9/10 Release Notes Part No: 821–1839–11 September 2010 Copyright © 2010, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related software documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are “commercial computer software” or “commercial technical data” pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms setforth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.
    [Show full text]
  • Oracle Technology Global Price List September 7, 2021
    Prices in USA (Dollar) Oracle Technology Global Price List September 7, 2021 This document is the property of Oracle Corporation. Any reproduction of this document in part or in whole is strictly prohibited. For educational purposes only. Subject to change without notice. 1 of 16 Section I Prices in USA (Dollar) Oracle Database Software Update Processor Software Update Named User Plus License & Support License License & Support Database Products Oracle Database Standard Edition 2 350 77.00 17,500 3,850.00 Enterprise Edition 950 209.00 47,500 10,450.00 Personal Edition 460 101.20 - - Mobile Server - - 23,000 5,060.00 NoSQL Database Enterprise Edition 200 44 10,000 2,200.00 Enterprise Edition Options: Multitenant 350 77.00 17,500 3,850.00 Real Application Clusters 460 101.20 23,000 5,060.00 Real Application Clusters One Node 200 44.00 10,000 2,200.00 Active Data Guard 230 50.60 11,500 2,530.00 Partitioning 230 50.60 11,500 2,530.00 Real Application Testing 230 50.60 11,500 2,530.00 Advanced Compression 230 50.60 11,500 2,530.00 Advanced Security 300 66.00 15,000 3,300.00 Label Security 230 50.60 11,500 2,530.00 Database Vault 230 50.60 11,500 2,530.00 OLAP 460 101.20 23,000 5,060.00 TimesTen Application-Tier Database Cache 460 101.20 23,000 5,060.00 Database In-Memory 460 101.20 23,000 5,060.00 Database Enterprise Management Diagnostics Pack 150 33.00 7,500 1,650.00 Tuning Pack 100 22.00 5,000 1,100.00 Database Lifecycle Management Pack 240 52.80 12,000 2,640.00 Data Masking and Subsetting Pack 230 50.60 11,500 2,530.00 Cloud Management
    [Show full text]
  • Developing and Deploying High Performance PHP Applications
    Developing and Deploying High Performance PHP Applications http://joind.in/3396 php|tek 2011 http://blogs.oracle.com/opal Christopher Jones [email protected] Oracle Development http://twitter.com/ghrd 1 This Talk - What to Expect • “State of the Nation” overview of PHP & Oracle Technology • (Some) Best Practices with Oracle Database – With live demos 2 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 3 About Me • Work in Oracle's Linux & Virtualization Group • Focus on scripting languages – mostly PHP – Have PHP code check-in privileges • Also work on Oracle features that help scripting languages 4 <Insert Picture Here> In The News 5 In the News: NetBeans IDE • Free – GPL / CDDL • NetBeans is very popular for PHP – Strong, passionate community of users • Zend Framework, Symfony, XDebug, PHPUnit, PhpDoc • New! NetBeans 7.0 just released – Generate PhpDoc – Rename refactoring, Safe delete refactoring – Support for PHP 5.3 namespace aliases • See http://netbeans.org/features/php 6 In the News: Oracle Database • Beta Oracle 11.2 “XE” is available – Free – Windows 32 & 64, Linux 64 – Subset of Enterprise Edition features – Same code base as EE – XE
    [Show full text]
  • Data Sheet: Berkeley Database Products
    ORACLE DATA SHEET Oracle Berkeley Database Products The Oracle Berkeley DB product family consists of Berkeley DB, Berkeley DB Java Edition and Berkeley DB XML. All three are high performance, self- contained, software libraries which provide data storage services for applications, devices, and appliances. They deliver superior performance, scalability and availability for applications that must run unattended without administration. Overview The Oracle Berkeley DB family of high performance, self-contained databases provides CONSIDER BERKELEY DB WHEN: developers with a fast, transactional database solution with a track record of reliability, • You need an SQLite API compatible unmatched scalability and five-nines (99.999%) or better availability. Oracle Berkeley database within mobile, handheld or DB is well suited to Independent Software Vendors, device and equipment other hardware devices. manufacturers, and enterprises or software companies building solutions which need a • Performance, scalability, concurrency data management component. The Oracle Berkeley DB family of products provides fast, is important. local persistence with zero oversight administration. • Zero oversight administration in deployment is required Customers and end-users will experience an application that simply works, reliably • Flexibility to choose SQL, XQuery, manages data, scales under extreme load, and requires zero oversight in deployment. Java Object, or Key/Value data Your development team can focus on your application and be confident that Berkeley management. DB will manage your application’s data. • Mobile data synchronization with Oracle Database is a requirement. Storage Engine Design • Failure from recovery must be automatic and reliable The Berkeley DB products are self-contained software components which support your • High availability and fault tolerance are application.
    [Show full text]
  • Getting Started with Berkeley DB Java Edition
    Oracle Berkeley DB, Java Edition Getting Started with Berkeley DB Java Edition 12c Release 2 Library Version 12.2.7.5 Legal Notice Copyright © 2002 - 2017 Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. Berkeley DB, Berkeley DB Java Edition and Sleepycat are trademarks or registered trademarks of Oracle. All rights to these marks are reserved. No third-party use is permitted without the express prior written consent of Oracle. Other names may be trademarks of their respective owners. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.
    [Show full text]
  • MX-19.2 Users Manual
    MX-19.2 Users Manual v. 20200801 manual AT mxlinux DOT org Ctrl-F = Search this Manual Ctrl+Home = Return to top Table of Contents 1 Introduction...................................................................................................................................4 1.1 About MX Linux................................................................................................................4 1.2 About this Manual..............................................................................................................4 1.3 System requirements..........................................................................................................5 1.4 Support and EOL................................................................................................................6 1.5 Bugs, issues and requests...................................................................................................6 1.6 Migration............................................................................................................................7 1.7 Our positions......................................................................................................................8 1.8 Notes for Translators.............................................................................................................8 2 Installation...................................................................................................................................10 2.1 Introduction......................................................................................................................10
    [Show full text]
  • Forcepoint DLP Supported File Formats and Size Limits
    Forcepoint DLP Supported File Formats and Size Limits Supported File Formats and Size Limits | Forcepoint DLP | v8.8.1 This article provides a list of the file formats that can be analyzed by Forcepoint DLP, file formats from which content and meta data can be extracted, and the file size limits for network, endpoint, and discovery functions. See: ● Supported File Formats ● File Size Limits © 2021 Forcepoint LLC Supported File Formats Supported File Formats and Size Limits | Forcepoint DLP | v8.8.1 The following tables lists the file formats supported by Forcepoint DLP. File formats are in alphabetical order by format group. ● Archive For mats, page 3 ● Backup Formats, page 7 ● Business Intelligence (BI) and Analysis Formats, page 8 ● Computer-Aided Design Formats, page 9 ● Cryptography Formats, page 12 ● Database Formats, page 14 ● Desktop publishing formats, page 16 ● eBook/Audio book formats, page 17 ● Executable formats, page 18 ● Font formats, page 20 ● Graphics formats - general, page 21 ● Graphics formats - vector graphics, page 26 ● Library formats, page 29 ● Log formats, page 30 ● Mail formats, page 31 ● Multimedia formats, page 32 ● Object formats, page 37 ● Presentation formats, page 38 ● Project management formats, page 40 ● Spreadsheet formats, page 41 ● Text and markup formats, page 43 ● Word processing formats, page 45 ● Miscellaneous formats, page 53 Supported file formats are added and updated frequently. Key to support tables Symbol Description Y The format is supported N The format is not supported P Partial metadata
    [Show full text]
  • Abstract: Modern Open Source (“OS”) Software Projects Are Increasingly Funded by Commercial Firms That Expect to Earn a Profit from Their Investment
    GSPP10-006 Abstract: Modern open source (“OS”) software projects are increasingly funded by commercial firms that expect to earn a profit from their investment. This is usually done by bundling OS software with proprietary goods like cell phones or services like tech support. This article asks how judges and policymakers should manage this emerging business phenomenon. It begins by examining how private companies have adapted traditional OS institutions in a commercial setting. It then analyzes how OS methods change companies’ willingness to invest in software. On the one hand, OS cost-sharing often leads to increased output and benefits to consumers. On the other, these benefits tend to be limited. This is because sharing guarantees that no OS company can offer consumers better software than any other OS company. This suppresses incentives to invest much as a formal cartel would. In theory, vigorous competition from non-OS companies can mitigate this effect and dramatically increase OS output. In practice, however, de facto cartelization usually makes the OS sector so profitable that relatively few proprietary companies compete. This poses a central challenge to judges and policymakers. Antitrust law has long recognized that the benefits of R&D sharing frequently justify the accompanying cartel effect. This article argues that most commercial OS collaborations can similarly be organized in ways that satisfy the Rule of Reason. It also identifies two safe harbors where unavoidable cartel effects should normally be tolerated. That said, many OS licenses contain so-called “viral” clauses that require users who would prefer to develop proprietary products to join OS collaborations instead.
    [Show full text]