0% found this document useful (0 votes)
8 views23 pages

Unit 4 - Oss

Unit 4 of the document covers the fundamentals of open source software, focusing on Wikipedia as an open source project, the steps to contribute to it, and the process of starting and maintaining one's own open source project. It also discusses the open source ecosystem, various open source operating systems like GNU/Linux and Android, and the features of these systems. Additionally, it highlights the importance of documentation and community engagement in open source projects.

Uploaded by

deveshkale08
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views23 pages

Unit 4 - Oss

Unit 4 of the document covers the fundamentals of open source software, focusing on Wikipedia as an open source project, the steps to contribute to it, and the process of starting and maintaining one's own open source project. It also discusses the open source ecosystem, various open source operating systems like GNU/Linux and Android, and the features of these systems. Additionally, it highlights the importance of documentation and community engagement in open source projects.

Uploaded by

deveshkale08
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

FUNDAMENTALS OF OPEN SOURCE SOFTWARE

UNIT 4

Unit IV

CONTENTS

4.1 Introduction to Wikipedia


4.2 Contributing to Wikipedia or contributing to any prominent open source project of
student’s choice
4.3 Starting and Maintaining own Open Source Project
4.4 Understanding Open Source Ecosystem
4.5 Open Source Operating Systems:
a) GNU/Linux
b) Android
c) Free BSD
d) Open Solaris

4.6 Open Source Hardware


4.7 Virtualization Technologies
4.8 Containerization Technologies:
a) Docker
b) Development tools
c) IDEs
d) debuggers
e) Programming languages,
4.9 LAMP
4.10 Open Source database technologies

1
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

4.1 INTRODUCTION TO WIKIPEDIA


Q. EXPLAIN THE FOLLOWING POINTS ABOUT WIKIPEDIA OPEN SOURCE
PROJECT:
a) what is it
b) who is doing it
c) how does it work
d) what is its’ significance
WIKIPEDIA
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 centre 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.

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.
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.
 Wikipedia features a simple search engine and a consistent format.
 Wikipedia currently uses Ubuntu Linux 2.6 as their operating system with a standard
LAMP package.

2
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

System:
Wikipedia uses MediaWiki software to run its website. Its main U.S. data center, consisting of
about 300 servers, is located in Florida. Wikipedia also has a European data center in
Amsterdam, EvoSwitch, where they have approximately 50 servers. There are also tentative
plans to secure another data center in Virginia.

4.2 CONTRIBUTING TO WIKIPEDIA OR CONTRIBUTING TO ANY


PROMINENT OPEN SOURCE PROJECT OF STUDENT’S CHOICE.

Q. WRITE THE STEPS TO CONTRIBUTE TO WIKIPEDIA

CONTRIBUTING TO WIKIPEDIA
Wikipedia is a free encyclopedia project, written collaboratively by volunteers. Many people
view Wikipedia articles every day, but don't contribute.
Following steps are taken when you want to constructively contribute to Wikipedia.
1. Create a Wikipedia account
2. Get familiar with Wikipedia's core policies
3. Expand stubs
4. Add a photo
5. Write a new article
6. Remove spam
7. Help out
8. Do some maintenance
9. Revert vandalism

1. Create a Wikipedia account:


Account creation is not required; however, if you register for an account, you will be given
more privileges than a non-registered user. For all of these privileges to take place, your
account must be at least four days old and have at least ten edits.

2. Get familiar with Wikipedia's core policies:


Wikipedia has zillions of guidelines and policy pages. These are the most crucial: Neutral Point
of View (NPOV), No Original Research (NOR/OR), and Verifiability.

3. Expand stubs:
An article that is not complete, or written in full detail, may be marked with a {{Stub}} tag.
You can help by adding content to the articles currently marked as stubs. Articles may also
have a more detailed {{stub}} meaning that the stub has been sub-sorted. Sub-sorted stubs
include anything from Arts, Cultures, Design, Broadcast Media, Radio, Television, Literature,
and more!

4. Add a photo:
An encyclopedia is not complete without pictures. You can upload as many pictures as you
wish; however, you must provide detailed information on the source and the license of the file.
If you cannot provide that information, do not upload any photos. If you still choose to upload
photos, they will be deleted.
5. Write a new article:

3
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

The English version of Wikipedia currently has over six million articles! You can help continue
this growth by writing an article of your own. You should write an article about something you
are very knowledgeable about so that you can write a complete and informative article. Articles
created as test pages, pure vandalism, attack pages, etc. will be deleted on the spot, without any
further debate.

6. Remove spam:
Wikipedia is accessed by millions of people every day, thus, there tends to be a lot of vandalism
or spamming. People who vandalize or spam a page may have added inappropriate links,
blanked the page, added nonsense, etc. You can help out by removing, or reverting, this
vandalism. Removing vandalism will make Wikipedia a better place for people to gather
information and resources.

7. Help out:
Even though Wikipedia is an encyclopedia, it is also a community. You can help out
newcomers to make it a bigger and better community for the encyclopedia.

8. Do some maintenance
You can help Wikipedia run optimally by doing maintenance tasks like removing copyright
violations, fixing up articles, participating in deletion processes, and all sorts of other things.

9. Revert vandalism:

Use tools if you like. If you're getting good at it, you'll get a tool called 'rollback' that lets you
revert vandalism faster. Remember, spam is also vandalism! If somebody is persistent about
vandalising a page, report them to the 'Administrator Intervention against Vandalism' board -
AIV for short - once they have been warned suitably.

CONTRIBUTING TO ANY PROMINENT OPEN SOURCE PROJECT OF


STUDENT’S CHOICE.
Why you Should Contribute to Open-Source
Contributing to open source projects can be a rewarding way to learn, teach, share, and build
experience.
There are plenty of reasons why you should contribute to an open source project, such as:
1. To improve the software you rely on daily.
2. To find a mentor if you need one.
3. To learn new skills or improve on existing ones.
4. To share your skills.
5. To gain a much deeper knowledge about the software you're using.
6. To build up your reputation and help grow your career.
7. Plus, it's fun and gives you personal satisfaction and hey, you never know who is
watching, maybe it's your next employer or partner

4
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

Roles in a typical OS Project


In a typical OS project we will have the following people:

 Author - This is the person who created the project. They have the power to assign new
roles to other members to help with the project's maintenance.
 Owner - The owner has administrative ownership of the project (and can be the same
person as the author)
 Maintainers - These people are responsible for driving the vision and goals of the
project. They're usually people who feel responsible for the direction of the project and
who are committed to improving it.
 Contributors - Contributors add to the project in one way or another. They follow the
same code review process, are subject to the same requirements on code style, and so on.
 Community Members/Users - These valuable members of the community can provide
feedback about features, bug reports, and more.

Some common contributions can be through:


1. Adding a description to a project's documentation to elaborate on a certain point, mostly
referred to as a README file.
2. Giving guidance on a specific project and how to use it.
3. Adding sample output to show how the code works.
4. Writing in-depth tutorials for the project.
5. Adding translation for a project - A good place to start with this might be with
the freeCodeCamp's translation program.
6. Answering questions about a project (like on Stack Overflow or Reddit)
7. You can offer to mentor another contributor.
8. You can fix typos and arrange the project's work folder correctly.

4.3 STARTING AND MAINTAINING OWN OPEN SOURCE PROJECT

How to start an open-source project?

The process can be classified as in three phases,

1. Individual senses the need of the project


2. Announcing the intent to develop it to public
3. Source Code of a mature software is made available to the Public

1. Individual senses the need of the project: This is the phase when a developer thinks
about developing open-source software that is required by the people in the community,
by the corporates or by day to day users. He/She senses the need for a certain kind of
software that should be available in the market so that everyone can benefit from the
development.
2. Announcing the intent to develop it to public: When a developer thinks of developing
certain software there are multiple hurdles he might face and also have lack of

5
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

resources; here resources can be termed as the time to invest, Tools Required and the
utilities that might help for the development. In such cases, the developer thinks of
releasing the Idea to the public wherein he proposes the technologies required, are of
specialization and also the tools that are required to develop that particular idea into a
fully functional project.
3. Source Code of a mature software is made available to the Public: No one is going
to contribute until you show some intent and approach towards the development of the
software. The developer tries to build software which will be modified and updated by
the people in Community and the one who use it.

Maintain Documentation

Documentation that is careful, efficient, and serves the expected communities of your project
will help grow your client base. After some time, your client base will turn into the contributors
to your open-source software.

Documentation can come in numerous structures and can target various crowds. As a
component of your documentation, and relying upon the extent of your work, you may choose
to do at least one of the accompanying,

1. A guide that will introduce the project to the public that you have developed.
2. You can even design tutorials to give people a brief walkthrough of what you’ve
developed.
3. The most required document is the one that contains the Frequently Asked Questions.
4. There should be a document that must help the user Troubleshoot the errors.
5. Video Tutorials can be of a plus point if provided.

These few documents will make your client base very strong.

4.4 UNDERSTANDING OPEN SOURCE ECOSYSTEM

An open source ecosystem is a collect ion of individuals, organizat ions, and


resources that work together to create and maint ain a shared body of open source
software.
The term is often used to describe the communit y of developers and users who
contribute to and use a particular open source project or applicat ion.
The open source ecosystem around a project or applicat ion can be thought of as a
web of interconnected people and organizations, each playing a specific role in
the development and maintenance of the software.
For example, a company that uses open source software in its products may
contribute code back to the project to improve it for everyone, or provide funding
for a developer to work on the project full-time.
A nonprofit organizat ion may provide infrastructure a nd support for the project,
or advocate for the use of open source software in government and educat ion.

6
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

4.5 OPEN SOURCE OPERATING SYSTEMS

a) GNU/Linux
b) Android
c) Free BSD
d) Open Solaris.

Q. WRITE AND EXPLAIN FEATURES OF LINUX OPERATING SYSTEM.


a) GNU/Linux
 GNU is a Unix-like operating system. That means it is a collection of many programs:
applications, libraries, developer tools, even games.
 The development of GNU, started in January 1984, is known as the GNU Project. Many
of the programs in GNU are released under the auspices of the GNU Project; those we
call GNU packages.
 The name “GNU” is a recursive acronym for “GNU's Not Unix.”
 The program in a Unix-like system that allocates machine resources and talks to the
hardware is called the “kernel.”
 GNU is typically used with a kernel called Linux.
 This combination is the GNU/Linux operating system. GNU/Linux is used by
millions, though many call it “Linux” by mistake.

A typical Linux system contains the following components:

1. Hardware layer: This layer comprises all the peripheral devices such as (RAM/
HDD/ CPU etc.).
2. Kernel: It is Linux's main component and is also in charge of many of the LINUX
operating system's functions. It communicates with hardware directly and delivers
low-level operations to upper-layer elements.
3. Shell/GCC: It is a user-to-kernel interface that hides the complexities of the kernel's
operations from users. Shell processes the user's command and performs the kernel's
functions.
4. Application Software: The desktop environment that comes with your Linux OS or
that you choose to install has individual applications installed. Most Linux
distributions, such as Ubuntu, come with dedicated app stores to find and install the
software.
5. Bootloader: Computers go through a startup process known as booting. This boot
process requires instruction, and your operating system is in charge of it. The
bootloader for your operating system precedes the process when you turn on your
computer.
6. Background services: Also known as "daemons," these small systems serve as
workers in the background, assuring that critical tasks such as scheduling, publishing,
and multimedia work properly. They begin to run once the user logs in to the
computer or right after the system gets booted

FEATURES:
1. Portable Environment
2. Free and Open-Source

7
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

3. Shell/ Command-line Interface


4. End-to-end encryption
5. Graphical User Interface (GUI)
6. Configure Keyboards into Different Languages
7. Frequent New Updates
8. Lightweight Infrastructure
9. Extremely Flexible
10. Best for developers

b) ANDROID

Android is a Linux-based operating system it is designed primarily for touch screens


mobile devices such as smartphones and tablet computers. The operating system has
developed a lot in the last 15 years starting from black and white phones to recent
smartphones or mini computers. One of the most widely used mobile OS these days is
android
Android Architecture
The android is an operating system and is a stack of software components which is divided into
five sections and four main layers that is
 Linux kernel
 Libraries
 Android runtime
 Application Framework
 Applications

Features of Android Operating System


The unique features/characteristics of the android operating system include the following.
1. Near Field Communication (NFC)
2. Alternate Keyboards
3. IR Transmission
4. No-Touch Control
5. Automation
6. Wireless App Downloads
7. Storage & Battery Swap
8. Custom Home Screen
9. Widgets
10. Custom ROMs
11. Headset layout
12. Storage
13. Connectivity
14. Messaging
15. Multilanguage support
16. Multi-touch
17. Video calling
18. Screen capture
19. External storage
20. Streaming media support
21. Optimized graphics

8
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

c) Free BSD

Q. EXPLAIN FREEBSD OPERATING SYSTEM.

 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.

 Cutting edge features


FreeBSD offers advanced networking, performance, security and compatibility features today
which are still missing in other operating systems, even some of the best commercial ones.

 Powerful Internet solutions


FreeBSD makes an ideal Internet or Intranet server. It provides robust network services under
the heaviest loads and uses memory efficiently to maintain good response times for thousands
of simultaneous user processes.

 Advanced Embedded Platform


FreeBSD brings advanced network operating system features to appliance and embedded
platforms, from higher-end Intel-based appliances to ARM, PowerPC, and MIPS hardware
platforms. From mail and web appliances to routers, time servers, and wireless access points,
vendors around the world rely on FreeBSD

 Run a huge number of applications


With over 33,000 ported libraries and applications, FreeBSD supports applications for desktop,
server, appliance, and embedded environments.

 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.

9
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

d) Open Solaris

Q. WRITE A SHORT NOTE ON OPEN SOLARIS OPERATING SYSTEM.

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
1. Security: Solaris includes some of the world's most advanced security features, such as
Process and User Rights
2. Management: Trusted Extensions for Mandatory Access Control, the Cryptographic
Framework and Secure by Default Networking that allow you to safely deliver new
Solutions consolidate with security and protect mission-critical data
3. Performance: Solaris delivers indisputable performance advantages for database, Web,
and Java technology-based services, as well as massive scalability, shattering world
records by delivering unbeatable price/ performance advantages.
4. Networking: With its optimized network stack and support for today’s advanced network
computing protocols, Solaris delivers high-performance networking to most applications
without modification.
5. Data Management: Solaris offers dramatic advances in file system and volume
management by delivering virtually unlimited capacity and near-zero administration
6. Interoperability: Understanding that businesses today rely on a mix of technologies
from a variety of vendors, Solaris provides tools to enable seamless interoperability with
hundreds of heterogeneous hardware and software platforms
7. 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
8. 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
9. 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
10. Availability: Solaris features, such as Predictive Self-Healing, support automatic
diagnosis and recovery from hardware and application faults, maximizing system uptime.
11. Support & Services: Offering a broad portfolio of world-class services, Sun can help
you extract maximum value from the Solaris Operating System.

10
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

4.6 OPEN SOURCE HARDWARE

Defining Open Source Hardware:


Simply put, open source hardware is a term that refers to any type of device whose
hardware specifications are fully documented or otherwise available.
 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. It makes it much easier to
tweak a device by cutting wires, plugging in additional components and so on.
Open Source Hardware Origins
Benefits of open hardware sound a lot like the ones you get from open source software.
The relationship between open hardware and open source software is not incidental.
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.
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.
Why Open Hardware Matters Today
Closed hardware remained the norm as the PC age gave way to the era of mobile devices and
the cloud. For ordinary users, open hardware has not traditionally offered many advantages.
But open hardware is poised to assume more importance going forward. This is due in part to
the influence of open source software, which has now become predominant. As organizations
come to expect all software source code to be open in order to maximize interoperability, it's
only natural for them to think the same way about 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.
The software-defined revolution is likely to increase demand for open source hardware

11
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

4.7 VIRTUALIZATION TECHNOLOGIES


Q. DISCUSS VIRTUALIZATION ALONG WITH ITS’ TYPES.
Q. WRITE SHORT NOTE ON VIRTUALIZATION TECHNOLOGY. STATE ITS’
ANY FIVE ADVANTAGES & DISADVANTAGES.

 Virtualization is technology that lets you create useful IT services using resources that
are traditionally bound to hardware.
 It allows you to use a physical machine’s full capacity by distributing its capabilities
among many users or environments.
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.

Examples of open-source Virtualization Technologies:


KVM
Short for Kernel-based Virtual Machine, KVM is not as widely deployed as other open source
hypervisors, but its stature is growing rapidly.
KVM is a full virtualization hypervisor and can run both Windows and Linux guests.
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.

12
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

Xen supports paravirtualization and “hardware assisted” virtualization for modified and un-
modified guests, respectively.
Guests can be Linux or Windows, but the overwhelming majority of guests are Linux variants,
particularly in the hosting space.
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.
VirtualBox
VirtualBox is an open source desktop virtualization tool originally developed by German
company, innotek, which was acquired by Sun Microsystems in February 2008.
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.
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.

TYPES OF VIRTUALIZATION

7 Types of Virtualization
Virtualization is implemented in different ways, depending on the programs. There are seven
types of virtualization, which you’re going to learn below.

1. OS (Operating System) Virtualization


2. Application-Server Virtualization
3. Application Virtualization
4. Administrative Virtualization
5. Network Virtualization
6. Hardware Virtualization
7. Storage Virtualization

1. OS (Operating System) Virtualization


You’re likely familiar with the term “operating system. This is a common term among
computer users and even on mobile devices. Our computers require operating systems to
function effectively. This is why sometimes technicians may tell you your operating system is
faulty, which is why you cannot perform a certain task. These operating systems are
programmes that businesses create and visualise for many purposes. This aids enterprises in
lowering the expense of developing their operating systems and the time it takes to assemble
all of the necessary components.

13
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

Operating systems such as Windows, Linux, etc., are virtualized and thus available for users
all over the world. The OS is available to users for an annual fee. To keep the OS functional,
the developers normally execute upgrades and ask you to upgrade on your end.
2. Application-Server Virtualization
Application-Server Virtualization has been around since the start of virtualization. Like other
types of virtualization, developed servers are moved to the virtual environment to serve
multiple users. The process involves dividing a physical server into several distinctive and
secluded virtual servers. This is usually done by using a software application. After which each
virtual server independently runs its own operating system. This helps eliminate server
complexity, increase application performance and also deploy workload speedily.
Application-Server Virtualization is mostly utilized by web hosting companies to provide
secure and fast web hosting services. Without virtualizing servers, the servers use only a little
part of their processing power. The resultant effect here is that the server will sit idle since the
workload is distributed to a small portion of the network’s servers. Also, data centers would
become crowded with underutilized servers.
3. Application Virtualization
Don’t get confused; this is entirely different from application-server virtualization. Virtualized
applications are the ones we run on our devices, and they seem as if they are naturally stored
on our computer’s hard drive. But in reality, the applications are running on a server. Though
they utilize your computer’s RAM and CPU to run, they are centrally stored on a server, from
which they were virtualized. Examples of such applications are cloud-based software and also
Microsoft Terminal Services. These apps could be in your device, but you do not control them
entirely, the developer can make changes from their servers—such as upgrades.
4. Administrative Virtualization
This type of virtualization is deployed in the process of providing administrative roles to
various users of a system. It is mostly used in data centers to define the roles of users. That is,
a specific user may have access to some files, servers, etc., while another user may not have
the same access. Basically, this works via the user policy of the application or server. Users
can have access to files and other data but cannot make any changes to them.
5. Network Virtualization
As you already know about virtualization, it is all about moving a developed program that plays
specific functions into the virtual space—the internet, of course. Network virtualization
and EDR is the combination of all physical equipment used for networking into a single
software package. This software is then pushed to the internet as a service for general use.
Network virtualization also involves dividing bandwidth into several independent channels,
each assigned to servers and devices.

ADVANTAGES & DISADVANTAGES.

Advantages of virtualization
1. Cheap- IT infrastructures find virtualization to be a more affordable implementation
option because it doesn't require the use or installation of actual hardware components.

14
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

2. Efficient-By downloading the new versions of the software and hardware from a third-party
supplier, efficient virtualization also enables automatic upgrades of both

3. Disaster recovery-When servers are virtualized, disaster recovery is relatively simple thanks
to fast backup restoration and current snapshots of your virtual machines. If a disaster occurs
in the data centre or server room itself, you can still relocate such virtual machines to a cloud
provider.

4. Deployment
Resources may be deployed much more quickly when employing virtualization technology. It
is feasible to significantly reduce the amount of time required for setting up physical devices
or creating local networks.

5. Encourages digital entrepreneurship

Prior to widespread virtualization, the average person found it nearly impossible to start a
digital business. Thanks to the multiple networks, servers, and storage devices that are now
accessible, almost anyone can start their own side business or turn into a business owner

6. Saves energy
Both individuals and businesses can save energy by using virtualization. The rate of energy
consumption can be reduced because no local hardware or software alternatives are being
employed

7. Improved uptime
Virtualization technologies have increased uptime dramatically.

8. Consistent cost

People and corporations can have predictable expenses for their IT requirements because third-
party vendors frequently offer choices for virtualization.

Disadvantages of virtualization

1. Exorbitant costs of implementation

Virtualization would result in very low costs for the common person or business. In a
virtualization environment, the suppliers, however, may incur very significant implementation
expenses. It follows that devices must either be created, made, or purchased for implementation
when hardware and software are eventually required.

2. Restraints

Virtualization is hampered by a number of issues. Virtualization cannot be used with every


server and application currently in existence. Therefore, certain firms' IT infrastructures would
not be able to support the virtualized solutions.

3. Problems with availability

15
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

The accessibility of a company is another important factor. Long-term data linking is required.
If not, the business would become less competitive in the market. Because every document
from and for the client is essential to the service provider, availability difficulties might be seen
as one of the drawbacks of virtualization.

4. Time-intensive

In comparison to local systems, virtualization takes less time to implement, but it ultimately
costs users time. This is due to the fact that there are additional procedures that need to be
completed in order to attain the desired result.

5. Threats to security

Information is our current currency. Having money allows you to make money. Without it,
people will forget about you. The success of a corporation depends on information, hence it is
frequently targeted.

6. Problems with scalability

People can grow a business or opportunity quickly owing to virtualization, but won't be able to
grow it as large as they would like. In a virtualization network, growth generates latency since
multiple firms share the same resources.

7. A Number of links must interact

If users have access to local equipment, they have complete control over their options. With
virtualization, people lose control because numerous ties are required to cooperate in order to
complete the same task.

4.8 CONTAINERIZATION TECHNOLOGIES


Q. WHAT IS CONTAINERIZATION? EXPLAIN THE DOCKER TECHNOLOGY.
Q. DISCUSS CONTAINERIZATION TECHNOLOGY FOR IDE. STATE ITS’
ADVANTAGES & DISADVANTAGES.

CONTAINERIZATION

 Containerization is the packaging of software code with just the operating


system (OS) libraries and dependencies required to run the code to create a single
lightweight executable—called a container—that runs consistently on any
infrastructure.
 More portable and resource-efficient than virtual machines (VMs), containers have
become the de facto compute units of modern cloud-native applications.
 Containerization allows developers to create and deploy applications faster and
more securely.
 With traditional methods, code is developed in a specific computing environment
which, when transferred to a new location, often results in bugs and errors. For example,
when a developer transfers code from a desktop computer to a VM or from a Linux to

16
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

a Windows operating system. Containerization eliminates this problem by bundling


the application code together with the related configuration files, libraries, and
dependencies required for it to run. This single package of software or “container” is
abstracted away from the host operating system, and hence, it stands alone and becomes
portable—able to run across any platform or cloud, free of issues.
 Containers are often referred to as “lightweight,” meaning they share the machine’s
operating system kernel and do not require the overhead of associating an operating
system within each application.
 Containers are inherently smaller in capacity than a VM and require less start-up
time, allowing far more containers to run on the same compute capacity as a single
VM. This drives higher server efficiencies and, in turn, reduces server and licensing
costs.

What are containers?


One of the goals of modern software development is to keep applications on the same host or
cluster isolated from one another so they don’t unduly interfere with each other’s operation or
maintenance. This can be difficult due to libraries, and other software components required for
them to run. One solution to this problem has been virtual machines, which keep applications
on the same hardware entirely separate, and reduce conflicts among software components and
competition for hardware resources to a minimum. But virtual machines are bulky—each
requires its own OS, so is typically gigabytes in size—and difficult to maintain and upgrade.
Containers, by contrast, isolate applications’ execution environments from one another, but
share the underlying OS kernel. They’re typically measured in megabytes, use far fewer
resources than VMs, and start up almost immediately. They can be packed far more densely on
the same hardware and spun up and down en masse with far less effort and overhead.
Containers provide a highly efficient and highly granular mechanism for combining software
components into the kinds of application and service stacks needed in a modern enterprise, and
for keeping those software components updated and maintained.

ADVANTAGES & BENEFITS OF CONTAINERIZATION:

17
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

1. Portability: A container creates an executable package of software that is not tied to or


dependent upon the host operating system, and hence, is portable and able to run uniformly
and consistently across any platform or cloud.
2. Agility: Software developers can use agile or DevOps tools and processes for rapid
application development and enhancement.
3. Speed: Containers are often referred to as “lightweight,” meaning they share the machine’s
operating system (OS) kernel and are not bogged down with this extra overhead. It also
reduces server and licensing costs while speeding up start-times as there is no operating
system to boot.
4. Fault isolation: Each containerized application is isolated and operates independently of
others. The failure of one container does not affect the continued operation of any other
containers.
5. Efficiency: Software running in containerized environments shares the machine’s OS
kernel, and application layers within a container can be shared across containers. Thus,
containers are inherently smaller in capacity than a VM and require less start-up time.This
drives higher server efficiencies, reducing server and licensing costs.
6. Ease of management: A container orchestration platform automates the installation,
scaling, and management of containerized workloads and services. They can ease
management tasks such as scaling containerized apps, rolling out new versions of apps, and
providing monitoring, logging and debugging, among other functions
7. Security: The isolation of applications as containers inherently prevents the invasion of
malicious code from affecting other containers or the host system. Additionally, security
permissions can be defined to automatically block unwanted components from entering
containers or limit communications with unnecessary resources.

DISADVANTAGES:

1. Security: Containers share the same host kernel, which can pose a security risk. If a
container is compromised, it can potentially affect other containers on the same host.
However, container-specific security measures, such as container isolation and network
segmentation, can mitigate this risk.

2. Complexity: Containers can be complex to set up and manage, especially in large-scale


environments. Container orchestration tools, such as Kubernetes, can help to simplify the
process, but they can also add complexity.

3. Storage: Containers are designed to be stateless, meaning they don’t store data or state.
This can make managing persistent data, such as databases, a complex within a container
environment. However, some solutions, such as persistent volumes, can be used to collect
data stored in a docker container environment.

4. Networking: Containers can be challenging to network, especially across multiple hosts or


environments. Container networking can be complex, and it requires careful planning and
management to ensure that containers can communicate with each other and with external
services.

5. Compatibility: Containers are designed to run on a specific container runtime, such as


Docker or Kubernetes. This means that applications packaged in one container format may
not be compatible with another container runtime. However, some tools, such as container
conversion, can convert containers between different forms.

18
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

Q. DESCRIBE THE FOLLOWING:


a) Docker
b) Development tools
c) IDEs
d) debuggers
e) Programming languages

a) DOCKER
Docker is a software platform for building applications based on containers — small and
lightweight execution environments that make shared use of the operating system kernel but
otherwise run in isolation from one another.
 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.

b) 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

19
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

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.

c) IDEs
 What is Container Management Software?
Container management platforms facilitate the organization and virtualization of software
containers, which may also be referred to as operating-system-level virtualizations. Developers
use containers to launch, test, and secure applications in resource-independent environments.
Containers house components of applications, libraries, or groups of source code that can be
executed on demand. The management platforms help users allocate resources to optimize
efficiency and balance system workloads. Containers provide a flexible, portable platform to
organize, automate, and distribute applications.
 Amazon Elastic Container Service (Amazon ECS)
 Mirantis Kubernetes Engine (formerly Docker Enterprise)
 Google Kubernetes Engine (GKE)
 AWS Fargate
 Kubernetes
 IBM Cloud Kubernetes Service
 Azure Kubernetes Service (AKS)
 Portainer
 Rancher

d) DEBUGGERS & PROGRAMMING LANGUAGES

DEBUGGERS

Debugging is the process of finding and reducing the number of bugs in computer software and
electronic hardware. When a program crashes, the debugger shows the position in the original
code. A good debugger plays an essential role in software development.
Debugging can be more difficult when various subsystems are tightly coupled, as changes in
one may cause bugs to appear in another.
Three different types of debuggers can be utilized in open source systems:
1. source-level debuggers
2. memory debuggers
3. bug tracking software.

20
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

PROGRAMMING LANGUAGES
Open-source programming languages are not owned by anyone. They are easily available, they
are usually maintained by a community, and on many occasions, they are also freely distributed
under different open-source licenses. This means that open-source languages are mostly open
so that anyone can modify them, and they are usually not proprietary. Up to a certain extent,
and depending on the open-source protocol used, they can be more or less open to the public.
Some of the world’s most popular programming languages are open source. Some commonly
used languages in open source environment are:

Python
Java
JavaScript

4.9 LAMP

Q. DESCRIBE IN BRIEF 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:

21
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

Four Components of LAMP Stack:


1. Linux
2. Apache
3. MySQL
4. PHP
1. Linux
Linux is the operating system layer and the backbone of the LAMP stack.
2. Apache
Apache HTTP Server is a web server software that runs on top of the Linux
operating system.
3. 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.
MySQL earned its reputation as an acclaimed database system as it supports SQL and relational
tables. By doing so, it makes it much easier to establish dynamic enterprise-level databases.
Consider MySQL if you:
• Need to change the content of your website often
• Have a lot of user-contributed content
• Rely on user feedback
• Have a lot of content that needs to be stored and easily retrieved
4. 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.
PHP is the fourth layer of the original stack because it interacts exceptionally well with
MySQL. It is commonly used for web development because it is a dynamically typed language,
making it fast and easy to work with. This feature may be especially appealing if you are a
beginner. The reason why PHP is so convenient to use is that it can be embedded into HTML
enabling to jump in and out of it as you wish.

Advantages of a LAMP Stack


1. The LAMP stack consists of four (4) components, all of which are examples of Free and
Open-Source Software (FOSS). As they are free and available for download, it attracts the
attention of many users who wish to avoid paying large sums of money when developing their
website.
2. Because it is FOSS, the source code of the software is shared and available for people to
make changes and improvements, enhancing its overall performance.

22
FUNDAMENTALS OF OPEN SOURCE SOFTWARE

3. The LAMP stack has proven to be a secure and stable platform thanks to its vast community
that contributes when any problems arise.
4. What makes it so attractive is that you can easily customize the stack and interchange the
components with other open source software to suit your needs.

4.10 OPEN SOURCE DATABASE TECHNOLOGIES


Q. EXPLAIN ANY THREE OPEN SOURCE DATABASE TECHNOLOGIES.
What is open-source database software?
Traditionally, databases have been proprietary tools provided by Oracle, IBM, Microsoft,
and a number of other smaller vendors. Over recent years though, and especially for new
projects, open source databases and database management tools have steadily grown in
maturity and importance. In many cases, open-source database software includes both
database software, and the database management tools needed to support the database.
Open-Source Database Software Features & Capabilities
Some of the most common features provided by open-source database software include:
• Relational and Nonrelational Databases
• Support for Multiple Platforms
• Supports databases and database management
• Data Security
• Data Collaboration
Pricing Information
All open-source database software options are available for free to businesses that can support
them independently. That said, a number of open-source database options offer paid support,
hosting, or monitoring. Pricing depends highly on which features are needed by the
organization.
MySQL
MySQL is by far the most popular open-source database out there. Vendors often include
it in software packages as the application database.
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.
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.
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.

23

You might also like