Free and Open Source Software
Free and Open Source Software
Objective:
Open Source has acquired a prominent place in software industry. Having knowledge of Open Source and its
related technologies is an essential for Computer Science student. This course introduces Open Source
methodologies and ecosystem to students.
Expected Learning Outcome:
1) Upon completion of this course, students should have a good working knowledge of Open Source
ecosystem, its use, impact and importance.
2) This course shall help student to learn Open Source methodologies, case studies with real life
examples.
Introduction
Introduction: Open Source, Free Software, Free Software vs. Open Source
software, Public Domain Software, FOSS does not mean no cost. History:
BSD, The Free Software Foundation and the GNU Project.
Methodologies
Open Source History, Initiatives, Principle and methodologies. Philosophy : 15L
Unit I
Software Freedom, Open Source Development Model Licenses and Patents:
What Is A License, Important FOSS Licenses (Apache,BSD,GPL, LGPL),
copyrights and copy lefts, Patents Economics of FOSS : Zero Marginal Cost,
Income-generation opportunities, Problems with traditional commercial
software, Internationalization
Social Impact
Open source vs. closed source, Open source government, Open source ethics.
Social and Financial impacts of open source technology, Shared software, Shared
source, Open Source in Government.
Case Studies
Example Projects: Apache web server, GNU/Linux, Android, Mozilla (Firefox),
Wikipedia, Drupal, wordpress, GCC, GDB, github, Open Office. Study:
Understanding the developmental models, licensings, mode of
funding,commercial/non-commercial use. Open Source Hardware, Open Source
Design, Open source Teaching. Open source media.
Collaboration, Community and Communication
Unit II Contributing to Open Source Projects 15L
Introduction to github, interacting with the community on github,
Communication and etiquette, testing open source code, reporting issues,
contributing code.
Introduction to wikipedia, contributing to Wikipedia Or contributing to any
prominent open source project of student’s choice.
Starting and Maintaining own Open Source Project.
Unit Structure
1.0 Abstract
1.1 Introduction
1.2 Free Software
1.3 FOSS does not mean no cost
1.4 Free Software vs. Open Source software
1.5 Public Domain Software
1.6 History of BSD
1.7 The Free Software Foundation and the GNU Project
1.8 Summary
1.9 References
1.0 ABSTRACT
Open source software is the software in which users have the ability to run,
copy, distribute, study, change, share and improve for any purpose. Open source
library software’s doesn’t need the initial cost of commercial software and enables
libraries to have greater control over their working environment. Library
professionals should be aware of the advantages of open source software with
involvement of its development. One should have basic knowledge about the
selection, installation and maintenance. Open source software requires a greater
degree of computing responsibility than commercial software. Library
professionals do not think seriously about the advantages of open source software
for automation and hence are reluctant to use it. They do not have the expertise to
support open source software.
1.1 INTRODUCTION
A software for which source code is freely available with a license to study,
change and further distributed to any other individual for any purpose is called open
source software. Open Source Software is something which you can modify as per
your needs, share with others without any licensing violation burden. When we
say Open Source, source code of software is available publicly with Open Source
licenses which allows you to edit source code and distribute it.
The key fact that makes open source software (OSS) different from
proprietary software is its license. As copyright material, software is almost always
licensed. The license indicates how the software may be used. OSS is unique in that
it is always released under a license that has been certified to meet the criteria of
the Open Source Definition. In contrast, creators of proprietary software usually do
not make their source code available to others to modify.
Free software means software that respects users' freedom and community.
Roughly, it means that the users have the freedom to run, copy, distribute, study,
change and improve the software. Free software may be packaged and distributed
for a free; the "free" refers to the ability to reuse it, modified or unmodified, as part
of another software package. As part of the ability to modify, users of free software
may also have access to and study the source code. Thus, “free software” is a matter
of liberty, not price. To understand the concept, you should think of “free” as in
“free speech,” not as in “free beer”. We sometimes call it “libre software,”
borrowing the French or Spanish word for “free” as in freedom, to show we do not
mean the software is gratis.
A free program must offer the four freedoms to any user that obtains a copy
of the software, provided the user has complied thus far with the conditions of the
free license covering the software. Putting some of the freedoms off limits to some
users, or requiring that users pay, in money or in kind, to exercise them, is
tantamount to not granting the freedoms in question, and thus renders the program
nonfree.
“Free” and “open source” are two terms commonly used interchangeably in the
software industry. Yet, for many developers, the difference between the two is not
always clear. This can lead to confusion about how to use each source code, as well
as how to make source code available for others.
The copyright protection an item in the public domain may have expired,
been released by the author, or never existed in the first place. Public domain
software has no ownership and is available for use, modification and
commercialization by anyone. Typically, public domain software is intentionally or
voluntarily uncopyrighted, unpatented and is unrestricted by its developer/author.
It is different from free software and freeware that does has copyrights and patents
associated with it.
Some well-known software that is still in use today had its start in the next
version, 2BSD, such as vi and csh, which saw approximately 75 copies distributed.
In 1978 a new more powerful VAX computer was installed at Berkeley and
provided a new target for BSD software. Over time large parts of the Operating
System had to be replaced, for instance the initial Unix port to the VAX architecture
did not take advantage of the VAX’s virtual memory capabilities so much of the
kernel was rewritten. The release of 3BSD in 1979 contained this new kernel and
ports of the other BSD programs to the VAX architecture.
As BSD spread to more and more institutions, users began adding additional
functionality and programs, and sending those back to the team at Berkeley to be
included in the next release of BSD. This was the start of the open source
movement, before it had a name.
In 1989 a new release called Network Release 1 or Net/1 was made under
the BSD license. This contained work that was done on implementing the OSI
network protocol stack and new TCP/IP algorithms. It was motivated by the
increasing cost of AT&T software licenses and several groups had started to express
interest in a separate release of just the network code.
After Net/1 Keith Bostic proposed that more of the system be released under
the BSD license and so he lead a project to reemployment most of the standard Unix
utilities without any AT&T code.
Within the next 18 months, all of the AT&T utilities had been rewritten and
only a few AT&T files remained in the kernel. In 1991 Network Release 2 or Net/2
was made available without those files, resulting in nearly a complete operating
system that was freely distributable.
In 1992, Bill and Lynne Jolitz, both Berkeley alumni, release 386BSD 0.0, the
first version of BSD for the Intel 386, a computer many had in their homes. This
was made possible by Keith Bostic and partially influenced by Richard Stallman.
The FSF
The FSF (Free Software Foundation) was founded in the early eighties by
Richard M. Stallman, researcher at MIT's Artificial Intelligence laboratory. The
foundation's objective is to develop free software. That is software that you can
freely copy, use, modify, and redistribute as you wish. The only condition is that
the source code of these programs must be freely available on demand.
The GPL
The GPL (General Public License) specifies the conditions under which all
GNU software is ditributed. The LGPL (Library General Public License) was the
corresponding license used for sub-program libraries (please see Why you shouldn't
use the Library GPL for your next library for an explanation). The GNU Lesser
General Public License is the new replacement for the LGPL.
Roughly, these licenses specify that GNU software may be copied,
modified, and redistributed in any manner as long as the source code remains freely
available.
In addition to the main GNU programs, there are GNU versions of most of
the UNIX utilitaires. The GNU versions are often more powerful and reliable than
their proprietary counterparts.
Most of the FSF's income used to come from sales of copies of free software
and of other related services (CD-ROMs of source code, CD-ROMs with binaries,
nicely printed manuals, all with the freedom to redistribute and modify), and Deluxe
Distributions (distributions for which we built the whole collection of software for
the customer's choice of platform). Today the FSF still sells manuals and other gear,
but it gets the bulk of its funding from members' dues. You can join the FSF
at fsf.org.
We funded development of these programs because the GNU Project was not
just about tools or a development environment. Our goal was a complete operating
system, and these programs were needed for that goal.
1.8 SUMMARY
In this chapter we learned, software remains free of charge and they make
money by helping others to install, use and troubleshoot it. Free and OSS
development is emerging as an alternative approach for developing large software
systems. New types and new kinds of software processes are emerging within
F/OSSD projects, as well as new characteristics for development project success,
when compared to those found in traditional industrial software projects and those
portrayed in software engineering textbooks. As a result, F/OSSD offers new types
and new kinds of processes to research, understand, improve, and practice.
1.9 REFERENCES
• https://www.howtogeek.com/129967/htg-explains-what-is-open-source-
software-and-why-you-should-care/
• https://www.synopsys.com/glossary/what-is-open-source-software.html
• https://dwheeler.com/oss_fs_eval.html
• https://opensource.com/resources/what-open-source
• https://ifap.ru/library/book105.pdf
• Monika Sharma, learn about the social and financial impacts of Open Source,
collaborative Organization flourishing in recent years. on February 18, 2018
• Bhattacharya, I, Sharma, K (2007). India in the knowledge economy
• https://opensource.org/history
❖❖❖❖
Unit -2
METHODOLOGIES OF FREE AND OPEN
SOURCE SOFTWARE
Unit Structure
2.0 Open Source History
2.1 Initiatives
2.2 Principles and methodology of the open source
2.3 Philosophy: Software Freedom
2.4 Open Source Development Model Licenses and Patents
2.5 Important FOSS Licenses
2.6 Copyrights and Copylefts
2.7 Patents Economics of FOSS
2.7.1 Zero Marginal Cost
2.8 Income-generation opportunities
2.9 Problems with traditional commercial software
2.10 Internationalization
2.11 Summary
2.12 References
Free software (later renamed “open source software”) appeared even before
people started thinking in terms of proprietary software, at a time when software
development was ruled by open source principles. In the 1960s and 1970s, software
programming was mainly performed in both academic and corporate laboratories
by scientists and engineers who freely gave, exchanged and modified software. In
the early 80s, as software programming increasingly turned proprietary, Richard
Stallman founded the Free Software Foundation (FSF) to define and 4 diffuse legal
mechanisms and conceptual principles of what he called “free software”. By writing
the GNU Manifesto (Stallman, 1985), he communicated his ideological view of the
nature of intellectual property rights as regards software, and started attracting
convinced developers to join him in his GNU Project (GNU stands for “GNU’s not
UNIX”). In 1989, the FSF released the GNU General Public License (GPL) version
1 (the updated version 2 was released in 1991) which legalizes copyleft mechanisms
and grants end-user’s freedoms in software copies and derivative works.
1. The right to full access to the source code. When a computer programmer sees
how a piece of software actually works, as specified in the source code, they can
fully understand the inner workings and can intelligently modify the software as
they deem appropriate
2. The right for anyone to run the program for any purpose without restriction. There
are no restrictions against commercial, military, foreign, or any other use, and
discrimination against users for any reason is expressly forbidden.
3. The right to modify the source code. This includes absorbing the software, in
whole or in part, into other pieces of software created by other developers.
4. The right to distribute both the original software and the modified software. A
key difference between “free software” and “freeware” is that while freeware
generally permits 5 and encourages free distribution of the software, it does not
permit sale of the distributed software beyond reasonable distribution costs; free
software, in contrast, permits resale at any price.
5. The right to know about their open source rights: The open source license must
be prominently displayed and distributed to users, so that they are aware of their
rights (including access to the source code). Practically, since users are aware that
they can obtain the source code for free, the sale price of OSS tends to be zero, or
quite low.
While the preceding five rights constitute open source software, the FSF’s
GPL, the first legal document to license open source software, goes further. The
GPL grants users and developers these rights with the intention that developers
would modify the software and share it with others with similar liberality, and in
accordance with Stallman’s personal beliefs on the ethical rightness of sharing
software, the GPL assures sharing by further incorporating the concept of
“copyleft”. Copyleft is an obligation that the distributor of OSS agrees to in order
to receive the privileges mentioned above:
These copyleft terms are critical to the very existence of OSS communities.
When Richard Stallman posted his manifesto and invited software developers to
join him in his crusade for free software, there was no lack of sympathetic and
willing hackers who wanted a return to the days of free sharing. However, there
was a grave concern that, corporate interests could 6 easily take these programs,
add their proprietary extensions, and withdraw the software from public access.
With its copyleft mechanism, the GPL guaranteed that any person or corporation
who wanted to benefit from the liberal efforts of computer programmers would be
legally bound to share their work in the same spirit of camaraderie. Considering the
climate in which the free software movement was founded, it is unlikely that the
movement could have gotten off the ground without such a radical clarion call to
mobilize devoted followers in the first place.
2.1 INITIATIVES
A major paradigm shift occurred in 1998, when Bruce Perens and Eric
Raymond expressed their suspicion that firms may not be convinced by GPL due
to Stallman’s term, “free” software, “which might understandably have an ominous
ring to the ears of business people”. The “open source” software movement was
created based on the integrating of all the previous licensing that had been prior
designed. As a result, a major chasm appeared between Stallman’s free software
view, which was more ideological and philosophical, and Perens/Raymond’s open
source view, whose purpose was more business-oriented. The latter was 7 aimed at
fighting against the evil “proprietary software” by convincing firms to rely on OSS.
Several major OSS projects have marked people’s mind in such software
revolution. The Apache web-server project started in early 1995 and has become
the most popular Web server software, controlling over 60 percent of the market,
much more than Microsoft and Netscape both combined. Inspired by Eric
Raymond’s paper “The Cathedral and the Bazaar”. Netscape, one of the main actors
in the Internet browser industry, decided to release its source code by creating
Mozilla, its first open source version of its former Communicator. In November
2004, the Mozilla Foundation announced the worldwide availability of the Mozilla
Firefox 1.0 web browser.
Today, all major hardware and software vendors have at least forayed into
the open source approach. For example, Apple Computer surprisingly followed this
model in 2000 when they released the kernel of their Unix-based Mac OS X
operating system to the open source community as Darwin 1.0. In 2005, IBM
announced their plan to spend $100 million over the next three years to build
support for Linux into desktop applications for its Workplace software. Meanwhile,
IBM has planned to spread Linux worldwide. In 2004, IBM concentrated on
implementing Linux in Brazil, Russia, India and China. Since 2005, the company
has planned to increase its efforts in those countries but will also begin extend its
programs in Eastern Europe.
Collaboration: When we're free to participate, we can enhance each other's work
in unanticipated ways. When we can modify what others have shared, we unlock
new possibilities. By initiating new projects together, we can solve problems that
no one can solve alone. And when we implement open standards, we enable others
to contribute in the future.
Release early and often: Rapid prototypes can lead to rapid discoveries. An
iterative approach leads to better solutions faster. When you're free to experiment,
you can look at problems in new ways and seek answers in new places. You can
learn by doing.
Inclusive meritocracy: Good ideas can come from anywhere, and the best ideas
should win. Only by including diverse perspectives in our conversations can we be
certain we've identified the best ideas, and decision-makers continually seek those
perspectives. We may not operate by consensus, but successful work determines
which projects gather support and effort from the community.
Open-source advocates claim that giving users the source code reduces the
time needed for downstream defect correction—the person who first experiences
the problem can also debug it.—But they have not published any data to support
their assertion that this approach reduces overall defect correction costs. For this
open source approach to work, large numbers of users have to be both interested in
and capable of debugging source code (operating system code, if the system in
question is Linux), and obviously doesn’t scale beyond a small cadre of highly
motivated programmers.
About 1,200 programmers have contributed bug fixes and other code to
Linux. What this means in practice is that if a bug is reported in Linux, a couple
dozen programmers might begin looking for it, and many bugs are corrected within
hours. From this, open-source advocates conclude that large numbers of reviewers
lead to “efficient” development.
Open source is most applicable when you need to trade efficiency for speed
and efficacy. This makes it applicable to mass-distribution products like operating
systems where development cost hardly matters and reliability is paramount. But it
also suggests that open source will be less applicable for vertical-market
applications where the reliability requirements are lower, profit margins are slim
enough that development cost does matter, and it’s impossible to find 1,200 people
to volunteer their services in support of your application.
A program is free software if the program's users have the four essential
freedoms
• The freedom to run the program as you wish, for any purpose (freedom 0).
• The freedom to study how the program works, and change it so it does your
computing as you wish (freedom 1). Access to the source code is a precondition
for this.
• The freedom to redistribute copies so you can help others (freedom 2).
• The freedom to distribute copies of your modified versions to others (freedom
3). By doing this you can give the whole community a chance to benefit from
your changes. Access to the source code is a precondition for this.
Freedom 1 includes the freedom to use your changed version in place of the
original. If the program is delivered in a product designed to run someone else's
modified versions but refuse to run yours — a practice known as “tivoization” or
“lockdown”, or (in its practitioners' perverse terminology) as “secure boot” —
freedom 1 becomes an empty pretense rather than a practical reality. These binaries
are not free software even if the source code they are compiled from is free.
You should also have the freedom to make modifications and use them
privately in your own work or play, without even mentioning that they exist. If you
do publish your changes, you should not be required to notify anyone in particular,
or in any particular way.
What is a Licence?
The simplest explanation is that open source licenses are legal and binding
contracts between the author and the user of a software component, declaring that
the software can be used in commercial applications under specified conditions.
The license is what turns code into an open source component. Without an open
source license, the software component is unusable by others, even if it has been
publicly posted on GitHub.
Each open source license states what users are permitted do with the
software components, their obligations, and what they cannot do as per the terms
and conditions. This might sound pretty straight forward, but there are over 200
open source licenses out there so good luck keeping them all organized. Varying in
complexity and requirements, it is up to organizations to choose which licenses are
most compatible with their policies to ensure that they remain compliant.
The main problem in this context is that open source licenses are subjective.
Their interpretation depends on the technical usage of the licensed software.
Therefore, it’s difficult to determine the legal risks of using open source software,
especially for developers, who are not usually legal experts. What developers need
is a broad classification of licenses based on the risks they pose in terms of legal
compliance.
GNU General Public License is the most popular open source license
around. Richard Stallman created the GPL to protect the GNU software from
becoming proprietary, and it is a specific implementation of his "copyleft" concept.
GPL is a copyleft license. This means that any software that is written based
on any GPL component must be released as open source. The result is that any
software that uses any GPL open source component (regardless of its percentage in
the entire code) is required to release its full source code and all of the rights to
modify and distribute the entire code.
There has always been some confusion regarding what constitutes a ‘work
based on’ another work, which in turn triggers the GPL reciprocity obligation. The
FSF tried to add more clarity to GPLv3 as to when the reciprocity obligation is
triggered. The FSF even wrote a new GPL license, the Affero license, to address a
specific confusion referred to as the “ASP loophole”.
In addition, the FSF tried to increase the compatibility of the GPLv3 with
other licenses. To combine two codes into a larger work, both the programs must
permit it. If such rights are granted by both the programs' licenses, they are
compatible. By making the GPLv3 more compatible, the FSF expanded
development options.
The Apache Group (later named the Apache Software Foundation) released
the first version of its license in 1995, but it’s rare that you’ll come across
components that still carry this license.
In 2000, when Berkeley accepted the argument put to it by the Free Software
Foundation and retired their advertising clause from the BSD license and formed
the modified BSD license, Apache did likewise and created the Apache License
version 1.1.
Removing the advertising clause meant that the advertising materials of the
derivative works of any Apache licensed product were no longer required to include
the Apache License attribution. It became ok to include the attribution in the
documentation alone.
In 2004, the ASF decided to depart from the BSD model a little more radically
and produced the Apache License version 2.0 by granting patents rights and
defining solid definitions of the concepts it uses to make
BSD Licenses or the original BSD License and its two variants - the
Modified BSD License (3-clause), and the Simplified BSD License/FreeBSD
License (2-clause) are a family of permissive free software licenses.
The BSD License lets you freely modify and distribute your software’s code
in the source or binary format as long as you retain a copy of the copyright notice,
list of conditions, and the disclaimer.
The original BSD License or the 4-clause BSD License also contains an advertising
clause and a non-endorsement clause (detailed explanation about these clauses are
offered in the following questions). The modified BSD License or the 3-clause BSD
License was formed by removing the advertising clause from the original BSD
License. Further, the FreeBSD version or the 2-clause BSD License was formed by
removing the non-endorsement clause from the modified BSD License or the 3-
clause BSD License.
When you distribute your software in an executable form (any form other
than source code), you are required to make the source code available as well under
the CDDL. The executable form may be released under the CDDL or any CDDL
compatible licenses.
The source code that you have to make available includes your contributions
as long as they are an addition to, deletion from or modification of the contents of
a file containing the original software – or new files that contain parts of the original
program. That means that if your additions are made in separate and independent
files that do not contain the original code, you do not have to release it under the
CDDL. You may do that if you choose to, but you’re not obliged.
In addition, you must include a copy of the CDDL with any source code that
you distribute. For each modification that you make, you must identify yourself as
the modifier by including a notice in your modified files.
The EPL protects the author from possible lawsuits or damages caused if a
company used his/her component in a commercial product. It also offers a patent
grant.
Copyright
©
Copyright is a bundle of rights granted to a creator providing him with
exclusive rights over his original artistic and literary creation. It is not
necessary that a copyright be registered, it is attached automatically to any
original artistic work. When the idea of a creator is converted to a material
form, the same immediately gets protected under the copyright. For a work to
be copyrighted, it is necessary that the work is original work of literature,
drama, music, or any other art having artistic value. While copyright protects
the material form of an idea it does not protect the idea in itself. It is essential
and of significant importance, that permission is sought and the same is granted
by the copyright owner before it is republished or reproduced.
The bundle of rights granted to the copyright owner includes the rights
to reproduce, copy, publish, communicate, and translate the copyrighted work.
Such a right is a natural right granted to the owner of the artistic work
immediately on the making of the same.
Copylef
Most of the creative works, including software programs and codes,
comes within the domain of copyright protection and therefore can be
copyrighted. However, it is to be noted that software and programming is an
area where already existing programs many-a-times are used as a base to build
new software or program. It is for this reason, many software owners tend to
grant a license to its users a license allowing them to modify and alter their
work. Such permission and license can be referred to as Copyleft.
Patent rights give the holder control over who uses software and for what
purpose. Though software developers can protect their work using both copyrights
and patents, copyrights only protect the code itself. Patents, however, protect the
program's functionality.
Patents are better than copyrights for software developers because they
protect the program regardless of the code and language used. In comparison,
copyrights aren't very practical for developers. If you want to release Open Source
software while retaining some rights, a copyright only gives you power over
someone who steals your work verbatim.
The original idea of a patent was to give the innovator who develops the
idea a monopoly of time in which she/he can benefit by commercial exploitation of
the patent, protect by legal means from other wishing to copy the idea. But long
ago, this has become buried in legal, cultural, administrative and practical
difficulties – and this is making waves. We have been patents being used (as with
copyright) as a means of proxy business-competition – with a recent Wired article
exposing the battle lines of patent-warfare in the smart phone market as the
big player jostle for position – so Apple sues HTC (used in many Android phones),
Nokia sues Apple, Kodak sues Apple, Research in Motion (makers of the
BlackBerry) & Samsung while Palm and Apple argue over patents:
While Free and Open Source is allowed to the end client, there is an expense
related to building up the product. These expenses might be littler than creating
exclusive programming since building up the task under Free and Open Source
permit implies that:
Various online interfaces like Source Forge would offer web facilitating,
content store, mailing records and other basic highlights for nothing.
The expense of promoting a Free and Open Source venture (like introducing
it in the related gatherings) is typically lower.
Creating something under GPL may give free access to top-notch parts (like
QT) that are in any case costly to purchase or not accessible by any stretch of the
imagination.
All things considered; improvement of any product initially requires the
designer time. Without a doubt, extremely famous activities may hope to get an
excellent code commitment for nothing.
First, it ought to be noticed that the business software industry is one of the
biggest and most significant ventures on the planet. The ascent of the Open Source
development doesn't spell the finish of the business software industry. Numerous
individuals contend that business software can be strengthened by the utilization of
open-source strategies. Business software is intended to give an item worth paying
to and its majority is. Regardless of its sticker price, business software is frequently
in demand.
Business products will be refreshed much of the time to mirror the
fluctuating requests of the market and client needs. These necessities can prompt
software rehearses that rework and change the product too as often as possible, or
disperse beta forms as business attempts bringing about high paces of bugs in early
forms.
Some business programs are over structured and written in messy code
prompting enlarged, slow, running projects. Open Source by differentiating is
driven by the necessities of the end clients. Along these lines, their code is regularly
of a predominant bore than that of software engineers in the business condition.
There is likewise generally an extremely broad level of input as the software
engineers test their products with a wide system of individuals.
At the point when source code is accessible, it tends to be checked against
different "secondary passages" and other security openings that might be
deliberately or accidentally left in the closed source programming. In the past, such
gaps have been found in different exclusive items, including software, utilized by
the legislature. Having source code additionally implies that the product can be
effectively ported to run under various processors, gadget or OS.
Another issue with customary business software is its closed nature. There
is generally no or restricted opportunity to alter the copyrighted item.
Additionally, organizations frequently power clients to follow update ways
that they may not wish to follow. Open-source Software empowers the person to
tweak the product to his end needs in all opportunities.
Another vigorously censured part of business software is that clients are
regularly secured to an item because to continue utilizing information documents
you are frequently compelled to keep on utilizing a similar program. If you wish to
impart documents to clients that have overhauled, you frequently need to update
yourself or be discounted as unessential. Since open-source programming permits
contending projects to share various information record types, there is no
motivation to be caught into any one program. If a more current adaptation has
another record group, at that point there regularly are converters that permit clients
of more established variants to keep up their information documents forward-
thinking.
2.10 INTERNATIONALIZATION
2.11 SUMMARY
In this chapter we learned that, while open source software offers a
multitude of benefits, it introduces a whole new level of code management that does
not exist when solely using commercial software. It is critical that an organization
utilizing OSS, or acquiring codebases that contain OSS in a merger or acquisition,
truly understand what is in their code so they can effectively manage and secure it.
The Synopsys solution suite offers complete open source coverage, so you can use
OSS confidently. In short, open source provides a way for companies to
collaborate on technology that’s mutually beneficial.
2.12 REFERENCES
• Monika Sharma, learn about the social and financial impacts of Open Source,
collaborative Organization flourishing in recent years. on February 18, 2018
• Bhattacharya, I, Sharma, K (2007). India in the knowledge economy
• https://opensource.org/history
• https://www.howtogeek.com/129967/htg-explains-what-is-open-source-
software-and-why-you-should-care/
• https://www.synopsys.com/glossary/what-is-open-source-software.html
• https://dwheeler.com/oss_fs_eval.html
❖❖❖❖
Unit -3
SOCIAL IMPACT
Unit Structure
3.0 Open source vs. closed source
3.1 Open source government
3.2 Open source ethics
3.2.1 Ethical Issue with OSS
3.3 Social and Financial impacts of open source technology
3.3.1 Collaborative Organization flourishing in recent years
3.3.1 People starting up their own businesses
3.4 shared software
3.5 Shared source
3.6 Open Source in Government
3.7 Summary
3.8 References
Closed source software is easier to work with for beginners or those who
don’t know how to code. Also, closed source websites are easier and faster to set
up out of the box.
I. FLEXIBILITY
Agencies can tailor open source products, adding to or modifying the code
to fit their specific needs. These modifications can include security patching for
critical vulnerabilities measured in hours. Similar vendor products don’t offer this
flexibility.
II. MATCHES COMPETITORS
Having many sets of eyes on the code means open source tools’ capabilities
and functionality compete exceptionally well with commercial software.
III. AFFORDABILITY
Open source software usually is available at a much lower price point than
buying a commercial product. In all cases, it is free, and valuable support options
are available for popular packages.
V. HIGH QUALITY
Government can be assured of high quality — defined by good testing and
code review — if the open source technology is supported by a solid developer
community.
However, proponents of OSS disagree with this point. They argue that
having multiple sets of eyes on code, and having it open to the public results in
programmers coding better. They claim that the whole culture surrounding OSS
thrives on the developer's desire for recognition of work from colleagues or
utilitarian approach to information and learning and thus they are at least as likely
to produce quality code as their colleagues who earn more salaries through
commercialized software.
• Ownership
Assume that a group of researchers want to use the source code of some
open source software to study metrics of coding. However, this is not the use of the
software that the developers intended. The question that gets raised by this concept
is whether or not researchers would need to ask the developers for permission to
study the code. If they do not need the permission, then the developers might be
discontented with this use and thus might be discouraged from creating new works
and Open Source Software in the future. On the other hand, if they would need the
permission, then it leads to even bigger problems; because of the nature of OSS
there might be hundreds of developers who have worked on the product. This raises
the question of "how far do the researchers need to go in order to gain
permission?" Should they be required to ask every single person who has
contributed to the issue for his/her consent? Should they only ask the initial core
developer team? Where do they draw the line between who they should be required
to ask permission from and who they do not need to? These are some of the
questions that are raised with OSS development with regards to ownership and
permissions.
Furthermore, if researchers do study the code, they can then evaluate which
are the best and worst coders as it is easy to tell which developer has contributed to
which parts of the software through version control. As the code is public
information, it can be argued that publishing this information would also be
legitimate. This, however seems to be an intrusion of privacy. Even if coders have
remained anonymous, it is still publicly known how well or badly they code.
Open source software is the most ethical option for two reasons:
1. The rapid rate at which general purpose computers have and will become
integrated in all aspects of our everyday life.
2. The benefit to the wider community that comes with knowledge sharing and
collaboration.
Open source software is the most ethical option because of the ways
computers have and will become integrated in all aspects of our life. Without access
to the source code, we put our privacy, lives, and the lives of others in danger.
Moreover, our lives and quality of life also depends on our ability to choose what
software runs and is trusted on the devices we own.
When we expose and make free the code that runs on our computers, we
invite others to learn from our knowledge and share alike, with the added benefit
that we often get our software updates faster and with greater regularity. Just as no
one person can spot all of the bugs in a program, no one person can create the most
efficient program. Open source software allows us to select from a variety of diverse
solutions that ultimately improve our quality of life, and provides us with the ability
to modify that software to suit our needs. In a closed source world, we depend on
the manufacturer to make all of the right decisions and to anticipate all of the right
design and security questions, which is a highly unreasonable request.
The value of ethical OSS licenses and next steps support for so-called ethical
OSS licenses is not universal amongst the OSS community and it not surprising that
the recent release of the Hippocratic License has engendered its fair share of bricks
and bouquets. Given accusations by Emke that the OSI has prioritized software
freedom over ethical concerns, it was predictable that the OSI would essentially
assert that the Hippocratic License is not certifiable as a legitimate OSS license
(presumably because it fails to pass two critical Open Source Definition
requirements, namely numbers 5 (No Discrimination Against Persons or Groups)
and 6 (No Discrimination Against Fields of Endeavor). Many ethical licenses may
fail on these grounds, particularly the requirement that an OSS license must not
restrict anyone from making use of the program in a specific field of endeavor, such
as a particular business, or from being used genetic research by way of example.
Critics have also been quick to point out the challenges of ethical OSS
licenses: enforceability, for one (at worst a license can be “revoked,” but it may be
difficult to force anyone to actually change their behaviour or stop using the code),
and practicality (who gets to decide what is an “adversely addictive behaviour”?).
At the same time, ethical OSS pundits such as Chris Jenson have argued that the
GPL was and is also rooted in a strong ideological viewpoint (software should be
free, as in speech) and while such views are now widely accepted, “when it first
appeared it was a very new and strange idea about licensing software, and was met
with a lot of resistance.”
Moreover, many would assert (myself included) that the real value of ethical
OSS licenses is that they are inherently disruptive by bringing attention to these
ethical issues, challenging the status quo (including the Open Source Definition),
and spreading the idea (in Jenson’s words) that software “should be used for the
betterment of the world” and that “as developers we can take responsibility for how
our code is used.” It ultimately may not matter if such licenses gain “official”
certification, and the approval of organizations such as the OSI if they otherwise
have an impact.
Arguably the more narrowly drafted ethical OSS licenses, such as the Anti-
996 License, stand a better chance of being voluntarily adopted (in comparison with
the sprawling Just World License); and the fact that so many code projects and
companies appear to have adopted the Anti-996 License to date is impressive.
Notwithstanding its initial protests, even the OSI may eventually be forced
to reconsider and update its OSI Definition, given that the document dates back to
the 1990s (an eternity in tech years). In an age of increased technology worker
activism, where U.S. employees have successfully pressured their employers to
cease certain kinds of work for the U.S. military (e.g., Google’s aerial drone
imagery analysis), ICE and U.S. Customs and Border Protection, it may be difficult
to fully ignore the potential impact of ethical OSS.
Only time will tell whether certain of the ethical OSS licenses will succeed
or fall into obscurity.
Shared Software means all Software owned or licensed by the Seller and
the Seller Subsidiaries as of the Closing Date that is necessary in order to conduct
the Business substantially in the manner and to the extent currently conducted or
used by Seller in connection with the Business as of the Closing Date (other than
the Transferred Software), where the functionality of such Software is material to
the Business as of the Closing Date and cannot be replaced with Software providing
comparable levels of performance and functionality at a cost of less than $250,000
Any Party shall have the right to bring an Action for infringement,
misappropriation, or other violation with respect to the Shared
Software (“Enforcement Action”) without the consent of the other Party, except
that the Parties may cooperate, at their respective own expense, in any Enforcement
Action with respect to alleged infringement, misappropriation, or other violation of
Shared Software.
At any time upon the disclosing Party’s written request, the receiving Party
shall promptly return to the other Party, or destroy, all Confidential Information of
the disclosing Party obtained by the receiving Party under the Agreement, and all
copies and reproductions thereof, except for Confidential Information related to or
associated with the Shared Software, including but not limited to the source code
for the Shared Software.
However, the Parties shall not file for any intellectual property protection
worldwide for any Shared Software or Software Improvements without written
permission from the other Party obtained in advance of such filing.
Subject to the terms of this Agreement, each Party may use and commercially
exploit the Shared Software for its own benefit in any manner without the consent
of the other Party and without any obligation, accounting, or payment of any fee to
the other Party.
The shared source model offers fewer benefits than the open source model.
It lacks, for example, the collaborative improvement process promoted by the open
source approach. However, even the ability to view source code can be helpful.
Shared source code can help developers ensure compatibility with existing
programs and can make it easier to review source code for security purposes.
Critics have described shared source as a marketing ploy and suggested that
the approach could pose a threat to the purity of the open source model. In a paper
called "Shared Source: A Dangerous Virus," the Open Source Initiative called
Microsoft's shared source program "a trap for the unwary" and warned that
developers who'd been exposed to it should be considered "contaminated" and not
assigned to projects that were competitive with Microsoft products.
1. Open Stack is a set of tools that allows users to create, automate and manage
both public and private clouds at minimal expense. This technology, originally
developed by NASA, is a good example of government developing open source
software to meet a particular agency need, and then putting the software back
into the open source community so others can add to and benefit from it. With
Open Stack, government can set up its own cloud to hold data it doesn’t want
in a public cloud.
2. Jenkins is a continuous delivery tool that builds and tests software after every
change. Once development and testing are complete, Jenkins can deploy new
code to production with the push of a button, so there’s no down time in making
the upgraded product available to constituents.
3. Docker 1.0 was released in mid-2014, and the buzz around it has yet to die
down. This tool “containerizes” applications with everything they need to run,
allowing them to be moved around the cloud and ensuring they will run as well
in one technology environment as in another. Like putting cargo into a container
makes it easier to move from place to place, Docker streamlines the process of
moving from a legacy server to the cloud or moving from one cloud server to
another. This reduces government costs by preventing agencies from being held
captive by an existing cloud provider’s prices.
3.7 SUMMARY
This Chapter analyses the impact of public policies supporting open source
software (OSS). Users can be divided between those who know about the existence
of OSS, the "informed" adopters, and the "uninformed" ones; the presence of
uniformed users yields to market failures that justify government intervention. We
study three policies: i) mandatory adoption, when government forces public
agencies, schools and universities to adopt OSS, ii) information campaign, when
the government informs the uninformed users about the existence and the
characteristics of OSS and, iii) subsidisation, when consumers are payed a subsidy
when adopting OSS. We show that the second policy enhances welfare, the third is
always welfare decreasing while mandatory adoption can be either good or bad for
society depending on the number of informed and uninformed adopters. We extend
the model to the presence of network effects and we show that strong externalities
require "drastic" policies.
3.8 REFERENCES
• Monika Sharma, learn about the social and financial impacts of Open Source,
collaborative Organization flourishing in recent years. on February 18, 2018
• Bhattacharya, I, Sharma, K (2007). India in the knowledge economy
• Gera, S., R. Roy, and T. Songsakul (2006)
• Wheeler, David A. (May 8, 2014). "Why Open Source Software / Free Software
(OSS/FS, FLOSS, or FOSS)
• https://www.includehelp.com
• Golden, B.: Open Source Maturity Model © Navica,
http://www.navicasoft.com/ pages/osmmoverview.htm
• Method for Qualification and Selection of Open Source software (QSOS)
version 1.6 © Atos Origin (April 2006), http://qsos.org/
• https://dwheeler.com/oss_fs_eval.html
❖❖❖❖
UNIT -4
CASE STUDY ON LINUX TECHNOLOGY AND
OPEN SOURCE SOFTWARES
Unit Structure
4.0 Linux and the GNU System:
4.1 Case Study on Android
4.3 Case Study on Mozilla Firefox
4.4 Case Study on Wikipedia
4.5 Case Study on Drupal
4.6 Case Study on WordPress
4.7 Case Study on GCC
4.8 Case Study on GDB
4.9 Case Study on GitHub
4.10 Case Study on Open Office
4.11 Case Study on Licensing
4.12 Case Study on mode of funding
4.13 Case Study on commercial/non-commercial use
4.14 Case Study on Open Source Hardware
4.15 Case study on Open Source Design
4.16 Case Study on Open Source Teaching
4.17 Case Study on Open source media
Many computer users run a modified version of the GNU system every day,
without realizing it. Through a peculiar turn of events, the version of GNU which
is widely used today is often called “Linux”, and many of its users are not aware
that it is basically the GNU system, developed by the GNU Project.
There really is a Linux, and these people are using it, but it is just a part of
the system they use. Linux is the kernel: the program in the system that allocates
the machine's resources to the other programs that you run. The kernel is an
essential part of an operating system, but useless by itself; it can only function in
the context of a complete operating system. Linux is normally used in combination
with the GNU operating system: the whole system is basically GNU with Linux
added, or GNU/Linux. All the so-called “Linux” distributions are really
distributions of GNU/Linux.
Many users do not understand the difference between the kernel, which is
Linux, and the whole system, which they also call “Linux”. The ambiguous use of
the name doesn't help people understand. These users often think that Linus
Torvalds developed the whole operating system in 1991, with a bit of help.
Programmers generally know that Linux is a kernel. But since they have
generally heard the whole system called “Linux” as well, they often envisage a
history that would justify naming the whole system after the kernel. For example,
many believe that once Linus Torvalds finished writing Linux, the kernel, its users
looked around for other free software to go with it, and found that (for no particular
reason) most everything necessary to make a Unix-like system was already
available.
Most free software projects have the goal of developing a particular program
for a particular job. For example, Linus Torvalds set out to write a Unix-like kernel
(Linux); Donald Knuth set out to write a text formatter (TeX); Bob Scheifler set out
to develop a window system (the X Window System). It's natural to measure the
contribution of this kind of project by specific programs that came from the project.
But that is not the deepest way to consider the question. The GNU Project
was not, is not, a project to develop specific software packages. It was not a project
to develop a C compiler, although we did that. It was not a project to develop a text
editor, although we developed one. The GNU Project set out to develop a complete
free Unix-like system: GNU.
Many people have made major contributions to the free software in the
system, and they all deserve credit for their software. But the reason it is an
integrated system—and not just a collection of useful programs—is because the
GNU Project set out to make it one. We made a list of the programs needed to make
a complete free system, and we systematically found, wrote, or found people to
write everything on the list. We wrote essential but unexciting (1) components
because you can't have a system without them. Some of our system components,
the programming tools, became popular on their own among programmers, but we
wrote many components that are not tools (2). We even developed a chess game,
GNU Chess, because a complete system needs games too.
By the early 90s we had put together the whole system aside from the kernel.
We had also started a kernel, the GNU Hurd, which runs on top of Mach.
Developing this kernel has been a lot harder than we expected; the GNU Hurd
started working reliably in 2001, but it is a long way from being ready for people
to use in general.
Fortunately, we didn't have to wait for the Hurd, because of Linux. Once
Torvalds freed Linux in 1992, it fit into the last major gap in the GNU system.
People could then combine Linux with the GNU system to make a complete free
system — a version of the GNU system which also contained Linux. The
GNU/Linux system, in other words.
Making them work well together was not a trivial job. Some GNU
components(3) needed substantial change to work with Linux. Integrating a
complete system as a distribution that would work “out of the box” was a big job,
too. It required addressing the issue of how to install and boot the system—a
problem we had not tackled, because we hadn't yet reached that point. Thus, the
people who developed the various system distributions did a lot of essential work.
But it was work that, in the nature of things, was surely going to be done by
someone.
The GNU Project supports GNU/Linux systems as well as the GNU system.
The FSF funded the rewriting of the Linux-related extensions to the GNU C library,
so that now they are well integrated, and the newest GNU/Linux systems use the
current library release with no changes. The FSF also funded an early stage of the
development of Debian GNU/Linux.
Today there are many different variants of the GNU/Linux system (often
called “distros”). Most of them include nonfree programs—their developers follow
the “open source” philosophy associated with Linux rather than the “free software”
philosophy of GNU. But there are also completely free GNU/Linux distros. The
FSF supports computer facilities for a few of them.
Whether you use GNU/Linux or not, please don't confuse the public by
using the name “Linux” ambiguously. Linux is the kernel, one of the essential major
components of the system. The system as a whole is basically the GNU system,
with Linux added. When you're talking about this combination, please call it
“GNU/Linux”.
Android story
• Android Inc was founded in Palo Alto, California, United States by Andy
Rubin, Rich Miner, Nick Sears & Chris White -- Oct 2003
• Google acquired Android Inc -Aug2005
• The Open Handset Alliance, a consortium of several companies was formed -5
thNov2007
• Android beta SDK released -12thNov2007
Android Versions:
Android Version 2.x.x – Gingerbread (6th December, 2010)
• Google added an intelligent User Interface into this particular Android Version
• New and improved keyboard the for the ease of the uses
• Added the feature of copy/paste
• Power Efficiency for the efficient use of the mobile battery
• Social Network related features added
• NFC or Near Field Communication Support added
• Video Call Support
Besides, the above features that were added onto the Android Version there
were also the ones that were added for the ease of developers. Basically, all the
necessary things that a developer would require for developing anything and
everything related to the android
platforms were added into this Android Version.
At the time of the release of this Android Version, tablets devices were
getting famous in the market, so Android rather took a risky turn which did not go
in their favor. Honeycomb was basically for the purpose of enriching the tablet UI.
The list of features added are as below
A version update of this Android Version was released in the year 2012 that
brought the feature of “Pay as you go” but since the Android Version was not as
famous as it should have been, it did not go viral.
By the time of the release of Android Versions 4.0.x, codenamed Ice Cream
Sandwich. Android had pulled away most of the users from the competitors and
Google totally knew about what to change in their next Android Version. This step
was a crucial one because either people would move away from Android or stick to
it for as long as it exists.
● Google Now
● Voice Search
● Speed Enhancements
● Camera app improvements
● External Keyboards and Gesture mode – improving accessibility
● Lock screen widgets
● 4K resolution support
● Restricted profiles for tablets
● Dial Pad auto-complete
● Shows the percentage of download and the time remaining.
Although, the Code Name was changed from Ice Cream Sandwich to Jelly
Bean but the numeric series had been kept the same as the previous one. And to be
practical there was not much of a difference in the feel of this version.
● Screen Recording
● Translucent System UI
● Better and Enhanced notification access
● Performance improvements
Although, the list of changes might seem shorter than expected but Google
actually made it look like something huge and they did succeed in the process. The
contradictory part is also true, since a lot of people choose other devices over the
Nexus because they arrived earlier and they seemed to be a better buy.
With the release of this Android version it seemed like Kitkat (The previous
Android Version) had not been in the market for long enough to make its way
towards the hearts of the Android users. This version came with the Motorola Nexus
6 from the LG Nexus, which actually made it seem like they must have made more
changes and after using this Android Version you would actually feel like that is
true but that would only be true when it comes to the UI and the keyboard features.
Although this Android Version is still in its immature stage but the features they
have come up with till date are as follows:
● The Android N Developer Preview is already here and this will be followed
by monthly updates until the final version. That final version will likely
come around Nexus time – late September or early October – with Android
N availability for other manufacturers and devices in the six or so months
to follow.
Android Architecture with diagram.
Linux kernel
At the bottom of the layers is Linux - Linux 3.6 with approximately 115
patches. This provides a level of abstraction between the device hardware and it
contains all the essential hardware drivers like the camera, keypad, display etc.
Also, the kernel handles all the things that Linux is really good at such as
networking and a vast array of device drivers, which take the pain out of interfacing
to peripheral hardware.
Libraries
Android Libraries
Background:
The Mozilla project is an offshoot of the Netscape browser. Readers are
encouraged to see the timeline at http://www. holgermetzger.
de/Netscape_History.html for a detailed set of events relating to Netscape. A longer
description of the first round of the browser wars is available in Cusmano and
Yoffie (1998). In short, Mozilla was released as an open source version of Netscape
in January 1998. Since that time, Mozilla has released many versions of its
browsers. Netscape and AOL use its browsers. Firefox is the latest version of the
Mozilla browser.
System overview:
Mozilla and Firefox consist of about two thousand C and C++ source code
files (”.c”, ”.cp” and” cpp” files) and about 0.8 to 0.9 million uncommented lines
of code in each release.
Figure 5(a) counts Mozilla and Firefox releases by ULOC, while Figure 5(b)
counts NOF, the number of files. A file is considered to be shared if and only if two
versions of the file in the sibling releases have identical ULOC. It is shown that the
overall size of Mozilla and Firefox releases are relatively stable in terms of NOF
and ULOC during the one year and a half period of time. However, the percentage
of shared code changes significantly across some of the releases.
Product Superiority: Many impartial observers agree with Blake and have
concluded that Mozilla Firefox is asuperior alternative to its competitors. Here, I
will argue that Firefox offers three newideas- compatibility, tabbing and better
security. Readers are referred to an older
document
http://web.archive.org/web/20040210101506/http://www.mozilla.org/products/fir
efox/why/) authored by Ben Goodger for a longer list of features.
Security: The use of open source as the development methodology is a sound way
to enhance the security of the product. Open source 18products allow anybody to
inspect the code base, thus enhancing the chances that vulnerabilities and bugs
would be detected. There are some indications that Mozilla Firefox may have its
own security flaws, however.
Tabbing: Most browsers open a new link in a new window. Mozilla Firefox
introduced a new feature called tabbing. This allows the user to open multiple pages
in one window.
Volunteer Support: The credit for the success of Firefox must mostly be given to
the volunteers for all their hard work. Since Firefox had released a preview version
before its official release, it was able to ascertain the level of interest in the
community. This gave the team considerable confidence when soliciting funds for
the New York Times ad. Volunteers participated in many activities on the site.
System Specifications:
Overview:
Wikipedia, one of the first online encyclopedias, has come a long way since
its beginnings in 2001. Now, just after its ten-year anniversary, Wikipedia has more
than thirteen million articles and over one hundred and sixty different language
editions and is currently ranked number 8 on alexa.com with more than 10% of the
world’s Internet users visiting the site.
History:
In January 2001, Wikipedia went live. Originally, Wikipedia was only
formed as a Wiki to help in the Nupedia project. Larry Sanger, Wikipedia’s chief
instigator, said it originally was an “idea to add a little feature to Nupedia.” In only
two months, Wikipedia had more than a thousand articles, and by October 2001,
that number rose to thirteen thousand.
In the following January, Wikipedia was shut down for a week after a
significant computer crash. This prompted Wales to start a fundraiser to buy more
computers. The nine computers he bought were then relocated to Florida. By April
of that year, Wikipedia had a quarter of a million articles.
In 2004 and 2005, Wikipedia won many awards and received a significant
amount of recognition. In 2005, it became a top 100 website according to
Alexa.com. Wikipedia’s one millionth article was published in March of 2006 and
in just three years that number would grow to a total of thirteen million articles
available in a diverse range of languages.
Features:
Wikipedia is a free, non-profit online encyclopedia that has surpassed more
than 3.5 million articles in English alone and is one of the most highly trafficked
sites on the web. The articles on Wikipedia are written and edited by thousands of
volunteer contributors as it is funded solely by donations. Wikipedia founders
vowed never to have advertisements on its site, which is a promise they have
diligently kept.
Summary:
Wikipedia, a non-profit online encyclopedia, has grown from just over a
thousand articles at its beginnings in 2001 to over thirteen million articles in several
different languages today. Wikipedia has an Ubuntu Linux 2.6 operating system
and has one U.S. data center in Florida and one international center in Amsterdam.
It was originally formed as a new feature for Nupedia, but now has several sister
projects, such as Wiktionary, under the head organization, Wikimedia.
To make this happen, Drupal’s founder started the Spark initiative, whose
goal was to bring the authoring experience of Drupal 8 to the next level. It included
integrating a rich text editor capable of working on the front-end, for so called in-
place editing. Another crucial feature to have was excellent image upload support
with alignment and captioning.
“And that's when we found out that CKEditor 4 had been in development
and was also going to have support for in-place editing!”, recalls Wim Leers, one
of a few dozen Drupal core maintainers and responsible for CKEditor integration.
“It had far superior maturity and accessibility, as well as a much bigger
development team behind it. We got strong guarantees for clean HTML, including
Advanced Content Filter. And CKEditor Widgets could easily replace Aloha
Blocks. So we made the difficult decision to switch to CKEditor.”
Leers stresses the maturity and stability of the editor. “The number of times
CKEditor broke something in the past five years can probably be counted on two
hands. Which is very impressive, considering how many different ways it's used on
hundreds of thousands of Drupal 8 sites out there!”
The artists group had stable funding with a nonprofit fiscal agent and local
business sponsors along with enough volunteers to manage the event, but they did
not have any capabilities to contribute to a web development project. Without a
dedicated organizational staff and budget, how could they add a complex website
to accommodate the growing needs of artists, sponsors, and art patrons?
In addition to the front ends that are integrated components of GCC, there
are several other front ends that are maintained separately. These support languages
such as Mercury, and COBOL. To use these, they must be built together with GCC
proper. Most of the compilers for languages other than C have their own names.
The C++ compileris G++, the Ada compiler is GNAT, and so on. When we talk
about compiling one of those languages, we might refer to that compiler by its own
name, or as GCC. Either is correct. Historically, compilers for many languages,
including C++ and Fortran, have been implemented as “preprocessors” which emit
another high level language such as C. None ofthe compilers included in GCC are
implemented this way; they all generate machine code directly. This sort of
preprocessor should not be confused with the C preprocessor, which is an integral
feature of the C, C++, Objective-C and Objective-C++ languages.
C Language:
The original ANSI C standard (X3.159-1989) was ratified in 1989 and
published in 1990.
This standard was ratified as an ISO standard (ISO/IEC 9899:1990) later in
1990. There were no technical differences between these publications, although the
sections of the ANSI standard were renumbered and became clauses in the ISO
standard. The ANSI standard, but not the ISO standard, also came with a Rationale
document. This standard, in both its forms, is commonly known as C89, or
occasionally as C90, from the dates of ratification. To select this standard in GCC,
use one of the options ‘-ansi’, ‘-std=c90’ or ‘-std=iso9899:1990’; to obtain all the
diagnostics required by the standard, you should also specify ‘-pedantic’ (or ‘-
pedantic-errors’ if you want them to be errors rather than warnings). Errors in the
1990 ISO C standard were corrected in two Technical Corrigenda published in 1994
and 1996. GCC does not support the uncorrected version. An amendment to the
1990 standard was published in 1995. This amendment added digraphs and
__STDC_VERSION__ to the language, but otherwise concerned the library. This
amendment is commonly known as AMD1; the amended standard is sometimes
known as C94 or C95. To select this standard in GCC, use the option ‘-
std=iso9899:199409’ (with, as for other standard versions, ‘-pedantic’ to receive all
required diagnostics). A new edition of the ISO C standard was published in 1999
as ISO/IEC 9899:1999, and is commonly known as C99. (While in development,
drafts of this standard version were referred to as C9X.) GCC has substantially
complete support for this standard version; see http://gcc.gnu.org/c99status.html for
details. To select this standard, use ‘-std=c99’ or ‘-std=iso9899:1999’. Errors in the
1999 ISO C standard were corrected in three Technical Corrigenda published in
2001, 2004 and 2007. GCC does not support the uncorrected version. A fourth
version of the C standard, known as C11, was published in 2011 as ISO/IEC
9899:2011. (While in development, drafts of this standard version were referred to
as C1X.) GCC has substantially complete support for this standard, enabled with ‘-
std=c11’ or ‘-std=iso9899:2011’. A version with corrections integrated was
prepared in 2017 and published in 2018 as ISO/IEC 9899:2018; it is known as C17
and is supported with ‘-std=c17’ or ‘-std=iso9899:2017’; the corrections are also
applied with ‘-std=c11’, and the only difference between the options is the value of
__STDC_VERSION__. A further version of the C standard, known as C2X, is
under development; experimental and incomplete support for this is enabled with
‘-std=c2x’. By default, GCC provides some extensions to the C language that, on
rare occasions conflict with the C standard. See Chapter 6 [Extensions to the C
Language Family], page 503. Some features that are part of the C99 standard are
accepted as extensions in C90 mode, and some features that are part of the C11
standard are accepted as extensions in C90 and C99 modes. Use of the ‘-std’ options
listed above disables these extensions where they conflict with the C standard
version selected. You may also select an extended version of the C language
explicitly with ‘-std=gnu90’ (for C90 with GNU extensions), ‘-std=gnu99’ (for C99
with GNU extensions) or ‘-std=gnu11’ (for C11 with GNU extensions). The
default, if no C language dialect options are given, is ‘-std=gnu17’.
C++ Language:
GCC supports the original ISO C++ standard published in 1998, and the
2011, 2014, 2017 and mostly 2020 revisions. The original ISO C++ standard was
published as the ISO standard (ISO/IEC 14882:1998) and amended by a Technical
Corrigenda published in 2003 (ISO/IEC 14882:2003). These standards are referred
to as C++98 and C++03, respectively. GCC implements the majority of C++98
(export is a notable exception) and most of the changes in C++03. To select this
standard in GCC, use one of the options ‘-ansi’, ‘-std=c++98’, or ‘-std=c++03’; to
obtain all the diagnostics required by the standard, you should also specify ‘-
pedantic’ (or‘-pedantic-errors’ if you want them to be errors rather than
warnings).A revised ISO C++ standard was published in 2011 as ISO/IEC
14882:2011, and is referred to as C++11; before its publication it was commonly
referred to as C++0x. C++11 contains several changes to the C++ language, all of
which have been implemented in GCC. For details see
https://gcc.gnu.org/projects/cxx-status.html#cxx11. To select this standard in GCC,
use the option ‘-std=c++11’.Another revised ISO C++ standard was published in
2014 as ISO/IEC 14882:2014, and is referred to as C++14; before its publication it
was sometimes referred to as C++1y. C++14contains several further changes to the
C++ language, all of which have been implemented in GCC. For details see
https://gcc.gnu.org/projects/cxx-status.html#cxx14. Toselect this standard in GCC,
use the option ‘-std=c++14’.
The C++ language was further revised in 2017 and ISO/IEC 14882:2017
was published.
What is gdb?
It is a “GNU Debugger”. A debugger for several languages, including C and
C++. It allows you to inspect what the program is doing at a certain point during
execution. Errors like segmentation faults may be easier to find with the help of
gdb. Most computer systems have one or more debugging tools available. These
can save you a tremendous amount of time and frustration in the debugging process.
The tool available on almost all Unix systems is gdb.
Easy to Learn: In my own debugging, I tend to use just a few gdb commands, only
four or five in all. So, you can learn gdb quite quickly. Later, if you wish, you can
learn some advanced commands.
The Basic Strategy: A typical usage of gdb runs as follows: After starting up gdb,
we set breakpoints, which are places in the code where we wish execution to pause.
Each time gdb encounters a breakpoint, it suspends execution of the program at that
point, giving us a chance to check the values of various variables.
In some cases, when we reach a breakpoint, we will single step for a while
from that point onward, which means that gdb will pause after every line of source
code. This may be important, either to further pinpoint the location at which a
certain variable changes value, or in some cases to observe the flow of execution,
seeing for example which parts of if-then-else constructs are executed.
Invoking/Quitting gdb
Before you start, make sure that when you compiled the program you are
debugging, you used the -g option, i.e.
cc -g sourcefile.c
Without the -g option, gdb would essentially be useless, since it will have
no information on variable and function names, line numbers, and so on.
If you apply r more than once in the same debugging session, you do not
have to type the command-line arguments after the first time; the old ones will be
repeated by default.
Once you have paused at the indicated line and wish to continue executing
the program, you can type c (for the continue command).
You can also use a function name to specify a breakpoint, meaning the first
executable line in the function.
For example,
b main
says to stop at the first line of the main program, which is often useful as the first
step in debugging.
You can cancel a breakpoint by using the disable command.
You can also make a breakpoint conditional. E.g.
b 3 Z > 92
would tell gdb to stop at breakpoint 3 (which was set previously) only when Z
exceeds 92.
GitHub, the easiest way for developers to write software together, has scaled
into a collaboration of 5.8 million developers across more than 12 million
repositories worldwide. GitHub worked with Fastly to customize their CDN set up,
ensuring rapid and efficient delivery of their content. Fastly serves all static assets
and sits in front of GitHub.com, Pages (their website hosting service), and
raw.github.com.
Open Source Software (OSS) has been adopted not only for the personal
purpose software products but also for core systems of companies and public
institutions. It becomes indispensable for our society. In order to evolve and grow
OSSs, it is important to acquire not only stakeholders but also contributors widely
from outside. Especially, in the case of large OSS, a large number of contributors
are needed. Therefore, it is extremely important to explore the acquisition
mechanism of contributors.
Data Preparation
In this research, we use data of BOA [5] provided by Iowa State University
which is a GitHub archive (September 2015 Full) to efficiently discover projects
that contain contribution files. The proportion of projects that contain contribution
files is extremely low, and if we search directly from the web, it takes a lot of time.
BOA is a huge archive of GitHub Project which adopted Hadoop's technology, and
it can acquire the target Project and its attributes in a very short time. We searched
7,830,023 projects and found that as of September 2015 only 639 Projects contain
contribution file. Since there is no contribution file on the BOA, we obtained them
by using the acquired URL, but as of April 2017 there were only 459 files. After
all, in 7,830,023 projects, we were able to get only 459 contribution file. (0.006%)
Project attributes are obtained from projects where contribution file exist by
using GitHub API. Attributes acquired are mainly items that can be checked on the
GitHub web screen such as Stargazer number (Bookmark), Subscriber number and
so on. In order to track changes over time, we plan to continue to acquire attributes
every month.
Introduction:
Open Office.org is an open source multi-platform office suite software. It is
built in some software, such as word processing, spreadsheets, presentation tools
and graphics software, etc. And it uses C++ as a procedural framework, provides
international support and documentation of authorized applications Program
interface, has simple, practical, economic and cross-platform features.
Software Requirements
Modern Uighur letters is formed on the basis of Arabic alphabets, there are
32 [1]. Uighur is a handwritten text, in needs for joint document when writing,
letters is in the different location (in the prefix, middle, end of the words), there will
be in different writing forms. In the Unicode encoding standard, 32 separate letters
are called Character name, and their code bits are assigned in U+0600−U+06FF
area. The letters in the prefix, middle, and the end of loactions are called appearing
form. Their code bits are assigned in U+FE70-U+ FEFF Arabic extended character
region.
There are some biggest difficulties in dealing with Uighur. For example, its
opposite editorial direction is different from Chinese and English. And It is difficult
in cursor control. Another problem is that the Uighur are deformation text. Its
adjacent letters are likely to be deformed when insert or delete a letter. Therefore it
is more difficult when handling.
An Open-Source-Software-based License:
The amount of open-source-software (OSS) used in the global software
engineering community is already enormous and still growing. This includes both
the products we develop and the development tools we use to create them. It is
meanwhile rare to find examples of products that do not contain open source
components. Although, using open source components in products does have many
advantages, it is very important that one also manages the use of the open source
components in a license-compliant way. A set of companies and other organizations
who either offer or use OSS-based license compliance tools have recently formed
the “Open Source Tooling Group”. This international group works on establishing
an ecosystem of OSS-based tools for license compliance that fit together well and
can offer an ecosystem of tools for organizations to help fulfill their license
compliance obligations. This talk provides the motivation and overview of this
topic describing the relevance to software engineering practitioners. It will close by
highlighting some of the research areas where further improvements could be done
in this fast-growing field.
GNU GPL
The positive aspects of GNU GPL license are
• Maintenance of GPL for derivative software thus guaranteeing free access
and distribution.
• Most commonly used free software licensing method.
• The integrator can view and use the source code for his development
activities.
• The integrator can modify the source code for his products.
• The integrator can provide his software under his own name.
• The integrator will have a good community support.
• Competitors cannot use the software to create closed-source derived
products.
Generally we can say, that commercial companies may not want to further
develop software under GPL because they can not later change the licensing type
and that the integration into closed source or even open-source environments with
other licenses can be hard and particularly not be done.
A look at various funding models for open source projects. Most of the
major open source projects require a fair amount of development and maintenance
and have many full-time people working on them.
People volunteer their time, most of the members of the numerous open
source software foundations are unpaid and dedicate their own time and energy.
Many of these volunteers work for companies who understand the importance of
open source and give them the time.
Here’s a look at how open source projects, which by nature do not charge
for their software, generate money to fund their projects.
Donations:
Wikipedia is the best example of the donation model. Annually it turns to
its users directly asking for donations, using banner ads and on-site promotions.
The Wikimedia Foundation also receives funding from benefactors and grants.
Wikimedia follows a very similar model as public radio in the U.S.
Linux has long been funded and advanced by corporate contributors. You
can see the amount of time given to open source by the Linux contributors list. A
majority of these contributions are for drivers to make the company’s hardware
work with Linux. The companies are motivated to get involved but the time and
code contributed is still open source.
Virtual Box is an open source virtualization tool which Oracle releases the
basic app free for all. They also offer advanced features and extensions which are
free for personal use, but requires a commercial license for business use. This model
appears to work well to encourage adoption, for example the Vagrant project uses
VirtualBox as its primary engine.
Some examples of open source software are Firefox, Open Office, Zimbra, VCL
media player, Thunderbird.
• Open source software is the computer software developed either by an
individual, group or an organization to meet certain requirements and it is
available openly for general public for any modifications based on its
developing body’s interest.
• The cost of open source software is free.
• Open source provides limited technical support.
• Open source software is available under free licensing.
• In open source software users need to rely on community support.
• In open source software installation and updates are administered by the user.
• Limited hands on training and online resources are available for open source
software application training.
• Here in open source software users can customize.
• In this rapid community response helps in fixing the bugs and malfunctions.
• In open source software the source code is public.
• The source of funds of open source software mainly depends on donations
and support.
That's important for several reasons. First, it maximizes the ability of third-
party programmers and partners to work with a given device. In most cases
hardware manufacturers provide only a basic level of programmability by releasing
software development kits (SDKs) or limited documentation about hardware
specifications. Sometimes additional hardware information is available through
partner programs. But with open source hardware, all information is freely available
to the public.
Another reason why hardware openness matters is that it lets users know
exactly what their hardware does. If you've ever read stories about webcams spying
on users or microphones listening in without their permission, you appreciate the
value of being able to know everything your hardware is capable of doing (and how
it can be activated), as opposed to knowing only what the company you buy it from
reveals.
Open hardware has the benefit of being more extensible, too. For most
people this matters with hardware even less than it does with software. But for the
hardcore geeks out there who want to be able to customize to infinity,
documentation about how hardware works is crucial. It makes it much easier to
tweak a device by cutting wires, plugging in additional components and so on.
Yet in practice, open hardware goes back much further. Like open source
code, open hardware specifications were the default during the first decades of
computing. At that time, when many programs were written in assembly code and
software was much less portable than it is today, intricate knowledge of hardware
was essential for writing software. That meant that companies that manufactured
hardware were much more forthcoming than they generally are today with hardware
documentation.
The shift toward closed-source software starting in the early 1980s,
combined with the standardization of basic hardware platforms like the IBM PC
and the adoption of cross-platform programming languages such as C, made
hardware specifications less important. For the most part, programmers no longer
needed to know lots of details about hardware specifications in order to write code
for a particular platform. As long as you wrote for the PC, your code would run on
most computers. And when hardware-specific software was required, companies
could release it in closed-source form, which did not require them to give away
details about the hardware.
Open hardware will also matter on the IoT, for two main reasons. The first
involves security and privacy. While worries about snooping webcams on PCs may
be overblown, demands for privacy assurances will reach new magnitudes when
IoT devices surround consumers and collect all sorts of personal information.
Companies that build IoT solutions based on open hardware will be able to make
privacy promises that others can't.
Open hardware will also help to drive IoT adoption by creating a foundation
for building low-cost, portable IoT solutions. In other words, open hardware
platforms, like Arduino, will do for IoT what open source software platforms, like
Linux and Apache, did for the Web by providing a convenient, accessible, cost-
efficient basis on which to deploy products in a new ecosystem.
Against this backdrop, open hardware solutions will become more valuable
not only because they are likely to be inexpensive, but also because open
specifications maximize the ability of programmers to take advantage of hardware
features when optimizing software-defined solutions.
Results
The result of Open Source Learning is that, in the process of mastering
concepts and skills, we develop our mental, physical, civic, spiritual, and technical
fitness, and we learn new ways to think. For example:
• Open Source Learning allows students to create and manage interactive learning
material that becomes available online to everyone, generating and sharing
value that extends beyond the traditional K-16 curriculum.
• Deeper and more engaged involvement results in significant improvement in
academic achievement.
• Open Source Learning also creates opportunities for traditional performance
evaluation of objective production, including formative and summative tests;
and alternative assessment of portfolios, which can include a variety of artifacts,
including trans media presentation of content, and the student’s choices related
to platforms, media, and design.
• Participants – students and teachers alike — emerge with progressively
masterful records of assessment and authentic work portfolios that tell a far
more compelling story than diplomas or résumés.
The downsides of open source software are few but notable. If a company
is especially concerned with how the modification of its software may affect its
image should avoid open source. Allowing everyone to see source code means that
competitors will see the source code. While this makes for good competition, it can
also make for copycats developing inferior products aping the original. As far as
users are concerned, caution should be exercised when utilizing some open source
software, as there may be few resources for technical support when a problem
arises.
For smartphones and tablets, the most notable example of open source
technology is Google's Android OS. The open source nature of the OS has allowed
wireless service carriers and retailers to customize the models they sell. The Google
Play Store is especially notable for its wide variety of user-generated applications,
which are largely made possible by the OS's open source flexibility.
For PC users, the Linux operating system has been a long-standing example
of open source software. Originally released in 1991, it has always been a favorite
of the technologically-inclined for its malleability and potential for deep,
specialized customization. Modified versions of Linux can even be distributed
commercially. The previously mentioned Android OS is actually based off of the
Linux framework, which makes the open source nature very fitting.
Summary
In this chapter we learn about Open-source Operating system, various types
of open-source software, Open-source concepts like Licensing and funding for
open-source software and open-source physical components.
Reference:
https://www.linux.org/
https://www.android.com/
https://github.com/
❖❖❖❖
Unit -5
UNDERSTANDING OPEN SOURCE
ECOSYSTEM
Unit Structure
5.0 Free BSD
5.1 Open Solaris
5.2 Virtualization Technologies
5.3 Containerization Technologies
5.4 Development tools
5.5 IDEs
5.6 LAMP
5.7 Open Source database technologies
What is FreeBSD?
FreeBSD is an operating system for a variety of platforms which focuses on
features, speed, and stability. It is derived from BSD, the version of UNIX®
developed at the University of California, Berkeley. It is developed and maintained
by a large community.
Easy to install
FreeBSD can be installed from a variety of media including CD-ROM,
DVD, or directly over the network using FTP or NFS.
FreeBSD is free
While you might expect an operating system with these features to sell for
a high price, FreeBSD is available free of charge and comes with the source code.
Contributing to FreeBSD
It is easy to contribute to FreeBSD. All you need to do is find a part of
FreeBSD which you think could be improved and make those changes (carefully
and cleanly) and submit that back to the Project by means of a bug report or a
committer, if you know one. This could be anything from documentation to artwork
to source code.
Introduction
Open Solaris is an open source operating system, similar in scope to
GNU/Linux and BSD, but descended from the proprietary Solaris operating system
from Sun Microsystems. The authors of this book find it helpful to think of Open
Solaris as divided into three distinct but related aspects: the code, the distributions,
and the community.
Features of Solaris
Security: Solaris includes some of the world's most advanced security features,
such as Process and User Rights
Data Management: Solaris offers dramatic advances in file system and volume
management by delivering virtually unlimited capacity and near-zero
administration
Observability: The Solaris release gives you Observability into your system with
tools such as Solaris Dynamic Tracing (DTrace), which enables real-time
application debugging and optimization
Platform Choice: Solaris is fully supported on more than 900 SPARC-based and
x64/x86-based systems from top manufacturers, including systems from Sun, Dell,
HP, and IBM
Virtualization: The Solaris OS includes industry-first virtualization features such
as Solaris Containers, which let you consolidate, isolate, and protect thousands of
applications on a single server
Support & Services: Offering a broad portfolio of world-class services, Sun can
help you extract maximum value from the Solaris Operating System.
In more practical terms, imagine you have 3 physical servers with individual
dedicated purposes. One is a mail server, another is a web server, and the last one
runs internal legacy applications. Each server is being used at about 30% capacity—
just a fraction of their running potential. But since the legacy apps remain important
to your internal operations, you have to keep them and the third server that hosts
them, right?
Traditionally, yes. It was often easier and more reliable to run individual tasks
on individual servers: 1 server, 1 operating system, 1 task. It wasn’t easy to give 1
server multiple brains. But with virtualization, you can split the mail server into 2
unique ones that can handle independent tasks so the legacy apps can be migrated.
It’s the same hardware, you’re just using more of it more efficiently.
Keeping security in mind, you could split the first server again so it could
handle another task—increasing its use from 30%, to 60%, to 90%. Once you do
that, the now empty servers could be reused for other tasks or retired altogether to
reduce cooling and maintenance costs.
Xen
Xen began life as a Microsoft-funded startup at the University of Cambridge
and has risen to become the "de facto standard" in Linux hypervisors.
A few years ago quite a few commercial software vendors, including Novell
and Oracle, adopted Xen and then -- seemingly out of nowhere -- the commercial
startup behind Xen, XenSource, was acquired by Citrix. Citrix has been Xen-happy
ever since.
OpenVZ
OpenVZ is container-based virtualization for Linux, which has become quite
popular among the mass-market Linux hosting providers as an inexpensive way to
provide virtual private servers.
The OpenVZ containers provides the same services as a separate host and claims to
provide near native performance.
OpenVZ is the core within Parallels Virtuozzo Containers, a commercial
virtualization solution offered by Swiss company Parallels. Commercial support is
available for Parallels.
Not a lot has been written about OpenVZ/Parallels in the enterprise space, but there
are quite a few glowing user testimonials about the product.
URL: http://openvz.org
License: GPL
VirtualBox
VirtualBox is an open source desktop virtualization tool originally developed by
German company, innotek, which was acquired by Sun Microsystems in February
2008.
Since acquiring Sun, Oracle has continued VirtualBox development and the latest
version, 4.0, was released in December 2010.
VirtualBox runs on Windows, Linux, Solaris and Mac OS X and can support all
those operating systems as guests.
While it is mostly used on desktops, VirtualBox is a full virtualization app and can
be used on servers as well.
The closed-source edition of VirtualBox is now distributed as an "extension pack"
and includes features like RDP and USB support.
URL: http://www.virtualbox.org
Licence: GPL & CDDL
Lguest
Lguest is an interesting virtualization project started by Australian developer, Paul
"Rusty" Russell.
Designed with Linux in mind, lguest allows multiple copies of the same kernel to
run alongside each other.
While not a full virtualization hypervisor, lguest prides itself on ease of use and
uses the same kernel image for host and guest operating systems.
Computerworld has run with a number of articles about lguest over the past few
years.
There's not much information about whether lguest is being used in a business
production environments, but that would be interesting.
URL: http://lguest.ozlabs.org/
Licence: GPL
What is Docker?
Docker is an open source project that makes it easy to create containers and
container-based apps. Originally built for Linux, Docker now runs on Windows and
MacOS as well. To understand how Docker works, let’s take a look at some of the
components you would use to create Docker-containerized applications.
Dockerfile
Each Docker container starts with a Dockerfile. A Dockerfile is a text file
written in an easy-to-understand syntax that includes the instructions to build a
Docker image (more on that in a moment). A Dockerfile specifies the operating
system that will underlie the container, along with the languages, environmental
variables, file locations, network ports, and other components it needs—and, of
course, what the container will actually be doing once we run it.
Docker image
Once you have your Dockerfile written, you invoke the Docker build utility
to create an image based on that Dockerfile. Whereas the Dockerfile is the set of
instructions that tells build how to make the image, a Docker image is a portable
file containing the specifications for which software components the container will
run and how. Because a Dockerfile will probably include instructions about
grabbing some software packages from online repositories, you should take care to
explicitly specify the proper versions, or else your Dockerfile might produce
inconsistent images depending on when it’s invoked. But once an image is created,
it’s static.
5.4 DEVELOPMENT TOOLS
Docker:
The first and still most popular container technology, Docker's open-
source containerization engine works with most of the products that follow, as well
as many open-source tools.
Docker Enterprise
This set of extensions not only adds features to Docker, but also makes it
possible for Docker (the company) to add commercial support. If you need a support
matrix to know exactly which versions of what software are supported—and a
phone number to call if things go wrong—then Docker Enterprise might be for you.
CRI-O
The first implementation of the Container Runtime Interface, CRI-O is an
incredibly lightweight, open-source reference implementation.
rktlet
The aforementioned rkt, redesigned and retooled to use the CRI as rktlet,
now has a set of supported tools and community to rival Docker.
containerd
A project of the Cloud Native Computing Foundation, containerd was an
early container format. More recently the developers of containerd built a CRI
plugin that lets Kubernetes run containerd in the same way it runs rktlet or CRI-O.
Microsoft Containers
Positioned as an alternative to Linux, Microsoft Containers can support
Windows containers under very specific circumstances. They generally run in a true
virtual machine and not in a cluster manager like Kubernetes.
5.5 IDES
AWS Fargate
AWS Fargate is a technology for Amazon ECS and EKS that allows you to
run containers without having to manage servers or clusters. AWS Fargate removes
the need for you to interact with or think about servers or clusters.
Kubernetes
Kubernetes is a Linux container management tool.
Portainer
Portainer is the definitive open source UI for simplifying Kubernetes,
Docker, Swarm, and ACI container management. Simplicity without compromise -
run and manage your complex Kubernetes and Docker environments in a simple,
low code/no code manner. Get the best of both worlds - some developers support
Kubernetes, while others prefer Docker Swarm or ACI for container orchestration.
Portainer helps manage all these environments from a single product. Let devs be
devs - developers and DevOps don't always blend. With Portainer's easy low
code/no code UI, DevOps can quickly deploy apps without having in-depth
knowledge of Kubernetes or Docker Swarm.
Rancher
Rancher is an open-source platform for managing containers that provides
a full set of infrastructure services for containers, including networking, storage
services, host management and load balancing, work across any infrastructure, and
make it simple to reliably deploy and manage applications. Check out our
Kubernetes Online Master Class Training Series:
https://rancher.com/kubernetes-master-class/
56 LAMP
LAMP is an open source Web development platform that uses Linux as the
operating system, Apache as the Web server, MySQL as the relational database
management system and PHP as the object-oriented scripting language.
(Sometimes Perl or Python is used instead of PHP.)
Because the platform has four layers, LAMP is sometimes referred to as a
LAMP stack. Stacks can be built on different operating systems. Developers that
use these tools with a Windows operating system instead of Linux are said to be
using WAMP; with a Macintosh system, MAMP; and with a Solaris system, SAMP.
What is the LAMP Stack?
The widely popular LAMP stack is a set of open source software used for
web application development.
For a web application to work smoothly, it has to include an operating
system, a web server, a database, and a programming language. The name LAMP
is an acronym of the following programs:
• Linux Operating System
• Apache HTTP Server
• MySQL database management system
• PHP programming language
Each represents an essential layer of the stack, and together they can create
a database-driven and dynamic website.
The illustration below can help visualize how the layers stack together:
All the other components of the stack run on top of this foundation. You can
efficiently manage the rest of the stack components on different operating systems
such as Windows, macOS, and others. However, Linux has become the front-runner
for web development not just because it is open-source, but also due to its
flexibility, customization and easy to use technology.
Apache
Apache HTTP Server is a web server software that runs on top of the Linux
operating system.
It is the most widely used server, powering more than half of the websites
on the internet. The role of the web server is to process requests and transmit
information through the internet, using HTTP.
MySQL
SQL (Structured Query Language) is the most prevalent query language out
there. A query is what we call a request for information or data stored in your
database table.
PHP
PHP (Hypertext Preprocessor) is a programming language which has the
role of combining all the elements of the LAMP stack and allowing the website or
web application to run efficiently. In short, when a visitor opens the webpage, the
server processes the PHP commands and sends the results to the visitor’s browser.
In the LAMP stack, the P can also refer to two other programming languages
– Perl or Python. All three are simple, yet useful, dynamic tools for creating
environments in which you can successfully develop applications. Nowadays, there
is a wide variety of scripting languages to choose from, including JavaScript, Ruby,
and many more.
In addition to the obvious cost savings, open source database software have
largely reached feature parity with their proprietary cousins. The open-source
model also allows for heavy customization and community development, which
makes the software very flexible compared to proprietary database software.
Training materials are also often provided for free by user communities.
MySQL
MySQL is by far the most popular open-source database out there. Vendors
often include it in software packages as the application database.
Even Oracle’s own Virtual Machine software runs on MySQL.
MySQL is an open source relational database management system. It is
frequently used in webapplications and is even one of the pillars in the LAMP open-
source web application software stack (Linux, Apache, MySQL, Perl/PHP/Python).
Even websites created in WordPress or Drupal use it as their database.
PostgreSQL
Postgre SQL is a powerful, open source object-relational database system
that uses and extends the SQL language combined with many features that safely
store and scale the most complicated data workloads. The origins of Postgre SQL
date back to 1986 as part of the POSTGRES project at the University of California
at Berkeley and has more than 30 years of active development on the core platform.
Postgre SQL has earned a strong reputation for its proven architecture,
reliability, data integrity, robust feature set, extensibility, and the dedication of the
open source community behind the software to consistently deliver performant and
innovative solutions. Postgre SQL runs on all major operating systems, has been
ACID-compliant since 2001, and has powerful add-ons such as the popular Post
GIS geospatial database extender. It is no surprise that Postgre SQL has become the
open source relational database of choice for many people and organisations.
Getting started with using Postgre SQL has never been easier - pick a project
you want to build, and let Postgre SQL safely and robustly store your data.
MariaDB Server
MariaDB Server is one of the most popular database servers in the world.
It’s made by the original developers of MySQL and guaranteed to stay open source.
Notable users include Wikipedia, WordPress.com and Google.
Summary
In this chapter we learn about various open-source operating systems, Open-
source hardware, virtualization technologies, open-source databases, IDEs , LAMP.
Reference
https://www.bsd.org/
https://www.docker.com/
http://www.linuxfoundation.org/
❖❖❖❖
INSTITUTE OF DISTANCE AND OPEN LEARNING, UNIVERSITY OF MUMBAI,
OFFERS FOLLOWING COURSES