Blogger Widgets

Total Page visits

Saturday, January 26, 2013

Free and Open Source Softwares and Licenses


This article covers following points :
Open source and FOSS
Open Source and FOSS
  • What is Software?
  • What is License?
  • What does a License convey?
  • What is Open Source Software?
  • Differences between Free and Open Source Softwares?
  • What does Open Source License allows us to do?
  • Role of FOSS in Academia and Research?
  • Most popularly used Open Source licenses and Softwares along with their brief explanation?
  • How to release your own Open Source Software?
  • Pros and Cons of Open Source Licenses and Softwares?
What is software?
Wikipedia defines software as “Computer software, or just software, is a collection of computer programs and related data that provides the instructions for telling a computer what to do and how to do it”. The software may a single instruction or command or set of instructions which are usually executed on computer hardware.  An algorithm may be called as Skelton of software.
What is license?
A License is a special permission to do something on, or with, somebody else’s property which, were it not for the license, could be legally prevented or give rise to legal action in tort or trespass (DUHAIME’S LAW DICTIONARY). And according to Wikipedia a Software License is “A software license is a legal instrument (usually by way of contract law) governing the usage or redistribution of software.”
Taxonomy:
  • Proprietary: the use, redistribution or modification of the software is prohibited, or requires you to ask for permission, or is restricted so much that you effectively can’t do it freely.
  • Semi-free: not free, but comes with permission for individuals to use, copy, distribute, and modify (including distribution of modified versions) for non-profit purposes.
  • Copyright: The exclusive right to produce or reproduce (copy), to perform in public or to publish an original literary or artistic work. Many countries have expanded the definition of a “literary work” to include computer programs or other electronically stored information.
Free (Free Software DOES NOT MEAN Freeware)
  • Copylefted: Redistribution cannot add additional restriction
  • Non-Copylefted:
    • Public domain = non-copyrighted
    • Copyrighted (but not copylefted)
Copylefted DOES NOT MEAN not copyrighted
  • Copyleft is a general method for making program free software and requiring all modified and extended versions of the program to be free software as well.
  • To copyleft a program, we first state that it is copyrighted; then we add distribution terms, which are a legal instrument that gives everyone the rights to use, modify, and redistribute the program’s code or any program derived from it but only if the distribution terms are unchanged. Thus, the code and the freedoms become legally inseparable.

What does a License convey? (Precisely a Software License)
A software license is an agreement between the user of software and the owner of the software which lets user of software perform and exercise certain activities which would otherwise constitute an infringement under copyright law.
A Software License conveys you the following
  • Where and how and how often can the user install the software?
  • Whether user is allowed to copy it?
  • Whether user is allowed to modify it?
  • Whether user is allowed to redistribute it?
  • Whether user is allowed to look at the source code?
The user acquires software directly from a vendor or retailer, or directly from the vendor’s Web site, he/she usually have to agree indicate his/her consent by clicking a box that you accept the licensing terms. This “click-through” agreement that no one ever reads is commonly known as a EULA (End User License Agreement)
Open Source Software:
Open source software is software whose license which allows free redistribution, access to source code, derived works, integrity of author’s source code.  It also puts additional conditions like there should be no discrimination against persons or groups, fields of endeavor. The open source license should be distributes and the it must not restrict use of other softwares and be not be specific to a particular product.

The essence of open source is  that source code of software can be both viewed and changed by just
about anyone who wants to bother, this can seen in terms of development methodology.

Free Softwares:
The official definition of free softwares from FSF  ( Free Software Foundation ) defines it as
““Free software” means software that respects users’ freedom and community. Roughly, the users have the freedom to run, copy, distribute, study, change and improve the software. With these freedoms, the users (both individually and collectively) control the program and what it does for them.”
This definition further lays out some conditions for software to be called as free software
They are
  1. The freedom to run the program, for any purpose
  2. The freedom to study how the program works and change it so it does your computing as you wishes. Access to the source code is a precondition for this.
  3. The freedom to redistribute copies so you can help your neighbor.
  4. The freedom to distribute copies of your modified versions to others.
It’s interesting to note that the definitions at http://www.gnu.org/philosophy/free-sw.html states that free software does not necessarily mean free in terms of price
From the definitions above it means that free software must also be open source software. But the reverse is not true.
There are many software licenses used with open source software which may do not meet the four requirements exactly or create ambiguity I terms of redistribution and derived works, and therefore software covered by them may not be considered to be free software.
Types of Licenses:
Following are some of most popular FOSS licenses
GNU General Public License (GPL)
GNU Lesser General Public License (LGPL)
OSI (Open Source Initiative) approved:
  • Academic Free License
  • Apache Software License
  • Apple Public Source License
  • Artistic license
  • BSD license
  • GNU GPL
  • GNU LGPL
  • IBM Public License
  • Intel Open Source License
  • MIT license
  • Sun Public License
More licenses and their detailed description can be found at URL
http://www.gnu.org/licenses/license-list.html
FOSS can play a vital and crucial role in Academia of developing countries.
FOSS are used in Academia:
  • To establish cost effective of IT infrastructure and its administration:
The proprietary softwares used to manage IT infrastructure is sometimes unaffordable in developed countries. Here many FOSS  Student Information systems and Library management systems help to solve the IT administration problems cost effectively. Easily distributable FOSS allows in having better robust IT infrastructure in an academic organization.
  • To teach Information and Communication Technologies (ICT) :
FOSS are used at various levels of teaching ICT namely school, high school, under graduation level.
School level teaching employs use of FOSS to impart basic computer literacy. FOSS like GNU C, C++, JAVA, Python and compliers form a part of IT education at graduate and undergraduate education. Moreover FOSS development methodology is popular in many universities. Example Bugzilla.
  • To carry out research activities:
FOSS like Scilab , Octave serve as alternative to Matlab in various research activities carried out by scientists . Python is predominantly used in many research activities to write a software programs and Numpy, Scipy, Matplotlib libraries for python make it even more powerful programming language under FOSS. R supports a wide variety of statistical and numerical techniques.
GNU/Linux and FOSS have been used in projects to provide affordable high-end computing capabilities. Beowulf is the name of the architecture used for building a massively parallel system constructed out of commercially available PCs.
Netlib, GNU Scientific Library,Object-Oriented Numerics are some of the FOSS which are highly helpful for researchers and scientists .
A comprehensive list of Open source softwares can be found at following URL
Most popular FOSS
  • Firefox
  • GNU C Compiler
  • Apache Open Office
  • Apache Web Server
  • Linux OS
  • MySQL  and PostgreSQL
  • Python
  • Scilab
Creating own open source project is simple. Basically you need to adhere to all the conditions which are prerequisite for software to be called as FOSS. The simplest way is to create a project on Open Source softwares websites like SourceForge.net. Alternatively you can setup your own source code repository and release your own open source software.
  
Some of Pros and Cons of FOSS but not limited to following
Pros:
  • Increased user base , mostly being freely accessible FOSS have wide userbase
  • Longer useful life: Due to active community support.
  • Increased stability: Due to active community support.
  • Security
  • Scalability
  • Innovation: Due to free redistribution and freedom to modify
  • Cost:
  • Adaptability: Language and platform neutral.

Cons:
  • Intellectual property infringement
  • No warranties
  • Copyleft
  • Copyright attribution and notice requirements
  • Ambiguous license terms
  • Consumer protection laws
  • License management
  • Multiple forks of project
  • Training and commercial support
References:
  1. http://en.wikibooks.org/wiki/FOSS_Education
  2. http://www.opensource.org/docs/definition.html
  3. http://www.gnu.org/philosophy/free-sw.html
  4. http://sourceforge.net/
  5. http://directory.fsf.org/wiki/Main_Page
  6. http://www.opensourcesoftwaredirectory.com/


No comments: