You are on page 1of 20

Topic 1:The Linux Community and a Career in Open Source

1.1 Linux Evolution and Popular Operating Systems


Weight
Description

2
Knowledge of Linux development and major distributions.

Key Knowledge Areas:


Open Source Philosophy
Distributions
Embedded Systems
The following is a partial list of the used files, terms and utilities:
Android
Debian
CentOS
Nice to know:

Linux Origins
In 1969 Dennis Ritchie and Ken Thompson wrote UNICS (Uniplexed Information and Computing System)
at Bell Labs. Together with Douglas McIlroy they are seen as the creators of Unix. The name Unics is a
play on the Multics Operating System for mainframe computers. Unics (later renamed to Unix) was
written for mini-computers like the DEC PDP-series. In 1973 they decided to write Unix in C (instead of
assembler), to make it portable to other computers. Unix was made available to universities, companies
and the US government, including the full source code.

Unix Wars
The unity and openness that existed in the Unix world until 1977 was long gone by the end of the
eighties. Different vendors of distinct versions of Unix tried to set the standard. Sun and AT&T joined the
X/Open group to unify Unix. Other vendors joined the Open Software Foundation or OSF.

University of California, Berkeley


Students of Berkeley were happy to join in the development of Bell Labs Unix, but were not so happy
with the restrictive licensing. Unix was open source software, but it still required purchase of a license.
So during the eighties, they rewrote all the Unix tools until they had a complete Unix-like operating
system. By 1991, the BSD (Berkeley Software Distribution) branch of Unix was completely separate from
the Bell Labs Unix. NetBSD, FreeBSD, and OpenBSD are three current Unix- like operating systems
derived from the 1991 BSD Net/2 codebase. Sun Solaris, Microsoft Windows NT, and Apple Mac OS X all
used source code from BSD. The table below shows operating systems still in use today that are in a way
derived from the 1978-1981 BSD codebase.

GNU's not Unix


Largely because of discontent with the restrictive licensing on existing Unix implementations, Richard
Stallman initiated the GNU Project in 1983. The GNU project aims to create free software. Development
of the GNU operating system started, aiming to create a complete Unix-like branch, separate from the

two other (BSD and Bell Labs). Today the GNU compiler gcc and most other GNU utilities (like bash) are
among the most popular on many Unix-like systems. The official kernel of this project is GNU/Hurd, but
you can hardly call that kernel a finished product.

Linux
Where GNU/Hurd failed, the Linux kernel succeeded! In 1991 a Finnish student named Linus Torvalds
started writing his own operating system for his intel 80386 computer. In January 1992, Linus decided to
release Linux under the GNU GPL. Thanks to this, thousands of developers are now working on the Linux
kernel. Linus Torvalds is in charge of the kernel developers. Contrary to popular belief, they are not all
volunteers. Today big companies like Red Hat, Novell, IBM, Intel, SGI, Oracle, Montavista, Google, HP,
NetApp, Cisco, Fujitsu, Broadcom, and others are actively paying developers to work on the Linux kernel.
Linux consists of a kernel, which control software, and many libraries and utilities that rely on the kernel
to provide features with which users interact.

Linux Kernel
The KERNEL (from German Kern, nucleus, core) is the main component of most computer operating

systems; it is a bridge between applications and the actual data processing done at the hardware level.
The kernel's responsibilities include the following:

Interfacing with the hardware devices

Allocating memory to individual programs

Allocating CPU time to individual programs

Enabling programs to interact with each other

Diagram 1: A diagram showing Kernel

Types of Kernels

monolithic kernel

microkernels

hybrid/modular kernels

nanokernels

exokernels

Linux OS uses a monolithic kernel.


What Else Identifies an OS?

Command-line shells

Graphical User Interfaces

Utility programs

Libraries

Productivity programs

Linux has several characteristics that made it worth learning and using namely:

Linux is open source software, meaning you can freely modify it and redistribute it

Linux is available free of charge (FOC), although some distribution would require payment

Linux is highly scalable it runs on everything from cell phones to supercomputers

As a clone of the Unix OS, Linux has inherited a great deal of Unix software, including many very
important Internet server programs, databases, programming languages, and more.

Many businesses and non-profit organizations rely on Linux to power their web servers, mail

servers, route their their Internet traffic and do other critical behind-the scenes tasks.

Open Source Philosophy


Open source is a philosophy that promotes free redistribution and access to an end product's design, its
implementation details and documentation available at no cost to the public.
Free and open-source software (F/OSS, FOSS) or free/libre/open-source software (FLOSS) is
software that is both free software and open source. It is liberally licensed to grant users the right to
use, copy, study, change, and improve its design through the availability of its source code.

Distributions
A Linux distribution is made up of the Kernel, Core Unix tools, Supplemental software, Startup scripts
and an installer.

Embedded Systems
Embedded systems are miniature computers systems adapted to fit into modern day devices with a
stripped version of an OS to be able to perform various functions as deems fit. Examples include:

Cell phones

E-book readers

DVRs

Car Computers

Appliances

Android
Android is a Linux-based operating system for mobile devices such as smartphones and tablet
computers. It is developed by the Open Handset Alliance, led by Google, and other companies.

BIBLIOGRAPHY
1. Free and open source software: from
Wikipediahttp://en.wikipedia.org/wiki/Free_and_open_source_software
2. Open Source: from Wikipedia http://en.wikipedia.org/wiki/Open_source
3. Kernel (Computing): from Wikipedia http://en.wikipedia.org/wiki/Kernel_(computing)
4. Linux distribution: from Wikipedia http://en.wikipedia.org/wiki/Linux_distribution
5. Android: from Wikipedia http://en.wikipedia.org/wiki/Android_(operating_system)
6. LPI Essentials by Roderick Smith published by Wiley and Sons Copyright 2012
7. Linux Fun by Paul Cobbaut 2011

1.2 Major Open Source Applications


Weight
2
Description Awareness of major applications and their uses.
Key Knowledge Areas:

Desktop Applications
Server Applications
Mobile Applications
Development Languages
Package Management Tools and repositories
The following is a partial list of the used files, terms and utilities:
OpenOffice.org, LibreOffice, Thunderbird, Firefox
Blender, Gimp, Audacity, ImageMagick
Apache, MySQL, PostgreSQL
NFS, Samba, OpenLDAP, Postfix, DNS, DHCP
C, Java, Perl, shell, Python, PHP
Nice to know:

Desktop Applications
When the Linux OS when was been developed, it was developed to be a server, then over the years, Linux OS
has made inroads to the desktop arena, with many applications built for the desktop environment, but now
Linux has now been developed to be a Desktop, Server and Mobile OS.
A desktop application is an application that runs stand alone in a desktop or laptop computer. Contrast with
"Web-based application," which requires the Web browser to run.

There are several Desktop applications for the Linux OS, which can be classified into the following categories
namely:

Web Browsers (such as Firefox, Opera, Konqueror, Chromium)

Productivity/Office Suite (LibreOffice, OpenOffice.org, AbiWord, KOffice)

Email Clients (Thunderbird, Evolution, KMail)

Document Viewers (Evince document viewer, Adobe Reader)

Finance (GnuCash, Gnumeric)

Audio recorders/Editors (Audacity)

Photo/Image Editing Suite (ImageMagick, Gimp GNU Image Manipulation Programme)

Animation suite (Blender)

Server Applications
A server in computing terms could mean a Computer hardware on which server programs/applications are
installed and run on them. Also a server could also mean application or computer programs running on a
dedicated computers, waiting for requests from clients.
There are so many server applications on Linux OS and they are classified based on the work they do or
perform. The following are examples of server applications:

Apache (A web server)

MySQL (Database Server)

PostgreSQL (Database Server)

Postfix, Sendmail (Mail Server)

Samba, NFS Network File System (File Server)

CUPS Common Unix Printing System, Samba (Print Server)

OpenLDAP An Active Directory Server [LDAP Lightweight Directory Active Protocol]

BIND Berkeley Internet Name Domain (DNS Domain Name Server)

Dynamic Host Configuration Protocol (DHCP) Server, such as the Internet Software Consortiums
(ISCs) dhcpd

NTP Network Time Protocol (Time Server)

Remote login Server such as Secure Shell (SSH) or Virtual Network Computing (VNC)

Mobile Applications
A mobile application is an application designed to work on mobile phones also called smartphones. In the
early days of mobile applications development, it was developed with mainly with J2ME Java 2 Micro
Edition, now known as Java ME (Micro Edition). Mobile applications are usually called apps or mobile apps.
There are many Mobile OS in the mobile space namely:

Android (Which is a Linux-based OS)

Apple's iOS

Windows Phone

Java ME

Development Languages
Development languages are programming languages which are used to write different applications for the
Linux OS and many other operating systems. Examples include the following;

Java

Perl

PHP

Python

Shell Scripting

C++

Package Management Tools


There are different package management tools available on the Linux OS depending on the build of the Linux
OS. The package management tools are used to install, build, update, remove/uninstall and manage software
packages and third-party applications to the Linux OS.
Different Linux OS have different package management systems and the following are examples

Dpkg
The Debian GNU/Linux and its derivatives such as the Ubuntu GNU/Linux uses the dpkg (Debian package
manager)
uses
dpkg [options] installation_file
where the options could be -i (install: to install a file), -r (remove: to remove a package, but leave the
configuration files), -p (purge: to remove a package and also remove the configuration files)
Please note that the installation files on Debian GNU/Linux OS and its derivatives is usually named as .deb for
example nautilus-dropbox_0.7.1_amd64.deb
package Naming convention: name_version-release_architecture.deb

APT
The dpkg tool is good for installation of packages with no dependencies, but when installing packages which
may have dependencies, the APT tool is generally used on Debian GNU/Linux OS and its derivatives.
APT is one of the strengths of dpkg, and provides an easy way of installing and updating a system. It is
controlled by two files:
File

Description

/etc/apt/apt.conf

Contains general configuration options for APT, such


as which release of Debian to install, whether/which
proxy settings to use, etc

/etc/apt/sources

Lists sources of Debian files, which may be on CDs, or


on the network

While apt-cache is useful for finding out information about available packages, apt-get allows updating of
package information, retrieval, installation and removal of packages, and even upgrading of an entire Debian
distribution. The most common uses of apt-get are listed below:
Action

Description

update

Update the list of packages from the sources in


/etc/apt/sources.list

install

Install the package(s) specified, along with any


dependencies

upgrade

Upgrade any packages which have newer versions


available

dist-upgrade

Upgrade entire distribution to the latest release (best


to read the release notes first!)

remove

Remove the package(s) specified

Uses
# apt-get update
# apt-get upgrade

Rpm
The Red-Hat GNU/Linux and its derivatives such as Fedora and CentOS uses the rpm (Red-Hat Package
Manager)
uses
rpm [options] installation_file
where the options could be -i (install: to install a file), -e (erase: to remove a package)
Please note that the installation files on Red-Hat GNU/Linux OS and its derivatives is usually named as .rpm for
example nautilus-dropbox-0.7.1.amd64.rpm
package Naming convention: name-version-release.architecture.rpm

Yum Package Manager


Yum is the default package manager for many rpm based distributions that allows for the installing, updating
and removing of rpm packages without having to worry about resolving dependencies yourself. Yum uses
external repositories to provide the meta-data, in the form of index files, about what packages are available
and their dependencies as well as to store the rpm packages that will be automatically downloaded to fulfill
an installation request. A repository may be an web site or directory that is formatted in the manner expected
by yum.
The most common command for yum are:
Action

Description

install

install a package, automatically


installing dependencies.

update

update the list of available packages and will update


all installed packages on your system to the latest

resolving

and

available versions
erase/remove

delete a package from your system. Erase is a safer


option to use as remove may delete dependencies
that are needed by other packages.

Yum is configured in the /etc/yum.conf file and repositories are managed via the /etc/yum.repos.d/ directory.
The yumdownloader is a program for downloading RPMs from Yum repositories. It is used to download the
rpm packages without installing them on the system. This can be useful for downloading packages from a
faster connection and then copying then to a machine with a slower connection for installation.

Alien Tool
The alien tool is used to convert Debian packages (.deb) to Red-hat packages (.rpm) and vice versa.

Repository
A repository is a web site, FTP (File Transfer Protocol) site that you download packages from. The various
package management tools on the various GNU/Linux OS consults the repositories when the user issues an
install command for the package in question and downloads it, however, it would not complete the action if
the package is not available in the repository.

1.3 Understanding Open Source Software and Licensing


Weight

1
Open communities and licensing Open Source Software for
Description
business.
Key Knowledge Areas:
Licensing
Free Software Foundation (FSF), Open Source Initiative (OSI)
The following is a partial list of the used files, terms and utilities:
GPL, BSD, Creative Commons
Free Software, Open Source Software, FOSS, FLOSS
Open Source business models
Nice to know:
Intellectual Property (IP): copyright, trademarks and patents
Apache License, Mozilla License

Copyright and Licensing


A copyright is a legally recognized right to create a copy of something. Copyright laws vary from one country
to another, but most countries are signatories to the Berne Convention, an international treaty that requires
countries to recognize each other's copyright.

Patents, Trademarks, And Software


Intellectual property (IP) distinct types of creation of the mind for which a set of exclusive rights are
recognized under the corresponding fields of the law.
Intellectual property could be expressed in the following formats namely:
Patents
Trademarks
Software
Copyright
Copyright is an example of IP, there are others. One of these is patents. A copyright protects a single creative
work, which can be considered an expression of an idea, but patent protects the idea itself. Patents typically
apply to inventions.
Trademarks are another type of IP. These are names, logos, and similar identifiers of a specific company or
product.
Software is a type of intellectual property (IP), which is governed by copyright laws and in some countries,
patent laws. As a general rule, it is illegal to copy software unless you are the software's author.

Using Licenses to Modify Copyright Terms


Although software is subject to copyright law, most software is released with a license, which is a document
written in legalese that claims to modify the rights granted by copyright law.

License Types
End-user license agreements - EULAs
Click-through licenses
Shrink-wrap licenses
Click-wrap licenses
Open source software generally comes with a license in a file, often called COPYING.

The Free Software Foundation


The Free Software Foundation (FSF) which is a critical force in the open source world was founded by Richard
Stallman in 1984.

Understanding the FSF Philosophy


The FSF is an advocate of free software, which is defined in its four specific software freedoms:
Freedom to use the software for any purpose
Freedom to examine the source code and modify it as you see fit
Freedom to redistribute the software
Freedom to redistribute your modified software

Free Software and the GPL


The FSF's principles is protected legally in the form of GPL (General Public License) also called the GNU (Gnu's
Not Unix) GPL.
The GPLv2 GPL version 2, released in 1991, the Linux kernel uses the GPLv2

The GPLv3 GPL version 3, released in 2007, aimed at closing loopholes in the GPLv2

The LGPL Lesser GPL, Developers often use it for libraries (collection of codes that can be used by
other programs)

The Open Source Initiative (OSI)


The OSI was founded in 1998 by Bruce perens and Eric S. Raymond as an umbrella for open source software
generally.

Understanding the Open source Philosophy


Open source is a development method for software that harnesses the power of distributed peer review and
transparency of the process. The promise of open source is better quality, higher reliability, more flexibility,
lower cost, and an end to predatory vendor lock-in.

Defining open source software


It consists of ten principles namely:
1. Free Redistribution
2. Source code availability
3. Permission to drive works
4. Respect for source code dignity
5. No discrimination against persons or groups
6. No discrimination against fields of endeavor
7. Automatic license distribution
8. Lack of product specificity
9. Lack of restrictions on other software
10. Technology neutrality

The Creative Commons


The creative commons which was founded by Lawrence Lessig is headquarted at http://creativecommons.org.
The creative commons are open source principles applied to books, music, videos and so on.

Using Open Source Licenses


The principles behind the OSI guidelines guarantees you the right to use open source programs as you see fit,
and even to redistribute those programs.

Understanding Open Source Licenses


The major open source licenses include the following:

GNU GPL and LGPL The Linux kernel uses the GPLv2, and many other Linux tools use the GPL (either
version 2 or version 3). Many Linux libraries use the LGPL.

BSD The BSD (Berkeley Software Distribution) license is used by the open source BSD OSs and by
various software components developed for them. Unlike the GPL, the BSD license allows
modifications to be distributed under other licenses. The latest version is similar to the MIT license.

MIT The Massachusetts Institute of Technology (MIT) is the founder of the X Window System (X for
short), the MIT license (also called X11 license) is still used for Xorg-X11 - the implementation of X
included with all major Linux distributions.

Apache The Apache license like the BSD and MIT licenses is an open source license that permits
redistribution under the same or another license. If a text file called NOTICE comes with the original
work, it must be included in any derived work.

Artistic It was originally developed for the Perl programming language, most software that uses this
license is shipped with the stipulation that the license is optional; the user may elect to follow the
terms or follow the terms of some other license (usually the GPL) instead.

NPL and MPL The Netscape Public License (NPL) and Mozilla Public License (MPL) were developed
by Netscape when they bought their Netscape Web browser (the parent of the Firefox Web browser)
into the open source field. The NPL reserves some rights for copyright holder, but the MPL is more
open.

Understanding Open Source Business Models


There are methods that open source organizations uses in making money and below are some of them

namely:

Services and support The product itself can be open source and available for free, while the
company sells support and services, such as training and a technical support phone line.

Dual licensing A company can release two versions of the product: One version is completely open
source and another adds features that are not available in the open source version.

Multiple products The open source product may just be one offering from the company, with
revenue being generated by other product lines.

Open source drivers A company might produce drivers specifically made for certain hardwares and
put it up for sale.

Bounties Users can drive open source creation by offering to pay for new software or new features
in existing software (for example FOSSFactory http://www.fossfactory.org)

Donations Many open source projects accept donations to help fund development.

1.4 ICT Skills and Working in Linux


Weight

2
Basic Information and Communication Technology (ICT) skills and working
Description
in Linux.
Key Knowledge Areas:
Desktop Skills
Getting to the Command Line
Industry uses of Linux, Cloud Computing and Virtualization
The following is a partial list of the used files, terms and utilities:
Using a browser, privacy concerns, configuration options, searching the web and saving content
Terminal and Console
Password issues
Privacy issues and tools
Use of common open source applications in presentations and projects
Nice to know:

Using a Linux Desktop


The standard practice on many Linux distributions is that it is bundled with a default desktop
environment and would also provide some other desktop environment. The most common desktop
environments are:

KDE The K Desktop Environment (KDE; http://www.kde.org), it is the default desktop for
Mandriva and SUSE. It is built using the Qt widget set.

GNOME The GNU Network Object Model Environment (GNOME; http://www.gnome.org) is the
default desktop environment on Fedora and Debian. It is built atop the GIMP Tool Kit (GTK+)
widget set. It is KDE main rival in the industry.

LXDE The Lightweight X11 Desktop Environment (LXDE; http://lxde.org) is intended to


consume few resources and therefore works well on old or modest computers.

Unity Released by Canonical, the publisher of the Ubuntu in 2010 is the default desktop on
Ubuntu starting from version 11.04 upwards.

Xfce Which is headquarted at http://www.xfce.org is built using the GTK+ widget set. XFCE
provides more configuration than GNOME or Unity, and it also consumes fewer system resources.

A widget set is a library that handles GUI features such as menus and dialog boxes. Qt and GTK+ are the
most common widget sets on Linux today.

Launching Programs
Different desktop environment provide several means to launch programs, it varies from one
environment to another, but examples include the following:

Desktop menus

Desktop icons

Panels

Context menus

Searching for programs

Terminals

Using a File Manager


A file manager is a computer programs that provides a user interface to work with file systems. Different
Linux distributions provides there own file managers and examples include:

Nautilus It the default file manager in GNOME and also used in Ubuntu's unity

Thunar Xfce's file manager

Konqueror Which is the used on the KDE, is also a web browser in the KDE desktop.

Dolphin Is also a file manager on the KDE desktop.

Getting to the Command Line


A Linux command line, or shell as it's more appropriately called, is a program like any other and must be
launched in some way. These could be in these ways:

Starting a shell in a GUI window called a terminal,

logging into the computer in a text-mode console (Logging into a non-GUI environment),

logging into the computer remotely using a text-mode login protocol, such as SSH, FTP or Telnet

Industry Uses of Linux


The Linux Os is used in the industry in many ways because of its scalability, its security and its openness.
Examples of such uses include, Cloud Computing and Virtualization.
In Cloud Computing
Cloud computing is the delivery of computer software as a service, typically over the Internet, rather
than in the form of applications stored on the user's computer. Linux OS can either server as the client or
the server at the back end in the cloud computing infrastructure.
Examples of cloud computing include:

Dropbox (http://www.dropbox.com), an online file storage and backup service

Google Apps (http://www.google.com/apps) a cloud computing platform from Google

Google Drive (https://drive.google.com) an online file storage and backup service and so many other
ones.

In Computing, virtualization is the creation of a virtual (rather than actual) version of something, such as
a hardware platform, operating system, storage device, or network resources. With the technology of
virtualization, it is now possible virtualize an OS in a another computer/OS where the virtualized OS is
known guest OS and the host OS is the computer which hosts it.
Examples of virtualization include:

VirtualBox (http://www.virtualbox.org) Oracle's Virtualization software Free to use and


download

VMWare (http://www.vmware.com) Free to download but a paid license is required to use it

QEMU Quick Emulator (http://www.qemu.org) An open source machine emulator and


virtualizer

Open Source Applications in Presentations and Projects


In many of the Linux distributions, an office suite is bundled with the installation of the OS and at such
the user is spoilt with choice.
Examples of Open source applications for presentations include;

LibreOffice Impress

OpenOffice.org Impress

LibreOffice is a fork of the OpenOffice.org project.


Examples of Open source applications used for projects include;

Open Workbench

OpenProj

Pleno

Web browsers give users easy access to the internet, unfortunately the web has a dark side too,
problems include:

Web sites could log user access data, which can be used in marketing or in other ways you might
not like.

Much Web-based content is dynamic, meaning that web sites download small programs (often
written in Java) that your web browser runs. This content might be harmless, but it's increasingly
being used to deliver malware

Malicious Web sites can trick users into giving up sensitive data, such as financial information, by
pretending to be a trusted site. This technique is known as phishing.

Most Web sites are not secure data transferred can be read on intervening computers. Most
sensitive data, but you should be cautious when sending such data.

Because of security concerns, passwords used on most Web sites are subject theft. This can pose
a dilemma because it can be hard to remember all your Web site passwords. Many browsers can
do this for you, but that stores your passwords on your hard disk, which makes them vulnerable
to theft or loss.

You might also like