Foss Unit IV Notes
Foss Unit IV Notes
Introduction to Wikipedia
Criticisms of Wikipedia include assertions that its openness makes it unreliable and
unauthorative. Because articles don't include bylines, authors aren't publicly
accountable for what they write. Similarly, because anyone can edit any article, the
site's entries are vulnerable to unscrupulous edits. In August 2007, Virgil Griffiths
created a site, WikiScanner, where users could track the sources of edits to
Wikipedia entries. Griffiths reported that self-serving edits typically involved
whitewashing or removal of criticism of a person or organization or, conversely,
insertion of negative comments into the entry about a competitor. Wikipedia
depends upon the vigilance of editors to find and reverse such changes to content.
UNIT IV FOSS
Contributing to Wikipedia
Getting started
As a new editor, also known as a contributor, you may feel a little overwhelmed by
the sheer size and scope of this project called Wikipedia. Don't worry too much if
you don't understand everything at first, as it is acceptable to use common sense as
you go about editing. Wikipedia not only allows you to create, revise, and edit
articles, but it wants you to do so.
Creating an account is free of charge and has several benefits (for example, the
ability to create pages, upload media and edit without one's IP address being
visible to the public).
Instead of a term and its meaning, which typically belong in Wiktionary, each
article is focused on a single subject. Original research is not published on
Wikipedia.
The quality of Wikipedia articles varies widely; many are very good, but some lack
depth and clarity, contain bias or are out of date. In general, high-quality articles
have the following elements: a lead section that gives an easy-to-understand
UNIT IV FOSS
overview, a clear structure, balanced coverage, neutral content, and are based upon
verifiable information found in reliable sources.
how to start an open-source project? The process can be classified as in three phases,
● 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.
● 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 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.
● 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.
Now, Let's talk about maintaining an Open-Source Project. This is a vast topic and
needs to be understood very clearly.
Introduction:
group and are maintaining one explicit part of the undertaking, you will be giving
significant support of the larger developer community network.
While open-source contributions through demands from the community are vital
for guaranteeing that product is as helpful as it tends to be for end clients,
maintainers effect forming the general task. project maintainers are very engaged
with the open-source software they oversee, from everyday association and
advancement to interfacing with people in general and giving brief and successful
feedback to the contributors.
This article will take you through certain tips for maintaining open source projects.
Being a leader of an open-source project accompanies both specialized and
non-specialized obligations to help encourage a client base and network around
your undertaking. Assuming the job of a maintainer is a chance to gain from
others, get involved in the venture the board, and watch your undertaking develop
and change as your clients become potential contributors.
Maintain Documentation
Since you'll be thoroughly considering the code you are making at any rate, and
may even be writing down notes, it tends to be beneficial to fuse documentation as
a feature of your advancement procedure while it is crisp in your psyche. You may
even need to think about composing the documentation before the code, following
the way of thinking of a documentation-driven advancement approach that
UNIT IV FOSS
document includes first and builds up those highlights after working out what they
will do.
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.
Organize Feedbacks
Since any client can record feedback, not all feedbacks will report bugs or be
include demands; you may get questions using the feedback tracker tool, or you
may get demands for littler improvements to the UI, for instance. It is ideal to
arrange these feedbacks however much as could reasonably be expected and to be
open to the clients who are making these feedbacks.
Feedbacks ought to speak to a solid task that should be done on the source code,
and you should organize them as needs be. You and your community of developers
will have a comprehension of the measure of time and can dedicate to documented
feedbacks, and together you can work cooperatively to settle on choices and make
a noteworthy updating. At the point when you realize you won't have the option to
find a workable pace issue inside a brisk period, you can even now remark on the
feedback to tell the client that you have perused the feedback and that you'll find a
workable pace you can, and on the off chance that you can give a normal course of
events to when you can take a step on the feedbacks once more.
The term "open source" refers to computer software or applications where the
owners or copyright holders enable the users or third parties to use, see, and edit
the product's source code. The source code of an open-source OS is publicly
visible and editable. The usually operating systems such as Apple's iOS,
Microsoft's Windows, and Apple's Mac OS are closed operating systems.
Open-Source Software is licensed in such a way that it is permissible to produce as
many copies as you want and to use them wherever you like. It generally uses
UNIT IV FOSS
fewer resources than its commercial counterpart because it lacks any code for
licensing, promoting other products, authentication, attaching advertisements, etc.
The open-source operating system allows the use of code that is freely distributed
and available to anyone and for commercial purposes. Being an open-source
application or program, the program source code of an open-source OS is
available. The user may modify or change those codes and develop new
applications according to the user requirement. Some basic examples of the
open-source operating systems are Linux, Open Solaris, Free RTOS, Open BDS,
Free BSD, Minix, etc.
In 1997, the first Open-Source software was released. Despite the industry, there
are now Open-Source alternatives for every Software program. Thanks to
technological developments and innovations, many Open-Source Operating
Systems have been developed since the dawn of the 21st century.
It works similarly to a closed operating system, except that the user may modify
the source code of the program or application. There may be a difference in
function even if there is no difference in performance.
While the former operating system is secure and hassle-free, and the latter requires
some technical knowledge, you may customize these and increase performance.
UNIT IV FOSS
There is no specific way or framework for working on the open-source OS, but it
may be customized on the user requirements.
GNU/Linux
GNU stands for GNU's not Unix, which makes the term a recursive acronym, or an
acronym in which one of the letters stands for the acronym itself. The GNU Project
initially created most of the components and services used in GNU/Linux and later
added the Linux kernel to create the GNU/Linux OS. The Linux kernel is the core
component of GNU/Linux, as it provides basic services and allocates OS
resources.
Although there are numerous distributions, Debian, Fedora and Ubuntu are three
user-friendly examples of GNU/Linux desktop distributions.
Fedora was developed by the Fedora Project and is sponsored by Red Hat Inc. Its
goal is to lead in open source technologies by focusing on integrating new
technologies and working closely with Linux-based communities.
The Ubuntu OS, which is based on the Debian Linux distribution, is composed of
free and open source software. Ubuntu is an OS typically used for cloud computing
and is supported by OpenStack.
Free software movement activist and programmer Richard Stallman announced the
GNU/Linux project and, with others, formed FSF in 1985.
The original purpose of the GNU Project was to create a free OS. Free -- not in the
context of cost -- but in terms of giving users the freedom to run, copy, distribute,
study, change and improve the software as needed. As such, individuals can change
the OS and exchange its components however they want. The Linux community
participates in the development and improvement of the OS.
Software developers profit by selling support and services around their own
GNU/Linux distribution. Corporate customers buy security updates and support.
UNIT IV FOSS
Android
The Android platform includes an operating system based upon the Linux kernel, a
GUI, a web browser and end-user applications that can be downloaded. Although
the initial demonstrations of Android featured a generic QWERTY smartphone and
large VGA screen, the operating system was written to run on relatively
inexpensive handsets with conventional numeric keypads.
Android was released under the Apache v2 open source license; this allows for
many variations of the OS to be developed for other devices, such as gaming
consoles and digital cameras. Android is based on open source software, but most
Android devices come preinstalled with a suite of proprietary software, such as
Google Maps, YouTube, Google Chrome and Gmail.
Android began its life as a Palo Alto-based startup company called Android Inc., in
2003. Originally, the company set out to develop an operating system for digital
cameras, but it abandoned those efforts in lieu of reaching a broader market.
UNIT IV FOSS
Google acquired Android Inc. and its key employees in 2005 for at least $50
million. Google marketed the early mobile platform to handset manufacturers and
mobile carriers with its major benefits as flexibility and upgradability.
Google was discreetly developing Android OS when Apple released the iPhone in
2007. Previous prototypes of an Android phone closely resembled a BlackBerry,
with a physical keyboard and no touchscreen. The launch of the iPhone, however,
changed the mobile computing market significantly and forced Android creators to
support touchscreens more heavily. Nevertheless, the HTC Dream, which was the
first commercially available smartphone to run Android OS, featured a QWERTY
keyboard and was met with some critical reception during its 2008 release.
In late 2007, the Open Handset Alliance (OHA) announced its formation. The
OHA was a coalition of more than 30 hardware, software and telecommunications
companies, including Google, Qualcomm, Broadcom, HTC, Intel, Samsung,
Motorola, Sprint, Texas Instruments and Japanese wireless carriers KDDI and NTT
DoCoMo. The alliance's goal was to contribute to the development of the first open
source platform for mobile devices.
Google released the public beta version of Android 1.0 for developers around the
same time of the alliance's announcement, in November 2007. It wasn't until
Google released Android 1.5 in April 2009 that Google introduced Android's
signature dessert-themed naming scheme; the name of Android 1.5 was "Cupcake."
Around the time of the release of Android 4.4 KitKat, Google released an official
UNIT IV FOSS
statement to explain the naming: "Since these devices make our lives so sweet,
each Android version is named after a dessert."
When a user boots a device, Android OS displays the home screen, which is the
primary navigation hub for Android devices and is comprised of widgets and app
icons. Widgets are informational displays that automatically update content such as
weather or news. The home screen display can differ based on the device
manufacturer that is running the OS. Users can also choose different themes for the
home screen via third-party apps on Google Play.
A status bar at the top of the home screen displays information about the device
and its connectivity, such as the Wi-Fi network that the device is connected to or
signal strength. Users can pull down the status bar with a swipe of a finger to view
a notification screen.
● Bluetooth
● Edge
● 3G communication protocols, like EV-DO and HSDPA
● Wi-Fi
● Autocorrect
● SMS and MMS messaging
● video/still digital cameras
● GPS
● compasses
● accelerometers
● accelerated 3D graphics
● multitasking applications
Free BSD
FreeBSD is a free and open-source UNIX OS that is developed from the Berkeley
Software Distribution (BSD). In 1993, the initial version of FreeBSD was
released. It was the most famous open-source BSD OS in 2005, and it was
responsible for over three-quarters of all BSD systems installed with a simple and
permissive license. It may not be labeled as a UNIX OS due to legal constraints
UNIT IV FOSS
while being compatible with UNIX internals and APIs. Because the license rules of
FreeBSD allow developers a great deal of freedom in using it, many FreeBSD code
has been reused by other operating systems (such as MAC OSX). However, it is
not categorized as a UNIX OS, and the MAC OSX does have an official UNIX
branding.
The Lynne Jolitz and William Jolitz developers renamed the OS 386BSD after
obtaining it to the 80386 CPUs. It is defined as a feature-complete operating
system due to its well-known characteristics, which contain full-fledged
documentation, tools, kernel, and device drivers. This OS's functional design
makes it suitable for several applications. As a result, it works in both desktop
environments and servers. It is widely rumored that it is used in developing Apple
OS.
Most of FreeBSD's codebase has found its way into other operating systems like
Darwin, TrueNAS, PlayStation 3, PlayStation 4, and Nintendo Switch gaming
consoles system software. Additional third-party software can be installed using
pkg, FreeBSD Ports, or manually compiling source code. A security team oversees
all software supplied in the base distribution as part of its initiatives.
There are various reasons where it may be used as an operating system. Let's take a
look at them one by one.
1. Server
configure FreeBSD operating system easily and use it as a web server, DNS server,
Firewall, FTP server, mail server, or router.
2. Networking
The FreeBSD TCP/IP stack considerably helps the widespread use of these
protocols. It provides supports a large range of networks, such as IPSec, SCTP,
IPv6, and wireless networking. FreeBSD supports even outdated protocols like IPX
and AppleTalk. In addition, FreeBSD currently supports CARP (Common
Address Redundancy Protocol). It was imported from the OpenBSD OS. CARP
enables numerous nodes to share a common set of IP addresses. The main benefit
of this is that if one node fails, others are available to handle the request.
3. Embedded System
4. Portability
Usually, the FreeBSD OS project splits the entire architecture into various tiers.
These tiers provided various levels of support. Tier 1 architecture is very mature
and fully supported. Tier 2 has major development. Tier 3 is experimental and
doesn't go via development. In the end, tier 4 architecture has no support.
5. Storage
Storage is an important feature of FreeBSD OS. It usually releases the soft updates
that secure a UFS (UNIX File System) filesystem's consistency. Its maintenance
UNIT IV FOSS
helps us if the computer system crashes. The filesystem snapshots allow you to
create a file instantaneously while performing other valuable tasks, and these
snapshots allow you to take a reliable backup of a live filesystem. GEOM is a
modular architecture that currently offers RAID levels 0, 1, and 3, caching,
concatenation, full disc encryption, and network-backed storage. GEOM also
allows you to create complicated storage solutions by chaining various
mechanisms together.
6. FreeBSD bhyve
Its base system now contains a new BSD-licensed, legacy-free hypervisor. It may
currently run all supported versions of OpenBSD OS, FreeBSD OS, and Linux via
the grub-bhyve port.
7. Kernel
Advantages
UNIT IV FOSS
1. It is a free and open-source operating system, so the users can use and
develop the OS for free.
3. FreeBSD gives a high priority to security, and its developers are always
working to make the OS as secure as possible.
4. It provides high stability for the database, internet server, client-server, etc.
7. It is a monolithic kernel.
Disadvantages
Open Solaris
UNIT IV FOSS
Oracle is offering a free 90-day trial version of the software. You would have to
buy a license from Oracle to utilize Solaris as a development platform if you
wanted to keep using the software after the free trial period ended.
Oracle Solaris is considered simple to update cloud installations. It has been used
for legacy apps on the cloud by offering the highest security and performance.
Over time, Oracle has added new capabilities and additions to Solaris, including
the service management facility, kernel zones, and other services.
The term typically refers to tangible machines and other physical systems which
are designed and released to the public in such a way that anyone can study,
modify, distribute, build, and sell the design or hardware based on that design.
UNIT IV FOSS
Open source hardware has much in common with open-source software in that it
has many of the same benefits.
Some good examples of open source hardware are Arduino boards. These boards
are part of a complete open source electronics prototyping platform including a
software development environment. A complete Arduino system is made up of
both open source software and hardware. Because the supporting software of
Arduino systems can be downloaded for free and the reference designs for the
hardware are available under an open source license, people could easily create
their own boards or build devices out of the Arduino software and hardware at a
minimal cost.
Just like open source software (OSS), open source hardware uses licenses. A
majority of these licenses are based on existing OSS licenses. Some of the widely
used licenses for open source hardware include the TAPR Open Hardware License,
Balloon Open Hardware License and the Hardware Design Public License.
Virtualization Technologies
systems, more than one virtual system and various applications on a single server.
The benefits of virtualization include greater efficiencies and economies of scale.
Hypervisors take the physical resources and separate them so they can be utilized
by the virtual environment. They can sit on top of an OS or they can be directly
installed onto the hardware. The latter is how most enterprises virtualize their
systems.
The Xen hypervisor is an open source software program that is responsible for
managing the low-level interactions that occur between virtual machines (VMs)
UNIT IV FOSS
and the physical hardware. In other words, the Xen hypervisor enables the
simultaneous creation, execution and management of various virtual machines in
one physical environment.
With the help of the hypervisor, the guest OS, normally interacting with true
hardware, is now doing so with a software emulation of that hardware; often, the
guest OS has no idea it's on virtualized hardware.
While the performance of this virtual system is not equal to the performance of the
operating system running on true hardware, the concept of virtualization works
because most guest operating systems and applications don't need the full use of
the underlying hardware.
This allows for greater flexibility, control and isolation by removing the
dependency on a given hardware platform. While initially meant for server
virtualization, the concept of virtualization has spread to applications, networks,
data and desktops.
3. System users work with and perform computations within the virtual
environment.
4. Once the virtual environment is running, a user or program can send an
instruction that requires extra resources form the physical environment.
In response, the hypervisor relays the message to the physical system and
stores the changes. This process will happen at an almost native speed.
Types of virtualization
You probably know a little about virtualization if you have ever divided your hard
drive into different partitions. A partition is the logical division of a hard disk drive
to create, in effect, two separate hard drives.
running in a data center server, access to it can be both more secure and
portable. The operating system license does still need to be accounted for
as well as the infrastructure.
6. Application virtualization is abstracting the application layer away
from the operating system. This way, the application can run in an
encapsulated form without being depended upon on by the operating
system underneath. This can allow a Windows application to run on
Linux and vice versa, in addition to adding a level of isolation.
Advantages of virtualization
Benefits of virtualization
also may not be an image or clone of the server available. If this is the
case, then the redeployment process can be time-consuming and tedious.
However, if the data center is virtualized, then the process is quick and
fairly simple. Virtual backup tools can expedite the process to minutes.
● Reduced heat and improved energy savings. Companies that use a lot
of hardware servers risk overheating their physical resources. The best
way to prevent this from happening is to decrease the number of servers
used for data management, and the best way to do this is through
virtualization.
● Better for the environment. Companies and data centers that utilize
copious amounts of hardware leave a large carbon footprint; they must
take responsibility for the pollution they are generating. Virtualization
can help reduce these effects by significantly decreasing the necessary
amounts of cooling and power, thus helping clean the air and the
atmosphere. As a result, companies and data centers that virtualize will
improve their reputation while also enhancing the quality of their
relationship with customers and the planet.
● Easier migration to the cloud. Virtualization brings companies closer to
experiencing a completely cloud-based environment. Virtual machines
may even be deployed from the data center in order to build a
cloud-based infrastructure. The ability to embrace a cloud-based mindset
with virtualization makes migrating to the cloud even easier.
● Lack of vendor dependency. Virtual machines are agnostic in hardware
configuration. As a result, virtualizing hardware and software means that
a company does not need to depend on a vendor for these physical
resources.
UNIT IV FOSS
Limitations of virtualization
There are also software licensing considerations that must be considered when
creating a virtualized environment. Companies must ensure that they have a clear
understanding of how their vendors view software use within a virtualized
environment. This is becoming less of a limitation as more software providers
adapt to the increased use of virtualization.
Converting to virtualization takes time and may come with a learning curve.
Implementing and controlling a virtualized environment demands each IT staff
member to be trained and possess expertise in virtualization. Furthermore, some
applications do not adapt well when brought into a virtual environment. The IT
staff will need to be prepared to face these challenges and should address them
prior to converting.
UNIT IV FOSS
There are also security risks involved with virtualization. Data is crucial to the
success of a business and, therefore, is a common target for attacks. The chances of
experiencing a data breach significantly increase while using virtualization.
Finally, in a virtual environment, users lose control of what they can do because
there are several links that must collaborate to perform the same task. If any part is
not working, then the entire operation will fail.
Containerization Technologies:
Containerization technology, by default, comes from the improvements of
virtualization. It is also commonly described as OS-level virtualization. Confusing,
is it? Let’s break it down.
In 2013, Docker was introduced, eliminating the said problem by disrupting the
software development processes. It allowed Linux-based codes to run efficiently on
UNIT IV FOSS
Docker
Docker overview
Docker provides the ability to package and run an application in a loosely isolated
environment called a container. The isolation and security lets you to run many
containers simultaneously on a given host. Containers are lightweight and contain
everything needed to run the application, so you don't need to rely on what's
installed on the host. You can share containers while you work, and be sure that
everyone you share with gets the same container that works in the same way.
Docker provides tooling and a platform to manage the lifecycle of your containers:
● Your developers write code locally and share their work with their
colleagues using Docker containers.
● They use Docker to push their applications into a test environment and run
automated and manual tests.
● When developers find bugs, they can fix them in the development
environment and redeploy them to the test environment for testing and
validation.
● When testing is complete, getting the fix to the customer is as simple as
pushing the updated image to the production environment.
Docker architecture
Docker uses a client-server architecture. The Docker client talks to the Docker
daemon, which does the heavy lifting of building, running, and distributing your
Docker containers. The Docker client and daemon can run on the same system, or
you can connect a Docker client to a remote Docker daemon. The Docker client
and daemon communicate using a REST API, over UNIX sockets or a network
interface. Another Docker client is Docker Compose, that lets you work with
applications consisting of a set of containers.
UNIT IV FOSS
The Docker daemon (dockerd) listens for Docker API requests and manages
Docker objects such as images, containers, networks, and volumes. A daemon can
also communicate with other daemons to manage Docker services.
The Docker client (docker) is the primary way that many Docker users interact
with Docker. When you use commands such as docker run, the client sends these
commands to dockerd, which carries them out. The docker command uses the
Docker API. The Docker client can communicate with more than one daemon.
Docker Desktop
microservices. Docker Desktop includes the Docker daemon (dockerd), the Docker
client (docker), Docker Compose, Docker Content Trust, Kubernetes, and
Credential Helper. For more information, see Docker Desktop.
Docker registries
A Docker registry stores Docker images. Docker Hub is a public registry that
anyone can use, and Docker looks for images on Docker Hub by default. You can
even run your own private registry.
When you use the docker pull or docker run commands, Docker pulls the required
images from your configured registry. When you use the docker push command,
Docker pushes your image to your configured registry.
Docker objects
When you use Docker, you are creating and using images, containers, networks,
volumes, plugins, and other objects. This section is a brief overview of some of
those objects.
Images
You might create your own images or you might only use those created by others
and published in a registry. To build your own image, you create a Dockerfile with
UNIT IV FOSS
a simple syntax for defining the steps needed to create the image and run it. Each
instruction in a Dockerfile creates a layer in the image. When you change the
Dockerfile and rebuild the image, only those layers which have changed are
rebuilt. This is part of what makes images so lightweight, small, and fast, when
compared to other virtualization technologies.
Containers
A container is a runnable instance of an image. You can create, start, stop, move, or
delete a container using the Docker API or CLI. You can connect a container to one
or more networks, attach storage to it, or even create a new image based on its
current state.
By default, a container is relatively well isolated from other containers and its host
machine. You can control how isolated a container's network, storage, or other
underlying subsystems are from other containers or from the host machine.
When you run this command, the following happens (assuming you are using the
default registry configuration):
1. If you don't have the ubuntu image locally, Docker pulls it from your
configured registry, as though you had run docker pull ubuntu manually.
2. Docker creates a new container, as though you had run a docker container
create command manually.
3. Docker allocates a read-write filesystem to the container, as its final layer.
This allows a running container to create or modify files and directories in
its local filesystem.
4. Docker creates a network interface to connect the container to the default
network, since you didn't specify any networking options. This includes
assigning an IP address to the container. By default, containers can connect
to external networks using the host machine's network connection.
5. Docker starts the container and executes /bin/bash. Because the container is
running interactively and attached to your terminal (due to the -i and -t
flags), you can provide input using your keyboard while Docker logs the
output to your terminal.
6. When you run exit to terminate the /bin/bash command, the container stops
but isn't removed. You can start it again or remove it.
Development tools
Software development tools are computer programs used by software development
teams to create, debug, manage and support applications, frameworks, systems,
and other programs. These tools are also commonly referred to as software
programming tools.
● Linkers
● Code editors
● GUI designers
● Performance analysis tools
● Assemblers
● Compilers
In some cases, one tool can house multiple functions. For example, one tool can act
as a code editor, a performance analysis tool, and a compiler. But in other cases,
you might have to purchase multiple tools to cover each function.
Now that we've examined the benefits of open source, let's look at some of the top
options available.
1. Git
UNIT IV FOSS
Git is a distributed code management and version-control system, often used with
web-based code management platforms like GitHub and GitLab. The integration
with these platforms makes it easy for teams to contribute and collaborate,
however getting the most out of Git will require some kind of third-party platform.
Some claim, however, that Git support for Windows is not as robust as it is for
Linux, which is potentially a turnoff for Windows-centric developers.
2. Apache Subversion
Also known as SVN, Subversion is another open source option for code
management. It's very similar to Git, although their major differences lie in the
code repositories: Git uses local repositories by default, whereas Subversion stores
code on a remote server. However, you can use SVN and Git together by
connecting them through git-svn, which allows you to interact with Subversion
repositories through your Git tooling.
3. Eclipse IDE
Eclipse is an open source IDE that features a wide ecosystem of plugins and
extensions. It's written primarily in Java -- and is most popular with Java
development -- but can be used to write code in almost any major programming
language. Eclipse features a continually growing plugin marketplace to support
customization of extension of capabilities. However, some Eclipse plugins are
dependent on others, which can make it tricky to add and remove those plugins
without breaking existing functionality.
4. Apache NetBeans
UNIT IV FOSS
5. EMACS
Emacs is an open source text editor written by GNU project members in the
mid-1980s. It has the ability to automate complex key entry sequences using
macros, and developers can use it as full-fledged IDE. The disadvantage to Emacs,
however, is the time it can take to configure Emacs and integrate it into your
environment. Some also say that the tool has a steep learning curve -- although
others argue it is easier than other text editors like Vim.
6. Vim
Vim is another decades-old open source text editor with an entrenched set of users.
Vim reportedly starts up a bit faster than Emacs, and some say it has a lower
learning curve. Other developers also claim that it requires less time to customize
to individual software environments, but there are developers that argue the
opposite too. But overall, Vim and Emacs are both excellent choices if you want a
tried-and-true open source development tool for editing code.
7. Atom
Atom is billed by GitHub as a "hackable" text editor that, like Emacs and Vim, can
be turned into a complete IDE. Atom offers features that cater to modern coding
needs, such as easy integration with GitHub and built-in support for collaborative
coding. However, some claim its performance is on the slow side, takes a little
UNIT IV FOSS
while to start, and consumes slightly more memory than expected for a typical text
editor.
8. Jenkins
Jenkins is a CI server that advertises a very large plugin ecosystem. These plugins
make it possible to integrate Jenkins with various source code management
systems and deployment environments. They also extend its functionality with
features like email notifications and timestamps that track how long various
Jenkins operations take to complete. Jenkins offers broad platform support and can
run on any modern OS, as well as inside a Docker container.
9. Chef
10. Ansible
IDEs
10 Open Source Editors And IDEs
The line of code needed for the website starts with one thing which is known
as text editor. There many text editors which are considered by the
developers but here is the list of top 5 which are trustable platforms to use by
anyone. Along with that, the top 5 open source IDE’s which work with the
development tools with text editor.
Let’s look into the 10 open source Editors and IDE’s as followings.
1. Atom
URL: https://atom.io/
to support well. It is free to use with multiple features which may please the
developers among all other text editors.
2. Brackets
URL: http://brackets.io/
Brackets has been popular due to the connection with Adobe since 2014. It
is a great platform to work on text editing through CSS, HTML and
JavaScript. The web development done through this platform leaves no
flaws within the website after completion. It supports the features like code
specification, tabs between the files, preview of live sessions, options to
change browsers and much more.
3. Notepad++
URL: https://notepad-plus-plus.org/
Notepad++ is a free text editor which provides high speed to the developers
for web development. It supports the C++ program size no matter what size
it is in. it is user-friendly along with proving multiple benefits to the
developers. It provides the space of more than 4MB with more than 40
language support. The users are able to define their own language and view
the web page according to the convenience.
UNIT IV FOSS
4. Sublime Text
URL: www.sublimetext.com/
One of the top text editors which most of the developers prefer to use is
Sublime text. It is light weight and fast to use. The performance is
exceptional with having multiple support of features. The plugins provide
ultimate convenience to the users and developers to optimize the web page.
The features include go to option, making changes to tabs and can be
customized easily through the users.
5. Vim
URL: https://www.vim.org/
Vim is an open source text editor which was released earlier than all other
platforms. It is old yet powerful to use until today. With the continuous
optimization and following the trends of technologies, it has adopted the fast
paced web development quickly. It is a favorite platform for many web
developers until now. The features include text coding, tab options, easy
interface, documentation, how to guide and much more. Users can easily
make changes to their page according to their choice through multiple
themes and backgrounds of their choice. Open Source IDEs
6. Eclipse
UNIT IV FOSS
URL: www.eclipse.org/
Eclipse is one of the top and trending IDE which supports the Java
development. It is the primary choice for developers when they are working
on editors and IDEs. It supports the apps of other languages like PHP, C++
and Python. The license of Eclipse established through Eclipse foundation
few years ago with supporting the apps cross-platform. It is widely available
for Linux, Windows and MAC.
7. NetBeans
URL: https://netbeans.org/about/os/
NetBeans support the features support of Java along with HTML 5 and C++.
It has functions like editing, supporting for verification, language modules
and more. It is under the Oracle corporation now which is why has a huge
popularity working in all the OS.
8. KDevelop
URL: https://www.kdevelop.org/
A great IDE to work with which runs on Windows, MAC and Linux. It
supports QML, PHP, C++ and Python programs. The workflow gets smooth
through this platform with coding becoming easier to manage. The quality of
code gets improved through the continuous functions which get applied
UNIT IV FOSS
whenever they are deployed. It is licensed under the GNU GPL with the
support of JavaScript.
9. Geany
URL: https://www.geany.org/
There have been many transformations for Geany before coming into the
text editor version. It is lightweight with bringing complete automation for
the text editing and IDE for web development. There are modules available
to work over Java, C++, C, HP, Perl, Python and more. It works on
Windows, Linux and MAC conveniently with smooth interface. The
integration is smart and fast which makes it a prior choice for some of the
web developers.
URL: www.codeblocks.org/
Code Blocks support the Fortran, C++ and C platforms easily. It has features
such as debugger, compiling information, documentation, highlighting
syntax and more. The GCC compiler works great through the Digital Mars
and more information over software. It works with Windows, Linux and
MAC easily upon installation.
UNIT IV FOSS
Debuggers
A debugger is a tool that allows you to examine the state of a running program.
Debugging is the process of locating and then removing bugs or errors in a
program. An interactive debugging system gives programmers tools to help them
test and debug their programs. Debugging is the methodical process of locating and
eliminating bugs or defects in a computer program.
Types of Debuggers:
● Static debugger: A static debugger does not rely on any specific
software. The debugging can be completed by the user.
● Dynamic debugger: A dynamic debugger can be either software or
hardware. There are several types of dynamic debuggers, including the
following:
● Breakpoint Debugger: Adding conditional and unconditional
breakpoints to the program at various points
● Kernel Debugger: To debug the operating system, a debugger
with kernel debugging capabilities is provided.
UNIT IV FOSS
Process of Debugging:
The following are the various steps involved in debugging:
UNIT IV FOSS
Advantages of Debugging
● Identifying and fixing errors: The primary advantage of debugging is
that it helps identify and fix errors in software code. By locating and
UNIT IV FOSS
Disadvantages of Debugging
● Time-consuming: Debugging can be a time-consuming process,
especially if the issue is complex or difficult to reproduce. This can slow
down the development process and delay the release of software.
specific data inputs. This can make debugging more challenging and
time-consuming.
● Over-reliance on debugging: If developers rely too heavily on
debugging, they may miss opportunities to design more efficient, reliable,
and secure code. Debugging should be used in combination with other
software development practices, such as testing and code reviews, to
ensure the highest quality code.
Programming languages
What is Language?
● C
● Python
● C++
● Java
● SCALA
● C#
● R
● Ruby
● Go
● Swift
● JavaScript
LAMP
Sometimes LAMP is referred to as a LAMP stack because the platform has four
layers. Stacks can be built on different operating systems.
Since its creation, the LAMP model has been adapted to another component,
though typically consisting of free and open-source software.
UNIT IV FOSS
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.
Linux, Apache, MySQL and PHP, all of them add something unique to the
development of high-performance web applications. Originally popularized from
the phrase Linux, Apache, MySQL, and PHP, the acronym LAMP now refers to a
generic software stack model.
The modularity of a LAMP stack may vary. Still, this particular software
combination has become popular because it is sufficient to host a wide variety of
website frameworks, such as Joomla, Drupal, and WordPress.
The components of the LAMP stack are present in the software repositories of the
most Linux distributions. The LAMP bundle can be combined with many other
free and open-source software packages, such as the following:
Linux based web servers consist of four software components. These components
are arranged in layers supporting one another and make up the software stack.
Websites and Web Applications run on top of this underlying stack. The common
software components are as follows:
1. Linux: Linux started in 1991. It sets the foundation for the stack model. All
other layers are run on top of this layer.
It is an open-source and free operating system. It is endured partly because
it's flexible, and other operating systems are harder to configure.
2. Apache: The second layer consists of web server software, typically Apache
Web Server. This layer resides on top of the Linux layer.
Apache HTTP Server is a free web server software package made available
under an open-source license. It used to be known as Apache Web Server
when it was created in 1995.
It offers a secure and extendable Web server that's in sync with current
HTTP standards. Web servers are responsible for translating from web
browsers to their correct website.
4. PHP: The scripting layer consists of PHP and other similar web
programming languages.
The PHP open-source scripting language works with Apache to create
dynamic web pages. We cannot use HTML to perform dynamic processes
such as pulling data out of a database.
To provide this type of functionality, we drop PHP code into the parts of a
page that you want to be dynamic. Websites and Web Applications run
within this layer.
PHP is designed for efficiency. It makes programming easier and allowing to
write new code, hit refresh, and immediately see the resulting changes
without the need for compiling.
Open source databases are those databases who have an open source code i.e
anyone may view the code, study it or even modify it. Open source databases could
be relational (SQL) or non relational (NoSQL).
It is quite expensive to create and maintain a database for any company. A huge
chunk of the total software expenditure is used to handle databases. So, it is
feasible to switch to low cost open source databases. This saves companies a lot of
money in the long run.
There many different open source databases in the market. All of them have their
own pros and cons. A decision to use a open source database depends on personal
requirements.
MySQL
This is the world’s most successful open source database. A free community
edition of MySQL is available but it was acquired by Oracle in 2010 and now
Oracle charges for service.
MariaDB
PostgresSQL
PostgresPURE
EnterpriseDB
UNIT IV FOSS
This is also based on PostgresSQL but has extra features and tools such as
performance, security and manageability enhancements.
MongoDB
An open-source database is a database where anyone can easily view the source
code and this is open and free to download. Also for the community version, some
small additional and affordable costs are imposed. Open Source Database provides
Limited technical support to end-users. Here Installation and updates are
administered by the user. For example: MYSQL, PostgreSQL, MongoDB etc.
● Cost: Open source databases are generally free, which means they can be
used without any licensing fees.
● Customization: Since the source code is available, developers can modify
and customize the database to meet specific requirements.
● Community Support: Open source databases have a large community of
users who contribute to documentation, bug fixes, and improvements.
● Security: With open source databases, security vulnerabilities can be
detected and fixed quickly by the community.
● Scalability: Open source databases are typically designed to be scalable,
which means they can handle large amounts of data and traffic.
UNIT IV FOSS