Open Source Software: Empowering Collaboration and Innovation 👈
Open Source Software (OSS) is software that comes with source code, and
importantly also provides rights (typically reserved for copyright holders) to
study, change and improve the software. This development happens in a larger
collaborative environment, without any direct objective of the software‘s
commercial success.
Primary objectives of the Open Source movement are as following:
- Encourage innovation at the grass-root level and facilitate collaborative software development involving individual talent than it being the prerogative of the large companies.
- Reduce the software cost
- Improve quality and security
- Avoid forced lock-in to vendor‘s proprietary software
- Free Redistribution : The license should allow any party to sell or give away the software as a component of a larger software distribution containing programs from multiple sources. The license shall not require a royalty or other fee for such sale.
- Source Code : The program must include source code, and must allow distribution in source code as well as in executable form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost preferably, downloading via the Internet without charge.
- Derived Works : The license must allow changes to the existing source code and must allow them to be distributed under the same terms as the license of the original software.
- No Discrimination against specific applications : The license must not restrict anyone from making use of the program in a specific scenario. For example, it may not restrict the program from being used in a business, or from being used in drug research.
- License must Not Be Specific to a Product : The rights attached to the program must not depend on the program being part of a particular software distribution.
- License must Not Restrict Other Software : The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software.
Programming language
- PHP - Scripting language suited for the web
Operating System
- GNU Project — ―a sufficient body of free software‖
- Linux — operating system kernel based on Unix
Server Software
- Apache — HTTP web server
- Tomcat web server — web container
- MySQL – database, popular for applications built on LAMP stack (Linux,
- Apache, MySQL, PHP/PERL/Python)
- MediaWiki — wiki server software, the software that runs Wikipedia
- Mozilla Firefox — web browser
- Mozilla Thunderbird — e-mail client
Some typical challenges that used to be associated with the Open Source Software
were lack of product support that typically comes with proprietary software,
future upgrades, end-user training etc. Over a period of time, industry has evolved
to overcome these challenges. For example, Red Hat Linux sells Linux operating
system and provides product support, training as well. Further, it is important to
note that Open Source Software is not always the best option for all the business
needs. However, it does provide a good alternative to the proprietary software.
One needs to do the required due-diligence to decide the right product for a
specific situation.
Check Your Progress 3
1. Differentiate between open source and proprietary software?
…………………………………………………………………………………
…………………………………………………………………………………
………………………………………………………………………………….
2. Identify open source software from the following list?
a. OpenOffice
b. Filezilla
c. MS Word
d. Pidgin
e. Confluence
…………………………………………………………………………………
…………………………………………………………………………………
………………………………………………………………………………….
3. What measure should you take to safeguard your computer from a virus
attack?
…………………………………………………………………………………
…………………………………………………………………………………
………………………………………………………………………………….
4. Name a few computer performance enhancement utilities?
…………………………………………………………………………………
…………………………………………………………………………………
………………………………………………………………………………….
Check Your Progress 1
1.
a) In the Mainframe architecture all operations and functionality are
contained within the central (or "host") computer. Users interact with
the host through 'dumb' terminals which transmit instructions, by
capturing keystrokes to the host and display the results of those
instructions for the user.
File Sharing architecture is network (LAN) based where ‗intelligent‘
PC‘s or workstation‘s downloads files from a dedicated "file server"
and then runs the application (including data) locally.
b) In Client Server architecture, the Client software requests for the
service and Server software provides the service. The client and the
server software may be on the same machine or two different
networked machine.
In the distributed systems, different parts or components of an
application run on different networked machines. There are set of
standards that specify how different distributed components
communicate.
c) In Structured programming statements are organized in a specific
manner to minimize error or misinterpretation. It enforces logical
structure of the program. Here large routines can be broken down into
smaller, modular routines. It discourages GOTO statements.
Non Structured programming is the earliest programming paradigm in
which program usually consists of sequentially ordered commands, or
statements, usually one in each line. It does not enforce any logical
Basics of Computer
structure of the program. Its needs discipline on programmers part to
write readable and understandable code. Here the whole code is written
in one module. It makes extensive use of GOTO statements that leads to
spaghetti code.
2.
a) Software Reusability: Ability of a computer program to be used
repeatedly with little or no modifications in many different applications.
For example code to authenticate credit card information can be used at all
the places where payment is through credit card.
b) Software Reliability: Ability of a computer program to perform its
intended functions and operations for the specified period of time, in the
specified system‘s environment, without experiencing any failure. The less
there is breakdown of the system, the more reliable it is.
c) Encapsulation: Ability to hide data and methods from outside the world
and only expose data and methods that are required. It helps in hiding all
the internal details from outside world. It also provides a way to protect
data from accidental corruption
3.
Software-as-a-Service (SaaS) is basically a software delivery model where
customers can use the software application as a service on demand and
pay for it per usage. It is based on the concept of renting application
functionality from a service provider rather than buying, installing and
running the software yourself.
Cloud computing is the broader concept of using the internet to allow
people to access the technology enabled services. Those services must be
‗massively scalable‘ to qualify as true ‗cloud computing‘.
Cloud computing is basically what SaaS applications run on.
4. With advances in networking technology, vendors began to introduce nonperpetual licensing models, such as subscription or pay-per-use licensing.
In the pay-per-use, user is charged each time he/she uses the software,
service or module and user does not own the software, rather uses it at on
rent for the limited period. There is time based pay-per-use arrangement
and transaction based pay-per-use arrangement.
In a time based pay-per-use arrangement, consumers are charged for the
amount of time that they used non-owned copies of the software.
In a transaction based pay-per-use arrangement, usage charges occur
because a software module has been used. The duration of use is
irrelevant.
Check Your Progress
1.
a) A system software is any computer software which manages and controls
computer hardware so that application software can perform a task.
Operating systems, such as Microsoft Windows, Mac OS X or Linux are
prominent examples of system software. System software is an essential
part of computer operations. Application software is a program that enable
the end-user to perform specific, productive tasks, such as word
processing or image manipulation.
b) Compiler is a program the converts a source code in high level language to
the object code in low level language.
Linker is a program that uses multiple object files created by the compiler
and predefined library object files, links them together and creates a single
executable file.
c) Compiler is a program that takes the whole source code in high level
language and converts it into the source code in low level language. Any
errors are reported at compile time for the complete code. Once the
translation is complete, only the executable version of the code runs in the
memory.
An interpreter takes the source code in high level language one line at a
time during run time, translates the instruction into low language code and
executes it before proceeding to the next instruction. Hence the interpreted
program remains in the source language and is converted into low level
language only at run time. So the translator program also needs to be in
the memory at run time.
Since the compiler translated the whole program before it is run while
interpreter translates one line at a time while the program is being run,
compiled programs run faster than the interpreted ones.
2. Examples are as follows:
a. Decision Making Software - Expert Choice, Decision Manager
b. Education Software – Jumpstart, Reader Rabbit
c. Industrial Automation Software – Computer aided manufacturing (CAM),
Programmable Logic Controller
d. Mathematical Software - Mathcad, Matlab
e. Simulation Software – OpenModelica, Circuitlogix
3. The device driver for the printer may not have been installed. You can
search for the driver for the particular printer on the internet and install it on
your machine.
4. a. Text Editor (for ex TextPad)
b. Device Driver for the scanner
c. Operating System (for ex Windows Vista)
d. Database Software (for ex MS Access)
Check Your Progress 3
1. Proprietary software refers to any computer software that has restrictions on
any combination of the usage, modification, copying or distributing modified
versions of the software. It is owned by an individual or a company (usually
the one that developed it). Its source code is almost always kept secret.
Advantages of proprietary software include:
1) Availability of reliable,
professional support and training;
2) Packaged, comprehensive, modular
formats; and 3) Regularly and easily updated. The disadvantages are:
1) Costly, and
2) has closed standards that hinder further development.
Open source refers to a program in which the source code is available to the
general public for use and/or modification from its original design free of
charge. Open source sprouted in the technological community as a response
to proprietary software owned by corporations. Advantages of Open source
are:
1) Low cost and no license fees;
2) Open standards that facilitate
integration with other systems; and
3) it is easily customizable. The
disadvantages are:
1) Lack of professional support;
2) Evolving developer
communities;
3) Lack of release co-ordination; and
4) Erratic updates.
2. OpenOffice (Word Processing Software), Filezilla (FTP Software), Pidgin
(Instant Messaging Software)
3. a Install anti virus and anti spyware. Scan and update regularly.
b. Keep the windows system updated with patches and updates.
c. Browse and click only known and secure web sites. Avoid suspicious
ones.
d. Open email attachments from verified source only.
4. TweakVista, Boost Windows 2009, Registry Cleaner, WinUtilitites, System
Optimize Expert.
0 Comments