FOSS Notes 1
FOSS Notes 1
Introduction:
Free and Open-Source Software (FOSS) is software that is distributed below a licence that permits users
to run, modify, and distribute the software and its supply code freely. The term "free" in FOSS refers to
the liberty to use the software program for any reason, to observe and alter the software program's supply
code, and to distribute copies of the software program to others.
The term "open source" emphasizes the collaborative, transparent, and network-pushed development
procedure that underlies FOSS initiatives. A few examples of FOSS encompass the Linux working
machine, the Apache net server, and the Mozilla Firefox net browser. FOSS is often contrasted with
proprietary software programs, which are commonly advanced and dispensed by way of a single
employer and is situated in restrictive licensing phrases that restrict users' freedom to use, regulate, and
distribute the software program.
Open Source:
The term open source refers to something people can modify and share because its design is publicly
accessible.
The term originated in the context of software development to designate a specific approach to creating
computer programs. Today, however, “open source” designates a broader set of values — what we call
“the open source way.” Open source projects, products, or initiatives embrace and celebrate principles of
open exchange, collaborative participation, rapid prototyping, transparency, meritocracy, and community-
oriented development.
Free and open-source software (FOSS) allows users and programmers to edit, modify or reuse the
software’s source code. This gives developers the opportunity to improve program functionality by
modifying it.
The term “free” indicates that the software does not have constraints on copyrights. The term “open
source” indicates the software is in its project form, enabling easy software development from expert
developers collaborating worldwide without any need for reverse engineering.
Closed source software refers to the computer software which source code is closes means public is not
given access to the source code. In short it is referred as CSS. In closed source software the source code is
protected. Only the original authors of software can access, copy, and alter that software. In a case with
closed source software, you are not purchasing the software, but only pay to use it. The price of closed
source software is high and users need to have valid and authenticated license to use the software. As is
issues an authenticated license so it also put a lot restriction on users based on usability and modification
of software.
Some examples of closed source software are Skype, Google earth, Java, Adobe Flash, Virtual Box,
Adobe Reader, Microsoft office, Microsoft Windows, WinRAR, mac OS, Adobe Flash Player etc.
History of FOSS
With the rise of personal computers in the early 70’s, there was a boom in the people who started getting
involved in the software industry. With hardware and software products separated, software as such was
ready to develop as a market. But many software vendors were concerned about the viability of this
market, as it was unclear which legal protection they would receive. As a result of which, a consensus
emerged amongst lawmakers and lobbyists to copyright software. The US and Europe were quick to
adopt these laws, wherein each copy of the software was treated as a book: the vendors got a royalty of
each copy sold. But between the lines of the law, there were a few things that got many frustrated with
proprietary software.
For one, while software was sold as a ‘book’ by the vendors, they did not actually sell the software. They
included long legal documents that solemnly declared that the software was merely licensed and that the
user had no rights other than as provided in this license. There were restrictions on the right to reverse
engineer a program. That is, I cannot look at the program, deconstruct it, and clone a program with the
features I feel will improve it.
As a general rule, buyers of a product are expected and permitted to examine what they buy and to
discover how it works, but nothing beyond that. The big problem in this scenario here is, buyer cannot
find out how to fix a bug when it arises. Buyer has to go to the vendor, who can access the code, and they
will charge me for maintenance fees for fixing that bug.
As a result, companies started closing out their source code to the outside world, treating it as their
intellectual property. This frustrated MIT hacker, Richard M Stallman, to a great extent and felt that this
‘hoarding’ of software cannot be allowed. Another trigger for the FOSS movement was when a company
called Symbolics took an open source language called LISP (used by MIT Artificial Labs) and then made
it proprietary. These laid the seeds for the FSF (Free Software Foundation).
To meet the definition of "free software", the FSF requires the software's licensing respect the civil
liberties / human rights of what the FSF calls the software user's "Four Essential Freedoms".
1. The freedom to run the program as wish, for any purpose (freedom 0).
2. The freedom to study how the program works, and change it so it does your computing as
wish (freedom 1). Access to the source code is a precondition for this.
3. The freedom to redistribute copies so you can help others (freedom 2).
4. The freedom to distribute copies of your modified versions to others (freedom 3).
By doing this, the whole community get a chance to benefit from the changes. Access to
the source code is a precondition for this.
Because the GPL is a strong copyleft license, any software that is written based on any GPL component
must be itself released as open source under the same license or a later version. Projects that use these
components, no matter the percentage of total code, are legally required to release the complete source
code plus all of the rights to modify and distribute that code. This includes other components your project
might use, such as linked libraries, which means you cannot usually mix GPL’ed code with other copyleft
licensed code.
The trigger for this reciprocity obligation is distribution. If you use or modify GPL’ed code but do not
distribute it to the public, there is no legal requirement to make that source code available to the public.
This creates something of a loophole when using GPL’ed code to create Software as a Service (SaaS)
applications that are never actually distributed to the user. The Affero GNU General Public License
(AGPL) closes that loophole and explicitly considers users interacting with software over a network to be
distribution.
More permissive versions of the GPL exist, including the Lesser GNU Public License (LGPL) and the
GPL with an added classpath exception clause. Implemented properly, you can use unmodified versions
of software (usually libraries) falling under these weak copyleft licenses without an obligation to release
the rest of your code under a GPL.
The Apache License
The Apache 2.0 License is a popular and widely deployed open source software license released by the
Apache Software Foundation (ASF).
One of the most permissive open source software licenses, the Apache license allows you to release your
modified version of an Apache-licensed product under any license you may choose. You are permitted to
freely use, modify, distribute, and sell software under an Apache License whether your use case is
personal, internal, or commercial.
Unlike other permissive licenses that are applicable only to copyrights and not patents, the Apache
License explicitly grants rights to users that can be applied to both copyrights and patents. The rights
given are perpetual, worldwide, and irrevocable, but also non-exclusive, meaning you can use the licensed
work and so can anyone else.
To redistribute software with any Apache licensed components, you must include a copy of the license,
provide a clear Apache License attribution, and add modification notices to any files you modify.
You can choose to release the modified or derived products under different licenses, but the unmodified
parts of the software must retain the Apache License. Another rule is that you cannot name your modified
version in any way that suggests that the final product is either endorsed or created by the ASF.
Lastly, if you want to add a copyright statement about all of the modifications you’ve done to any
Apache-licensed software, you are free to do so. The Apache License doesn’t require you to release
modified code under the same license so you can choose to add specific license terms and conditions that
govern how others use, reproduce, or distribute your modified code.
The Ms-PL is a short, concise, and straightforwardly written license that allows you to freely reproduce
and distribute original or derivative works of any software that it governs. In doing so, however, you may
not use any contributors’ names, logos, or trademarks. The Ms-PL also protects software authors by
explicitly offering no express warranties or guarantees, meaning authors are not liable if their code
doesn’t work well in some cases.
When distributing software under the Ms-PL, modified or unmodified, in whole or in part, you are not
obligated to distribute the source code. You are, however, required to retain all copyright, patent,
trademark, and attribution notices that were originally present. If you do choose to distribute any portion
of the software, modified or unmodified, in its source code form, you must do so only under the Ms-PL
by including a complete copy of the license in the distribution. If you instead choose to release the code in
a compiled or object code form, you may release it under any compatible license.
The original 4-clause BSD License contains an advertising clause requiring certain acknowledgement of
previous authors in any advertising for software that makes use of BSD licensed code. The most
commonly used BSD license, the 3-clause Modified BSD License, removes the advertising clause and the
2-clause FreeBSD License removes both the advertising and non-endorsement clauses.
You are free to reproduce and distribute any original or derivative works of any software licensed under
the CDDL but you must not remove or make any changes to any copyright, patent, or trademark notices
present in the software. You must also retain any notices of licensing or any descriptive text that gives
attribution to any contributor or the initial author.
When you distribute your software in any form other than source code, you are required to make the
source code of any file containing CDDL’ed code, whether modified or in its original form, available
under the CDDL and to include a copy of the license in the distribution. The executable form and any
project files not containing CDDL’ed code may be released under the CDDL or any compatible licenses.
Additionally, for each modification that you make you must identify yourself as a modifier by including a
notice in your modified files.
The CDDL is considered a weak copyleft license as its use does not grant downstream users of the
program the same rights you received by requiring your entire code become open source, like with strong
copyleft licenses such as the GPL. Only files including CDDL’ed code or modifications to CDDL’ed
code are under any copyleft obligations. Other files and the executable of the whole program can be under
any license that is compatible with the CDDL.
The Eclipse Foundation makes it clear that “merely interfacing or interoperating” with an Eclipse plugin
does not make your code a derivative work of the plugin. As with all weak copyleft licenses, if you wish
to use a different license for the rest of your code, keeping the EPL’ed code in a separate file is the best
practice, if not a requirement.
The EPL protects the author from possible lawsuits or damages caused if a company used their
component in a commercial product. Any warranties made by a commercial contributor to EPL’ed code is
theirs alone and not that of previous contributors. Like many other open source licenses, the EPL also
includes an explicit patent grant.
MIT License
The MIT License is one of the most permissive and popular licenses out there. There are actually two
variants of the same license that are frequently called “The MIT License”: the Expat License and the X11
License. Being the shorter and first variation, as well as the one the Software Package Data Exchange
(SPDX) identifies as “MIT”, we will refer to the Expat License as the MIT License.
The MIT License includes language expressing that the software is presented as-is and without warranty.
As a permissive license, there is no requirement that modifications to MIT Licensed code be also released
under the MIT License making it a great choice for proprietary and commercial uses. The license’s only
requirement of a user is that the license be included in “all copies or substantial portions of the Software”.
At less than 200 words, that’s just a few lines of comments in the code. There’s a reason the MIT License
accounts for nearly a third of all uses of open source licenses.
Need of FOSS:
First, knowing the software on what you are working boosts your confidence as it gives you the control
over the system. If something goes wrong or you want any specific feature to be added, you can easily
customize the open-source software.
Second, you can learn by watching the source code of the software and in future create an even better one.
Third, with so many brains working on software, the bugs are fixed quicker and faster come the upgrades.
There is one slight problem that open-source software users might encounter is that when someone
modifies the software and you upgrade it, the new source code can clash with your tweaks.
Features of FOSS:
Innovation
Open-source software helps facilitate more rapid innovation as it encourages the sharing of resources and
information that in turn support more technical development. Such software encourages the collaboration
of ideas, resources, and data which has contributed to many of the most essential tech developments of
our generation. Indeed, open source code is increasingly incorporated into many other software products,
allowing developers to save time and effort by leveraging code developed by others. Moreover, it also
helps the software and the code to evolve, improve, and remain relevant while enabling more tech
endeavours.
Freedom
One of the key benefits of open source software is that it is a platform where programmers are provided
with freedom at no substantial cost. With open-source software, organizations and programmers can
operate and use the source code in whatever way they want. Moreover, they can study the software and
curate it according to their requirement for more effective computing. Apart from the original version of
the software, users also have the opportunity to help other developers and programmers to utilize the
open-source software by further redistributing the modified copy.
Integrity
Since the source code of proprietary, close-sourced software cannot be modified or redesigned, it poses a
potential threat of security breaches to those using it. However, with open source software, organizations
have the liberty to analyze the code and make changes to it by adding security-based codes to the
software. Furthermore, the users of open source software have a large user community who collectively
identify and tackle any issues or security vulnerabilities in the software with the help of beta testers for a
safer experience. Open source thereby benefits from many eyes and hands.
Continuity
A major reason why organizations prefer to utilize and optimize open-source software is because of the
business continuity it provides them. According to 67% of IT experts in EMEA, open-source software is
more efficient and performs better in business continuity than proprietary software. By being readily
available and accessible, companies do not have to delay operations to construct and code software from
scratch, which saves time and cost, while enhancing employees’ effectiveness.
Giving Back to the Community
Open-source software is beneficial to many people. Individual programmers can utilize the accessible
software as a learning medium to improve their coding skills. Moreover, businesses make use of it and
modify it for the development of their own services and technology, redistributing the modified versions
to other developers to continue the chain. Consumers and society as a whole benefit from the improved
and refined technology and commodities that are created due to the flexibility of open data and open-
source software.
Advantages:
Flexibility: Users can make changes in the software as per their needs. Furthermore, a user can add
additional features. On the other hand, one can also delete the useless features.
Stability: A good advantage is that even if the developers of the software stops looking after the
software it will not disappear. Since there are many people in the open source community to look after
the software. Hence, users can use the software for the long term.
Security and Reliability: Since several people are developing and enhancing the software. Therefore,
software is more secure and reliable.
Easier Evaluation: As the source code is available. therefore, users can easily view the code. hence,
they can understand the bugs and capabilities of the software.
Better Support: Since, many number of people like developers, companies, and other users are dealing
with the software. Hence, it is quite easy to get any kind of technical support.
Possible Savings: such software usually have a low cost in comparison to other software. Hence they
are easily affordable.
Disadvantages:
Applications of FOSS:
Some of the best open-Source Applications are as follows:
1. Linux is widely used for servers and devices.
2. Mozilla Firefox and Chromium are open-source web browser choices.
3. LibreOffice and Apache OpenOffice are free alternatives to Microsoft Office.
4. WordPress and Joomla aid in website creation.
5. GIMP is for image editing, and Blender is for 3D content creation.
6. Postgre SQL and MySQL manage data in databases.
7. Apache and Nginx host websites and distribute traffic.
8. Eclipse and Git are development tools.
9. QGIS assists with maps and geographic data.
Popular FOSS:
Mozilla Firefox:
Firefox is a free, Open Source web browser developed by the Mozilla Foundation and Mozilla
Corporation in 2004. The Firefox web browser can be used with Windows, Mac and Linux operating
systems, as well as Android and iOS mobile devices. Firefox uses the Google search page as its
homepage and default search engine.
Firefox is guided by The Mozilla Manifesto, a set of principles the nonprofit Mozilla Foundation
developed. Firefox's privacy and open source principles make it a unique web browser. Unlike Apple's
Safari and Google Chrome, Firefox does not sell users' personal data to advertisers or to services like
Google.
Firefox introduced and popularized many of today's standard browser features. When the Firefox browser
was first released under the name Mozilla Firefox, it was one of the first browsers to offer a bookmark
toolbar and tabbed browsing, which lets users open tabs in the same window and switch back and forth
among them. Mozilla Firefox also offered a pop-up blocker and a plugin that let developers add new,
downloadable features known as add-ons or browser extensions.
In 2016, Firefox announced Firefox Quantum, an update to its search engine that improved user
experience and processing power. Quantum transitioned Firefox to a multiprocess architecture that uses
less memory with many browser tabs open.
Features of Firefox
The Firefox Quantum browser comes with several features, including the following:
Extensions and add-ons are security and ease-of-use features Firefox's open source community
creates. To Google Translate is a Firefox extension that uses Google Translate to automatically
translate pages into a user's desired language.
Multiprocess memory use enables Firefox Quantum to use less memory than previous versions when
users have multiple webpages open in tabs.
Private browsing with improved privacy features automatically erases passwords, cookies and history
after a browsing session. Firefox's private browsing modes also block hidden trackers embedded in
ads that slow performance.
Ad blocker prevents ads from showing on webpages, including video ads, ads with trackers and third-
party cookies.
Customization settings let users change their browser's colors and add themes, such as Space Galaxy,
which includes images and colors associated with space.
Fingerprint blocking prevents companies from creating unique profiles of users based on their
hardware, software, add-ons, default web browser and other preferences, such as fonts. Companies
use these fingerprints for targeted advertising campaigns and for surveillance capitalism
Syncing enables users to access their Firefox settings and data, including passwords and open tabs,
across multiple devices by storing their data on a private, encrypted key on Firefox servers.
Picture-in-Picture lets users watch videos while on other pages. It pops a video into a separate
window and pins it to the screen.
Password manager stores users' passwords and syncs them across devices.
Linux:
Linux is the best-known and most-used open-source operating system. As an operating system, Linux is
software that sits underneath all of the other software on a computer, receiving requests from those
programs and relaying these requests to the computer’s hardware.
The OS manages the computer’s hardware and software resources and provides services to programs
running on the computer. The OS is an interface or a layer between the applications running on the
computer and the hardware. Users start and stop most applications. Linux starts when the computer turns
on and stops when the computer turns off.
Windows and macOS are proprietary software systems. Linux is an Open-Source operating system. The
OpenSource.org license applies to open-source software. It grants everyone the right to use, study,
change, and distribute it to anyone for any purpose. Proprietary software, also known as Closed Source
software, has commercial licenses. It does not share the source code, and the user does not have access to
look at or change the program.
LibreOffice:
LibreOffice is a powerful, free and private office suite - the successor project to OpenOffice - used by
millions of people around the world. It's compatible with Microsoft Office (365) and is backed by a non-
profit organisation, The Document Foundation. LibreOffice includes Writer (word processing), Calc
(spreadsheets), Impress (presentations), Draw (vector graphics and flowcharts), Base (databases), and
Math (formula editing).
LibreOffice helps to create documents with professional and clean look, regardless of their purpose: a
letter, a master thesis, a brochure, financial reports, marketing presentations, technical drawings and
diagrams. LibreOffice makes your work look great while you focus on the content, thanks to its powerful
styles system and structuring tools.
LibreOffice is compatible with a wide range of document formats such as Microsoft Word (.doc, .docx),
Excel (.xls, .xlsx), PowerPoint (.ppt, .pptx) and Publisher. But LibreOffice goes much further with its
native support for a modern and open standard, the Open Document Format (ODF).
Beyond the many features shipped by default, LibreOffice is easily extensible through its powerful
extensions mechanisms. LibreOffice is Free and Open Source Software (FOSS), available for everyone to
use, share and modify, and produced by a worldwide community of hundreds of developers. Our software
is tested and used daily by a large and devoted user community – which give rise to new talent and new
ideas.
LibreOffice is the actively developed successor project to OpenOffice, which in turn was based on
StarOffice. Many years of development have gone into the software, and it has been used in its various
incarnations by millions. Today, LibreOffice is by far the most active continuation of the OpenOffice.org
codebase, with releases every six months and hundreds of contributors. Also, LibreOffice uses libraries
from the Document Liberation Project, handing control back to content creators.
Anyone can download and use LibreOffice for free, but it doesn't include technical support or other value-
added services.
Python:
Python is a set of instructions that we give in the form of a Program to our computer to perform any
specific task. It is a Programming language having properties like it is interpreted, object-oriented and it is
high-level too. Due to its beginner-friendly syntax, it became a clear choice for beginners to start their
programming journey. The major focus behind creating it is making it easier for developers to read and
understand, also reducing the lines of code.
Features of Python
Python has plenty of features that make it the most demanding and popular. Let’s read about a few of the
best features that Python has:
1. Web Development
Developers prefer Python for web Development, due to its easy and feature-rich framework. They can
create Dynamic websites with the best user experience using Python frameworks. Some of the
frameworks are -Django, for Backend development and Flask, for Frontend development.
2. Data Science
Data scientists can build powerful AI models using Python snippets. Due to its easily understandable
feature, it allows developers to write complex algorithms.
3. CAD
Python is suitable programming language to work on CAD (computer-aided designs) designs, to create
2D and 3D models digitally. Using Python for CAD development allows easy deployment and integration
across cross-platforms.
5. Game Development
Python can also be used by developers to build games using Pygame to develop 2D and 3D games.
PHP:
PHP is an open-source, server-side programming language that can be used to create websites,
applications, customer relationship management systems and more. It is a widely-used general-purpose
language that can be embedded into HTML. This functionality with HTML means that the PHP language
has remained popular with developers as it helps to simplify HTML code.
PHP programming can be used to create most things that a software developer needs. However, there are
three main areas in which it thrives.
Server-side scripting
Server-side Script is PHP’s main strength. If you are just learning to code and want to explore server-side
scripting, PHP is a great language to learn. To get cracking with PHP server-side scripting you’ll need to
have a PHP parser, web server and web browser.
Command-line scripting
Command-line scripting is ideal for scripts made using cron (Linux) or Task Scheduler (Windows). It is
also great for simple text processing.
Advantages of PHP
PHP has endured as a popular programming language for almost three decades owing to the number of
benefits it offers users and developers. The most significant of these are:
1. It is cross-platform: As mentioned above, PHP can be run on any major operating system, so you
don’t have to worry about compatibility. This also means that you can work on a project team and not
have to worry about members being able to access code!
2. It’s open-source: Open source means that PHP is a free programming language, so you don’t have to
worry about additional costs when building your project
3. Many developers understand it: The longevity of PHP means there’s already a large community out
there to support you, and a large amount of legacy code to help you get started with projects.
4. It works brilliantly with HTML: PHP can help simplify your projects and works seamlessly with this
dominant programming language.
5. As a language, it is relatively easy to learn: Because of its simplicity, PHP is quicker and easier to
pick up than some other alternatives.
6. There are plenty of tools available: There are tools to help you with just about anything for PHP, from
integration, code hinting, syntax highlighting and more, there is a lot of support for you.
7. It offers great load times for websites: With website performance becoming more and more tied to
speed, PHP’s quick load can really help you succeed.
Blender:
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—
modeling, rigging, animation, simulation, rendering, compositing and motion tracking, even video editing
and game creation. Blender is well suited to individuals and small studios that benefit from its unified
pipeline and responsive development process.
Blender is cross-platform and runs equally well on Linux, Windows, and Macintosh computers. Its
interface uses OpenGL to provide a consistent experience. As a community-driven project under the GNU
General Public License (GPL), the public is empowered to make small and large changes to the code
base, which leads to new features, responsive bug fixes, and better usability. Blender has no price tag, but
anyone can invest, participate, and help to advance a powerful collaborative tool.