Linux Manual
Linux Manual
2
Knowledge of Linux development and major distributions.
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.
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:
Types of Kernels
monolithic kernel
microkernels
hybrid/modular kernels
nanokernels
exokernels
Command-line shells
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
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.
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
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:
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:
Dynamic Host Configuration Protocol (DHCP) Server, such as the Internet Software Consortiums
(ISCs) dhcpd
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:
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++
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
/etc/apt/sources
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
install
upgrade
dist-upgrade
remove
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
Description
install
update
resolving
and
available versions
erase/remove
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
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
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 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)
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.
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.
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:
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.
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
Terminals
Nautilus It the default file manager in GNOME and also used in Ubuntu's unity
Konqueror Which is the used on the KDE, is also a web browser in the KDE desktop.
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
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:
LibreOffice Impress
OpenOffice.org Impress
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.