Skip to main content

What is Open Source Software? Types of Open Source Licenses.

Open source software is software with source code that anyone can use, study, modify, and share.
Source code is the set of human-readable instructions that are used to make a program. This may be interpreted as a script, or compiled into a binary executable which the computer runs directly. All source code is copyrighted from the moment it is created. Whether it can be distributed as source or binary executables is under the control of the copyright holder. Therefore, software is provided to users under a software license.
Some software has source code that only the person, team, or organization that created it can see, or change, or distribute. This is sometimes called "proprietary" or "closed source" software. Typically the license only allows the end user to run the program, and provides no access, or tightly limited access, to the source.
Open source software is different. When the copyright holder provides software under an open source license, they grant the user the right to run the program and also to view, modify, compile, and redistribute the source royalty-free to others.
Open source promotes collaboration, sharing, transparency and rapid innovation because it encourages people beyond the original developers to make modifications and improvements to the software and to share it with others.
Just because software is open source doesn't mean it is somehow not able to be used or provided commercially. Open source is a critical part of many organizations' commercial operations. Some open source licenses allow code to be reused in closed source products. Open source code can be sold, but the terms of true open source licenses generally allow the customer to re-distribute the source code. Most commonly, vendors like Red Hat can provide commercial help with deploying, supporting, and extending solutions based on open source products.
Open source has many benefits for the user:
  • Control: See what the code does and change it to make it better.
  • Training: Learn from real-world code and develop more effective applications.
  • Security: Inspect sensitive code, fix with or without the original developers' help.
  • Stability: Code can survive the loss of the original developer or distributor.
The bottom line is that we believe open source creates better software with a higher return on investment, and that we do things better when we do them together.

Types of Open Source Licenses.

There is more than one way to be open source. The terms of the software license control how the source can be combined with other code or reused, and hundreds of different open source licenses exist. But in order to be open source, licenses must allow users to freely use, view, change, compile, and distribute the code.
There are two broad classes of open source license that are particularly important:
  • Copyleft licenses that are designed to encourage keeping code open source.
  • Permissive licenses that are designed to maximize code reusability.
Copyleft, or "share-alike" licenses, require that anyone who distributes the source code, with or without changes, must also pass along the freedom for others to also copy, change and distribute the code. The basic advantage of these licenses is that they help to keep existing code, and improvements to that code, open and add to the amount of open source code available. Common copyleft licenses include the GNU General Public License (GPL) and the Lesser GNU Public License (LGPL).
Permissive licenses are intended to maximize the reusability of source code. Users can use the source for any purpose as long as the copyright and license statements are preserved, including reusing that code under more restrictive or even proprietary licenses. This makes it very easy for this code to be reused, but at the risk of encouraging proprietary-only enhancements. Several commonly used permissive open source licenses include the MIT/X11 license, the Simplified BSD license, and the Apache Software License 2.0.

Comments

Popular posts from this blog

The Seven-Step Model of Migration

Irrespective of the migration approach adopted, the Seven-step Model of Cloud Migration creates a more rational point of view towards the migration process and offers the ability to imbibe several best practices throughout the journey Step 1: Assess Cloud migration assessments are conducted to understand the complexities in the migration process at the code, design and architectural levels. The investment and the recurring costs are also evaluated along with gauging the tools, test cases, functionalities and other features related to the configuration. Step 2: Isolate The applications to be migrated to the cloud from the internal data center are freed of dependencies pertaining to the environment and the existing system. This step cuts a clearer picture about the complexity of the migration process. Step 3: Map Most organisations hold a detailed mapping of their environment with all the systems and applications. This information can be used to distinguish between the ...

Cloud Computing architecture

Cloud computing architecture refers to all components and sub-components that together form the structure of the cloud computing system. This architecture can be divided into three parts for better understanding – front end, back end and middleware. Each part of the cloud architecture has its own set of functionalities and protocols that work together to deliver on-demand services to user-facing hardware as well as software. In general, the architecture is evolved out of large distributed network applications over the last two decades. Hence it supports any system where resources can be pooled and partitioned as required. The general cloud architecture is capable of running multiple software applications running on multiple virtual hardware in multiple locations to efficiently render on-demand services to the users. The users could be using these software applications from their desktop or laptop or mobile or tablets. Usually, whatever the user is looking at – through t...

connection oriented

connection-oriented:- connection-oriented  describes a means of transmitting data in which the devices at the end points use a preliminary  protocol  to establish an end-to-end connection before any data is sent. Connection-oriented protocol service is sometimes called a "reliable" network service, because it guarantees that data will arrive in the proper sequence. Transmission Control Protocol ( TCP ) is a connection-oriented protocol. For connection-oriented communications, each end point must be able to transmit so that it can communicate. The alternative to connection-oriented transmission is the  connection-less  approach, in which data is sent from one end point to another without prior arrangement. Connection-less protocols are usually described as  stateless  because the end points have no protocol-defined way to remember where they are in a "conversation" of message exchanges. Because they can keep track of a conversation, connection-or...

tag