Devnet-1102.Pdf

Total Page:16

File Type:pdf, Size:1020Kb

Devnet-1102.Pdf Upcoming Services in OpenStack Rohit Agarwalla, Technical Leader [email protected], @rohitagarwalla DEVNET-1102 Agenda • OpenStack Overview • Upcoming Services • Trove • Sahara • Ironic • Magnum • Kolla OpenStack Overview Open source Cloud Computing Platform for Private and Public Clouds Design tenets – scale & elasticity, share nothing & distribute everything OpenStack Projects Compute (Nova) Dashboard (Horizon) Database (Trove) Network (Neutron) Image (Glance) Orchestration (Heat) Object Storage (Swift) Identity (KeyStone) Data Processing (Sahara) Block Storage (Cinder) Telemetry (Ceilometer) Deployment (Triple O) Bare Metal (Ironic) DNS (Designate) Application Catalog (Murano) Containers (Magnum) Key Management (Barbican) Policy (Congress) File System (Manila) Messaging (Zaqar) …. 24,000 people OpenStack Progress 495 companies Newton – Oct 2016 12th OpenStack release Mitaka – April 2016 1933 contributors 2015 Liberty – Oct 2015 Kilo – May 2015 760 new features 2014 Juno – Oct 2014 8300 bugs fixed IceHouse– April 2014 164 companies 2013 Havana – Oct 2013 Grizzly– April 2013 2012 Folsom– Sept 2012 Essex – April 2012 2011 Diablo – Sept 2011 Cactus– April 2011 Bexar – Feb 2011 2010 Austin – Oct 2010 130 contributors Started with Compute 30 new features and Storage service Trove - Database as a Service Trove API Functionality • Database as a Service - Automating complex database administrative Management Create/Delete/Show/List Database tasks – Deployment, Configuration, instance, Database, Users, Flavors Scaling, HA Security Support for Security Groups, No SSH by default • Single Admin Tenant Database per Nova instance Configuration Support for user defined configuration groups settings (MySQL, MongoDB) – Eg: • Datastore type - Relational and Non- max_connections, Buffer pool size etc Relational Backups Support for full backups and incremental • Pluggable – Support for MySQL, backups using Swift (MySQL, PostgreSQL, NoSQL – Cassandra, Cassandara, Couchbase) MongoDB, Couchbase, Redis Replication Async mysql master-slave replication from • Integration with other projects – snapshot of master Designate, Heat, Neutron Clustering Support for shards - three member replica- sets (MongoDB) Sahara – Data Processing as a Service Sahara API Functionality • Cluster provisioning - Create and Manage Hadoop clusters Data Stores URL which designates • Node Group Templates – Defines instances/nodes within a Sources the location of input and cluster that will each run selected hadoop processes and store output data data Job URL to script or Jar file stored • Plugins – Responsible for provisioning Hadoop cluster – Vanilla, Binaries in internal DB or Swift Hortonworks, MapR, Clouder, Spark Jobs Specifies the job and lists all • Cluster Templates – What Node Groups to be included and individual Job Binary objects how many instances to be created in each required for execution • Anti Affinity Groups – Processes may not be launched more than once on a single host Job Monitor and Manage a Job Execution executed/launched on a • Cluster – Represents a Hadoop cluster run using Cluster Cluster Template • Image Registry – Used to provide additional information about • Configure HDFS and MapReduce images using tags parameters at Node and Cluster level • Cluster Scaling - Change instances in a existing Node group or add new Node groups • Integration with Cinder, Swift, Neutron, Heat Ironic – Bare-Metal as a Service Ironic • Service for Bare metal management • Ironic API – RESTful API service • Ironic Conductor – Interacts with hardware; asynchronous handling of both requested and periodic actions • Ironic Python Agent – utility service temporarily booted on machines to provide remote access to hardware for provisioning and management • Ironic Drivers – Communicate with hardware devices • Nova driver • Using Nova API can provision bare metal servers • Based on Open technologies • DHCP, TFTP, PXE - In a PXE environment, TFTP is used to download NBP over the network using information from the DHCP server. • Ironic API – Chassis, Drivers, Links, Nodes, Ports Magnum – Container as a Service Magnum • Nova Container virtualization drivers - Docker, LXC, OpenVZ, ZeroVM • Heat resource for Docker • Container as a Service (“Nova of containers”) - Provide a REST Magnum API for Container management • Provide app isolation, portability, manageability with containers Operation on Service Launch instances with Agent and Pod objects for hosting Containers • Containers in VMs, Bare Metal, Containers Operation on Container object • Resources • Container – a container Kubernetes Docker Mesos Endpoint Endpoint Endpoint • Node – a bare metal or virtual machine where work executes • Bay – Collection of nodes where work is scheduled • Integration with Kubernetes, Docker, • Service – a port to Pod mapping Mesos • Pod – a collection of containers running on one physical or • Companies – Rackspace, RedHat, virtual machine Cisco and others Kolla – Containerization of OpenStack Services Kolla • Containerization of OpenStack services - All "core" OpenStack services implemented as micro-services in Docker containers. • Technology • Dockers – Deploying containers and managing images • Ansible – Orchestration tool for multi node deployment …. • Jinja2 – Templating language for Python Nova Glance Horizon Neutron Horizon Keystone • Developing and Deploying OpenStack service using Kolla • Supports deployment from binary and source across multiple Node distributions - CentOS, Debian, Fedora, Oracle Linux, RHEL, and Ubuntu • AIO and multinode deployment using Ansible with n-way active high availability. • Development environments using Heat, Vagrant, or bare-metal. Summary • OpenStack services ecosystem is expanding • Lots of opportunities to contribute and influence the community 17 Call to Action • Visit the World of Solutions for • Cisco Campus • Walk in Labs • Technical Solution Clinics • Meet the Engineer • Lunch and Learn Topics • DevNet zone related sessions Complete Your Online Session Evaluation • Please complete your online session evaluations after each session. Complete 4 session evaluations & the Overall Conference Evaluation (available from Thursday) to receive your Cisco Live T-shirt. • All surveys can be completed via the Cisco Live Mobile App or the Communication Stations Thank you .
Recommended publications
  • Virtualization Getting Started Guide
    Red Hat Enterprise Linux 7 Virtualization Getting Started Guide Introduction to virtualization technologies available with RHEL Last Updated: 2020-02-24 Red Hat Enterprise Linux 7 Virtualization Getting Started Guide Introduction to virtualization technologies available with RHEL Jiri Herrmann Red Hat Customer Content Services [email protected] Yehuda Zimmerman Red Hat Customer Content Services [email protected] Dayle Parker Red Hat Customer Content Services Laura Novich Red Hat Customer Content Services Jacquelynn East Red Hat Customer Content Services Scott Radvan Red Hat Customer Content Services Legal Notice Copyright © 2019 Red Hat, Inc. This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
    [Show full text]
  • Distributing an SQL Query Over a Cluster of Containers
    2019 IEEE 12th International Conference on Cloud Computing (CLOUD) Distributing an SQL Query Over a Cluster of Containers David Holland∗ and Weining Zhang† Department of Computer Science, University of Texas at San Antonio Email: ∗[email protected], †[email protected] Abstract—Emergent software container technology is now across a cluster of containers in a cloud. A feasibility study available on any cloud and opens up new opportunities to execute of this with performance analysis is reported in this paper. and scale data intensive applications wherever data is located. A containerized query (henceforth CQ) uses a deployment However, many traditional relational databases hosted on clouds have not scaled well. In this paper, a framework and deployment methodology that is unique to each query with respect to the methodology to containerize relational SQL queries is presented, number of containers and their networked topology effecting so that, a single SQL query can be scaled and executed by data flows. Furthermore a CQ can be scaled at run-time a network of cooperating containers, achieving intra-operator by adding more intra-operators. In contrast, the traditional parallelism and other significant performance gains. Results of distributed database query deployment configurations do not container prototype experiments are reported and compared to a real-world RDBMS baseline. Preliminary result on a research change at run-time, i.e., they are static and applied to all cloud shows up to 3-orders of magnitude performance gain for queries. Additionally, traditional distributed databases often some queries when compared to running the same query on a need to rewrite an SQL query to optimize performance.
    [Show full text]
  • Static Vulnerability Analysis of Docker Images
    DEGREE PROJECT FOR MASTER OF SCIENCE IN ENGINEERING COMPUTER SECURITY Static Vulnerability Analysis of Docker Images Michael Falk | Oscar Henriksson Blekinge Institute of Technology, Karlskrona, Sweden, 2017 Supervisor: Emiliano Casalicchio, Department of Computer Science and Engineering, BTH Abstract Docker is a popular tool for virtualization that allows for fast and easy deployment of applications and has been growing increasingly popular among companies. Docker also include a large library of images from the repository Docker Hub which mainly is user created and uncontrolled. This leads to low frequency of updates which results in vulnerabilities in the images. In this thesis we are developing a tool for determining what vulnerabilities that exists inside Docker images with a Linux distribution. This is done by using our own tool for downloading and retrieving the necessary data from the images and then utilizing Outpost24’s scanner for finding vulnerabilities in Linux packages. With the help of this tool we also publish statistics of vulnerabilities from the top downloaded images of Docker Hub. The result is a tool that can successfully scan a Docker image for vulnerabilities in certain Linux distributions. From a survey over the top 1000 Docker images it has also been shown that the amount of vulnerabilities have increased in comparison to earlier surveys of Docker images. Keywords: Docker, Containerization, Vulnerability analysis, Vulnerability scanning i Sammanfattning Docker är ett populärt verktyg för virtualisering som används för att snabbt och enkelt sätta upp applikationer och har vuxit sig populärt bland företag. Docker inkluderar även ett stort bibliotek av images från datakatalogen Docker Hub vilket huvudsakligen består av användarskapat och okontrollerat innehåll.
    [Show full text]
  • Hypervisors Vs. Lightweight Virtualization: a Performance Comparison
    2015 IEEE International Conference on Cloud Engineering Hypervisors vs. Lightweight Virtualization: a Performance Comparison Roberto Morabito, Jimmy Kjällman, and Miika Komu Ericsson Research, NomadicLab Jorvas, Finland [email protected], [email protected], [email protected] Abstract — Virtualization of operating systems provides a container and alternative solutions. The idea is to quantify the common way to run different services in the cloud. Recently, the level of overhead introduced by these platforms and the lightweight virtualization technologies claim to offer superior existing gap compared to a non-virtualized environment. performance. In this paper, we present a detailed performance The remainder of this paper is structured as follows: in comparison of traditional hypervisor based virtualization and Section II, literature review and a brief description of all the new lightweight solutions. In our measurements, we use several technologies and platforms evaluated is provided. The benchmarks tools in order to understand the strengths, methodology used to realize our performance comparison is weaknesses, and anomalies introduced by these different platforms in terms of processing, storage, memory and network. introduced in Section III. The benchmark results are presented Our results show that containers achieve generally better in Section IV. Finally, some concluding remarks and future performance when compared with traditional virtual machines work are provided in Section V. and other recent solutions. Albeit containers offer clearly more dense deployment of virtual machines, the performance II. BACKGROUND AND RELATED WORK difference with other technologies is in many cases relatively small. In this section, we provide an overview of the different technologies included in the performance comparison.
    [Show full text]
  • Erlang on Physical Machine
    on $ whoami Name: Zvi Avraham E-mail: [email protected] /ˈkɒm. pɑː(ɹ)t. mɛntl̩. aɪˌzeɪ. ʃən/ Physicalization • The opposite of Virtualization • dedicated machines • no virtualization overhead • no noisy neighbors – nobody stealing your CPU cycles, IOPS or bandwidth – your EC2 instance may have a Netflix “roommate” ;) • Mostly used by ARM-based public clouds • also called Bare Metal or HPC clouds Sandbox – a virtual container in which untrusted code can be safely run Sandbox examples: ZeroVM & AWS Lambda based on Google Native Client: A Sandbox for Portable, Untrusted x86 Native Code Compartmentalization in terms of Virtualization Physicalization No Virtualization Virtualization HW-level Virtualization Containerization OS-level Virtualization Sandboxing Userspace-level Virtualization* Cloud runs on virtual HW HARDWARE Does the OS on your Cloud instance still supports floppy drive? $ ls /dev on Ubuntu 14.04 AWS EC2 instance • 64 teletype devices? • Sound? • 32 serial ports? • VGA? “It’s DUPLICATED on so many LAYERS” Application + Configuration process* OS Middleware (Spring/OTP) Container Managed Runtime (JVM/BEAM) VM Guest Container OS Container Guest OS Hypervisor Hardware We run Single App per VM APPS We run in Single User mode USERS Minimalistic Linux OSes • Embedded Linux versions • DamnSmall Linux • Linux with BusyBox Min. Linux OSes for Containers JeOS – “Just Enough OS” • CoreOS • RancherOS • RedHat Project Atomic • VMware Photon • Intel Clear Linux • Hyper # of Processes and Threads per OS OSv + CLI RancherOS processes CoreOS threads
    [Show full text]
  • Red Hat Enterprise Virtualization 3.0 Live Chat Transcript Sponsored by Red Hat
    Red Hat Enterprise Virtualization 3.0 Live Chat Transcript Sponsored by Red Hat Speakers: Chuck Dubuque, Senior Product Marketing Manager, Red Hat Andy Cathrow, Product Manager, Red Hat Red Hat Virtualization Live Chat Transcript 2.23.12 Joe:Hi Everyone, thanks for joining the Red Hat Live Chat. Joe:Today we have Chuck Dubuque & Andrew Cathrow with the Red Hat Virtualization team available LIVE to answer your questions. Joe:Speaker Bios:Chuck Dubuque is the Senior Product Marketing Manager for Red Hat Enterprise Virtualization and is responsible for market analysis, program strategy, and channel support. Prior to joining Red Hat, he worked for three years at a mid-sized VAR (value-added reseller) where he experienced both the marketing and engineering of enterprise hardware and software, including Red Hat Enterprise Linux, VMware, Microsoft Windows Server, NetApp, IBM, Cisco, and Dell. Earlier in his career, Dubuque spent eight years in the biotechnology space in marketing and business development. He earned an MBA from Stanford Graduate School of Business and a bachelor's degree from Dartmouth College. Andrew Cathrow serves as Product Manager at Red Hat, where he is responsible for Red Hat's virtualization products. He has also managed Red Hat's sales engineers. Prior to joining Red Hat in 2006, Cathrow worked in product management for a configuration company, and also for a software company that developed middleware and messaging mainframe and midrange systems. Earlier in his career, Cathrow held various positions at IBM Global Services. Joe:Please feel free to start asking questions now Chuck:Thanks Joe. First I'd like to remind everyone that Red Hat launched RHEV 3.0 on January 18, and out launch event is now available on-demand at http://bit.ly/rhev3event.
    [Show full text]
  • Modernized Backup for Virtual Environments Open VM and Container Backup with Integration Into Enterprise Backup Platforms
    DATA SHEET Modernized Backup for Virtual Environments Open VM and Container Backup with Integration into Enterprise Backup Platforms vProtect Highlights • Support for a wide range of Open VM platforms: • Backup to Amazon S3, Microsoft Azure, Google RHV/oVirt, Nutanix Acropolis, Citrix XenServer, KVM, PowerKVM, KVM for IBM z, oVirt, Proxmox, Swift, Neverfail HybriStor or Data Domain Boost Xen and Oracle VM. • Ability to backup, restore, mount file systems, • Support for backup and snapshot management of RBD volumes, and Nutanix files. Amazon EC2 • S3/S3-compatible backup provider – Nutanix Objects support and proxy support • Support for Kubernetes containers on OpenShift • Kubernetes/OpenShift – token-based authentication • Supports data export into existing backup • Data encryption for Amazon S3, Microsoft Azure environments for integration and long-term storage. Works with IBM Spectrum Protect, Veritas NetBackup, Dell-EMC Networker and Catalogic vStor. API) as well as command line • Multi-node support for better scalability or geographically dispersed environments. • Pre/post snapshot remote command execution on VM to enable operations such as DB quiesce iSCSI, SMB) supported DATA SHEET vProtect Introduction vProtect is an enterprise backup solution for Open VM environments and containers such more. vProtect enables VM-level protection and can function as a standalone solution or integrate with enterprise backup software. Platform Specific Features vProtect provides a wide range of capabilities and makes use of advanced virtualization
    [Show full text]
  • Redhat Virtualization Tuning and Optimization Guide
    Red Hat Enterprise Linux 7 Virtualization Tuning and Optimization Guide Using KVM performance features for host systems and virtualized guests on RHEL Last Updated: 2020-09-10 Red Hat Enterprise Linux 7 Virtualization Tuning and Optimization Guide Using KVM performance features for host systems and virtualized guests on RHEL Jiri Herrmann Red Hat Customer Content Services [email protected] Yehuda Zimmerman Red Hat Customer Content Services [email protected] Dayle Parker Red Hat Customer Content Services Scott Radvan Red Hat Customer Content Services Red Hat Subject Matter Experts Legal Notice Copyright © 2019 Red Hat, Inc. This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
    [Show full text]
  • Red Hat Virtualization
    RED HAT VIRTUALIZATION FEATURE GUIDE OVERVIEW “Serving Sears Red Hat® Virtualization is a complete virtualization infrastructure solution for virtualized servers members is our top and workstations. Red Hat Virtualization, built on the powerful Red Hat Enterprise Linux® platform priority, and one way we provides agility, security, reliability, and scalability for virtualized resource-intensive critical workloads. Red Hat Virtualization lets organizations evolve their IT infrastructure while delivering do that is by keeping our performance benefits, competitive pricing, and a trusted environment they expect from Red Hat. online services at the FEATURES & BENEFITS forefront of innovation, ensuring that our FEATURE CATEGORIES CAPABILITY platform is both highly RED HAT VIRTUALIZATION HYPERVISOR scalable and functional. Built on the Kernel-based Virtual Machine (KVM) hypervisor technology that is native to Red Hat Transitioning to Red Hat Enterprise Linux Virtualization enabled Red Hat Virtualization Host • NEW: Built as the next-generation optimized and lightweight us to maintain that edge, Red Hat Enterprise Linux 7 operating system, with these while giving us the additional benefits: opportunity to replace 1. Simplified driver/firmware updates for hardware partners. our proprietary solution 2. Installation of hardware monitoring agents. without sacrificing 3. Easy customization and configuration management. either the speed • NEW: Anaconda provides a common installer tool for both or efficiency of our Red Hat Enterprise Linux and Red Hat Virtualization host. operation.” • NEW: Cockpit plug-in—a simple and lightweight web-based Linux administration tool that provides host specific tuning, YIANNI GEORGAKAS, troubleshooting access, and host access. DIRECTOR OF SYSTEMS ENGINEERING, ECOMMERCE, Scalability • Host scalability: Supports up to 288 logical CPUs and 12TB SEARS HOLDINGS CORPORATION per host.
    [Show full text]
  • Containerized SQL Query Evaluation in a Cloud
    Containerized SQL Query Evaluation in a Cloud Dr. Weining Zhang and David Holland Department of Computer Science The University of Texas at San Antonio {Weining.Zhang, david.holland}@utsa.edu Abstract—Recent advance in cloud computing and light- management system (DBMS) inside a virtual ma- weight software container technology opens up opportu- chine (VM). The user must administer most sys- nities to execute data intensive applications where data tem management activities, including software li- is located. Noticeably, current database services offered censing, installation, configuration, management, on cloud platforms have not fully utilized container tech- nologies. In this paper we present an architecture of a backup, and recovery. This option is difficult to cloud-based, relational database as a service (DBaaS) that scale. Two) Use a NoSQL database, e.g. Apache can package and deploy a query evaluation plan using HBase[1], Google BigQuery[2], and Cassandra[3]. light-weight container technology and the underlying cloud These services are highly efficient and scalable for storage system. We then focus on an example of how a some types of large data, but the user is forced to select-join-project-order query can be containerized and deal with the lack of structured data and strong deployed in ZeroCloud. Our preliminary experimental results confirm that a containerized query can achieve data integrity that is present in relational models. a high degree of elasticity and scalability, but effective Three) Use a managed SQL database service, e.g. mechanisms are needed to deal with data skew. Amazon RDS[4], Google Cloud SQL[5], and MS Index Terms—Database, DBaaS, query evaluation, soft- Azure SQL[6].
    [Show full text]
  • Red Hat Virtualization 4.4 Installing Red Hat Virtualization As a Standalone Manager with Remote Databases
    Red Hat Virtualization 4.4 Installing Red Hat Virtualization as a standalone Manager with remote databases Installing the Red Hat Virtualization Manager on one server, and its databases on a second server Last Updated: 2021-09-07 Red Hat Virtualization 4.4 Installing Red Hat Virtualization as a standalone Manager with remote databases Installing the Red Hat Virtualization Manager on one server, and its databases on a second server Red Hat Virtualization Documentation Team Red Hat Customer Content Services [email protected] Legal Notice Copyright © 2021 Red Hat, Inc. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp.
    [Show full text]
  • Why Open Source Software / Free Software (OSS/FS, FLOSS, Or FOSS)? Look at the Numbers!
    Translations available: Czech | French | Japanese | Spanish Why Open Source Software / Free Software (OSS/FS, FLOSS, or FOSS)? Look at the Numbers! David A. Wheeler http://www.dwheeler.com/contactme.html Revised as of July 18, 2015 This paper (and its supporting database) provides quantitative data that, in many cases, using open source software / free software (abbreviated as OSS/FS, FLOSS, or FOSS) is a reasonable or even superior approach to using their proprietary competition according to various measures. This paper’s goal is to show that you should consider using OSS/FS when acquiring software. This paper examines popularity, reliability, performance, scalability, security, and total cost of ownership. It also has sections on non-quantitative issues, unnecessary fears, OSS/FS on the desktop, usage reports, governments and OSS/FS, other sites providing related information, and ends with some conclusions. An appendix gives more background information about OSS/FS. You can view this paper at http://www.dwheeler.com/oss_fs_why.html (HTML format). A short presentation (briefing) based on this paper is also available. Palm PDA users may wish to use Plucker to view this longer report. Old archived copies and a list of changes are also available. 1. Introduction Open Source Software / Free Software (aka OSS/FS), also described as Free/Libre and Open Source Software (FLOSS), has risen to great prominence. Briefly, FLOSS programs are programs whose licenses give users the freedom to run the program for any purpose, to study and modify the program, and to redistribute copies of either the original or modified program (without having to pay royalties to previous developers).
    [Show full text]