Skip to content

Latest commit

 

History

History
60 lines (35 loc) · 5.98 KB

opensource_model.md

File metadata and controls

60 lines (35 loc) · 5.98 KB

Open-Source

Open-Source Model

Open-Source Community

Software is considered open-source when its source code is made freely available. This openness allows you to modify and redistribute open-source products according to your requirements. The source code of open-source software is typically released under specific software license terms. These licenses vary, but generally, they allow you to download, change, and even publish your version, often referred to as a 'fork', back to the open-source community.

Advantages and Collaboration

One of the most significant advantages of open-source software is the encouragement of co-creation and open collaboration. This model fosters peer production or mass collaboration, where many contributors work together towards a common goal. This collaborative approach can lead to more robust, secure, and innovative software as it combines the expertise and perspectives of a diverse group of people.

Contrast with Proprietary Software

In contrast to open-source software, proprietary software (also known as closed-source software) typically keeps its source code secret. Users of proprietary software are generally not allowed to view, modify, or share the source code, as the publisher or maintainer of the software retains these rights. This restriction can sometimes include patent rights on specific parts of the software, such as code, algorithms, or user interfaces. Patents in software can be contentious, as they may restrict the use and development of certain technologies and methods.

The Open-Source Movement and the Internet

The open-source movement emerged as a response to the limitations of proprietary software. It advocates for more transparent, collaborative, and user-friendly terms of use, such as licensing and consumer rights. The rise of the Internet significantly boosted the popularity of open-source software, making it easier for developers worldwide to collaborate, share code, and improve upon each other's work. This global network has led to the development of numerous successful open-source projects, profoundly impacting the software industry.

Licensing and Accessibility

Open-source licensing not only applies to the software itself but also extends to its documentation and design. This approach ensures universal access under the free license of open-source, making both the software and knowledge about it accessible to a wider audience.

Common Open-Source Models

Here's a list of some important open-source software models and licenses that are widely recognized and used:

  • GNU General Public License (GPL): Probably the most famous open-source license, which requires any modified versions to be open-source as well. It's known for its "copyleft" provision.

  • Apache License 2.0: Allows users to use the software for any purpose, to distribute it, modify it, and distribute modified versions of the software under the terms of the license.

  • MIT License: A permissive license that is short and to the point. It lets people do anything they want with the code as long as they provide attribution back to the original source and don’t hold the original authors liable.

  • BSD Licenses: A family of permissive open-source licenses. The original BSD license was used for the Berkeley Software Distribution (BSD), a Unix-like operating system for which the license is named.

  • Mozilla Public License 2.0 (MPL): A weak copyleft license that allows combining the licensed code with other software under a different license.

  • Eclipse Public License (EPL): Used by the Eclipse Foundation for its software. It's a more business-friendly copyleft license as it allows linking with proprietary modules.

  • GNU Lesser General Public License (LGPL): A more permissive variant of the GPL, used for software libraries.

  • Creative Commons Licenses: Although not specifically for software, these licenses are used for creative works and are important in the open-source community for content like documentation, images, and educational material.

OSI Open-Source Definition

Linux provides a platform that lets software developers change the operating system as they like and get a wide range of help creating the applications they need. One of the watchdogs of the open source movement is the Open Source Initiative, or OS.

Although the primary goal of open source software is to make source code available, other goals of open source software are defined by OSI in its open source definition. Most of the following rules for acceptable open source licenses serve to protect the freedom and integrity of the open source code:

  • Free distribution: An open source license can’t require a fee from anyone who resells the software.
  • Source code: The source code must be included with the software, and there can be no restrictions on redistribution.
  • Derived works: The license must allow modification and redistribution of the code under the same terms.
  • Integrity of the author’s source code: The license may require that those who use the source code remove the original project’s name or version if they change the source code.
  • No discrimination against persons or groups: The license must allow all people to be equally eligible to use the source code.
  • No discrimination against fields of endeavor: The license can’t restrict a project from using the source code because it is commercial or because it is associated with a field of endeavor that the software provider doesn’t like.
  • Distribution of license: No additional license should be needed to use and redistribute the software.
  • License must not be specific to a product: The license can’t restrict the source code to a particular software distribution.
  • License must not restrict other software: The license can’t prevent someone from including the open source software on the same medium as non–open source software.
  • License must be technology neutral: The license can’t restrict methods in which the source code can be redistributed.