Islamic University –Gaza Eng. Fuad Abuowaimer Computer Engineering Department Eng. Rwand Ahmed Operating System
Lab. 1 Linux OS
What is Linux?
Linux is a freely distributed implementation of a UNIX-like kernel, the low level core of an operating system. Because Linux takes the UNIX system as its inspiration, Linux and UNIX programs are very similar. In fact, almost all programs written for UNIX can be compiled and run under Linux. Also, many commercial applications sold for commercial versions of UNIX can run unchanged in binary form on Linux systems. Linux was developed by "Linus Torvalds" at the University of Helsinki, with the help of UNIX programmers from across the Internet.
At the first Linux is actually just a kernel. You can obtain the sources for the kernel to compile and install them and then obtain and install many other freely distributed software programs to make a complete UNIX-like system. These installations are usually referred to as Linux
systems, although they consist of much more than just the kernel. Most of the utilities come from the GNU project of the Free Software Foundation.
Creating a Linux system from just source code is a major undertaking. Fortunately, many people have put together 'distributions', usually on CD, that contain:
- The kernel. -Other programming tools. -Utilities.
Also include an implementation of the X Window system, a graphical environment common on many UNIX systems. The distributions usually come with a setup program and additional documentation (normally all on the CD) to help you install your own Linux system. Some well known distributions are
Slackware, SuSE, Debian, Red Hat and Turbo Linux, but there are many others. The GNU Project and the Free Software Foundation
Linux owes its existence to the cooperative efforts of a large number of people. The operating system kernel itself forms only a small part of a usable development system. Commercial UNIX systems traditionally come bundled with applications programs which provide system
services and tools. For Linux systems, these additional programs have been written by many different programmers and have been freely contributed.
The Linux community (together with others) supports the concept of free software, i.e. software that is free from restrictions, subject to the "GNU" General Public License. Although there may be a cost involved in obtaining the software, it can thereafter be used in any way desired, and is usually distributed in source form.
The Free Software Foundation was set up by Richard Stallman, the author of "GNU Emacs", one of the best known editors for UNIX and other systems. Stallman is a pioneer of the free software concept and started the GNU project, an attempt to create an operating system and development environment that will be compatible with UNIX. It may turn out to be very different from UNIX at the lowest level, but will support UNIX applications. The name GNU stands for GNU's Not Unix.
The GNU Project has already provided the software community with many applications that closely mimic those found on UNIX systems. All these programs, so called GNU software, are distributed under the terms of the GNU Public License (GPL). This license embodies the concept of 'copyleft' (a pun on 'copyright').
Copyleft concept which intended to prevent others from placing restrictions on the use of free software.
You can find out more about the free software concept at http://www.gnu.org.
In most cases, when you obtain or "buy" software, you really do not own it. Rather, you are granted a license to use the software. The terms of the licensing agreement differ depending on the type of license accompanying the software. To understand software licensing, you should understand the following terms.
Licensing Description Type
Software that is distributed with the source files.
End users can modify and recompile the software to meet their needs. Open Usually developed as a community project. Source More specifically, Open Source is a certification mark for software that adheres
to the Open Source Initiative standards.
Software that is distributed without the source files. Closed Many commercially available software is closed source (such as Microsoft Source Windows, Word, Excel).
Software distributed without cost. The software may be open source or closed Freeware source.
Free Software that is freely distributable, includes the source code, and allows the end
Software user to modify or enhance the software.
Free software may be distributed at a cost. The "free" refers to the freedom of
use, not necessarily no cost.
Software that is distributed free of cost on a trial or limited use basis. After the
initial use, if you continue to use the software, you are expected to pay a fee for Shareware its use.
Shareware is typically closed source software.
Artistic license is a type of licensing agreement that allows users to modify and
Artistic distribute open source software, while still retaining some degree of copyright License protection for the work being distributed. The GNU General Public License is
one example of an artistic license.
; Linux is distributed as Open Source software under the GNU General Public License
Go to http://www.linux.org/info/gnu.html to read the GNU licensing terms.
Using Linux in your organization is not without cost. Although you do not pay for a license for Linux, but you pay for the following items:
; Media containing the software components
; Technical support, automatic updates, and custom utilities
; Installation, maintenance, and system repair
The Linux operating system is a modular system, which means that the components can function without affecting one another.>> So you can create a highly customized Linux operating system based on your individual requirements.
Each component (or set of components) is generally developed independently, and each component offers functionality while minimally affecting the other components.
; The kernel is the core component of the operating system.
; The kernel coordinates communication between the hardware and other software
; The kernel is the only component that is technically Linux. All other components are
add-ons that turn the system into a fully-functional operating system.
for more information visit www.kernel.org.
; The shell is the user interface that accepts and interprets commands (either from a
command prompt or a script) and forwards them to the kernel.
; A Linux shell is comparable to the DOS interpreter/DOS prompt. Ex) bash (Bourne-Again Shell) is the most common (and default) Linux shell. It is an enhancement of the original Bourne shell (sh).
3- Graphical User Interface (GUI)
; The GUI is responsible for drawing graphical elements on the computer screen. ; A Linux GUI was designed to work the same way regardless of the video hardware
on the computer system.
EX) XWindows is the most common GUI system.
4- Window Manager/Desktop Environment.
; The window manager modifies the GUI output that comes from X Windows. ; To change or modify the X Windows output, you can simply change the window
; You can also use a desktop environment with a window manager. A desktop
environment provides software (e.g., Web browsers and file managers) and gives
users access to common tasks.
EX) KDE (Kommon Desktop Environment).
5- Windows Emulator.
; A Windows emulator is an implementation of the Microsoft Windows API. ; The emulator lets you run Windows applications on Linux without running the
Windows operating system.
EX) Wine, available at www.winehq.com.
6- Boot Loader.
; A boot loader runs after the system executes the BIOS ROM and POST functions. ; It loads the Linux kernel from the boot partition on the hard disk. ; It is also used to boot other operating systems present on the computer.
EX) - LILO (LInux LOader) is the most common bootloader.
- GRUB (GRand Unified Bootloader) is a new bootloader that offers extra functionality
7- Applications and Utilities.
; Utilities are special programs that help you manage the system.
; Applications are programs that let you use the computer for specific tasks (such as
word processing, listening to music, or managing data).
EX) Text Editors, File Managers, Office Applications, Graphic Editor (like PhotoShop)
8- Daemons (Services).
; Daemons are programs that run in the background, providing additional functionality
to a system.
; The Windows equivalent of a daemon is a service.
EX) File/Print Services, Print services, Web Server, Domain Name Service (DNS), E-mail,
As you can see, there are dozens of components that can be used with the Linux core. The availability of multiple components to provide a specific feature gives you a lot of choice, more than you might have with other operating system choices such as Microsoft Windows.
In the Linux operating system, everything (including devices and users) is a file. As the system runs, Linux opens, reads, writes to (if necessary), and closes the files it needs. The table below lists the most common types of files you'll encounter when working with Linux. (One thing to remember about working with files in Linux is that all file names are case sensitive.)
File Type Description
Directory A file type designed specifically to hold or point to other file types.
Normal File Every file that is not a directory is generally a normal file.
A hard link is a duplicate entry in the file system that points to a specific
Hard Link piece of data. Hard links are not often used. If the original entry in the
file system is deleted, the hard link maintains a valid pointer to the data. Special
Files A symbolic link is a file system entry that points to another file system Symbolic entry, which in turn points to a valid piece of data. Symbolic links can Link work across volumes and file systems. Symbolic links are similar to
shortcuts in Windows.
A file type that accepts input one character (i.e., byte) at a time.
Character Character files often point to devices like sound cards, serial ports, or
A file type that accept input in blocks (i.e., groups of bytes). Block files Block often point to storage devices.
Pipe A named pipe file allows you to send information between applications.
A socket file is similar to a named pipe file, but a socket file allows Socket information to be exchanged over a network.
The unified file system uses a single root directory that contains various other directories. File systems from other hard drive partitions mount to directories beneath the root directory,
providing access to a single directory structure. The file system hierarchy standard (FHS) governs the unified file system for Linux systems by defining a standard set of directories, subdirectories, and files. FHS is a subset of the Linux standards base (LSB) which is an organization and a set of guidelines for promoting a set of standards to increase Linux distribution compatibility.
The / character represents the root directory of the Linux system. All directories are / below the / (root directory) of the system.
/bin The /bin directory contains binary commands that are available to all users.
/boot The /boot directory contains the kernel and boot loader files.
/dev The /dev directory contains device files.
/etc The /etc directory contains configuration files specific to the system.
/home The /home directory contains by default the user home directories.
The /initrd directory is used during the boot process to hold the initial RAM drive /initrd image.
/lib The /lib directory contains shared program libraries and kernel modules.
The /media directory contains the /cdrom and /floppy directories. It is the point /media where CD-ROM and floppy drives can be mounted according to the FHS
(Filesystem Hierarchy Standard) v2.3.
The /mnt directory is an empty directory. This was the mount point for CD-ROM /mnt and floppy drives prior to FHS v2.3.
/opt The /opt directory contains the additional programs.
/proc The /proc directory contains information about the system state and processes.
The /root directory is the root user's home directory. Do not confuse /root with the /root root of the system (/).
/sbin The /sbin directory contains system binary commands.
/srv The /srv directory contains files for services like the FTP and Web servers.
The /sys directory is new with release 2.6. It takes some of the system state date /sys that was previously contained in /proc.
The /tmp directory contains temporary files created by programs during system /tmp use.
The /usr directory contains system commands and utilities. /usr holds the following
; /usr/local /usr ; /usr/sbin
; /usr/X11R6 (for the X Window system)
Depending on the implementation, the /usr directory might also include the
/usr/doc subdirectory (or /usr/share/doc subdirectory) to hold documentation
accessible to all users.
The /var directory contains data files that change constantly. Standard
; /var/mail (holds e-mail in boxes) /var ; /var/spool (holds files waiting for processing, such as print jobs or
; /var/www (holds www or proxy cache files)
Some Distributions of Linux
Red Hat Linux
Depending on your organization and how you will deploy Linux, you have several choices of how to access the Linux source files to complete the installation. Listed below are several different methods you can use. (Before performing any installation, check the hardware compatibility list (HCL) for the Linux version you've selected to make sure your system components are supported.)
Installation File Description Location
Installation source files are on a disk or other removable media such as:
; USB, Firewire devices CD-ROM or
; Floppy, Zip disk (multiple disks might be required) removable
; CD-ROM media
Use this method if you have access to portable installation source files.
Installation files are located on a shared directory on the network. To
complete the installation, you must:
1. Copy the source files to a shared network location.
2. Boot the computer to a limited version operating system with
networking support (typically from a boot floppy). Make sure the Network computer uses the appropriate protocols to connect to the network
share (FTP, SMB, NFS).
3. Connect to the network share and start the installation.
Using this method, the computer does not need a drive for accessing the
installation files, and you can start multiple installs with a single source.
Using disk imaging, you install Linux on one system. You then use imaging
tools (or even backup/restore utilities) to replicate the installation to other Disk imaging computers.
Use this method to install Linux quickly on multiple systems. In most cases,
the hardware in each system must be identical.
When you start the install program, you can often choose how to interact with the installation program. The following table compares various methods.
Before you install Linux, you should know how you'll use the system. The way the system is used will determine what kinds of components you should select to install. The table below lists common deployments for Linux systems and the components those deployments should include.
Role Description Common Components
; Graphical desktop
; Web browser (like Mozilla)
; E-mail client A desktop implementation is targeted ; Productivity tools (an office to the end-user in environments such as productivity suite like GNOME Desktop home-based computers (for gaming, Office, for example) multi-media, or Web surfing) or home ; Sound, graphics, and video offices. support
; Gaming support
A workstation implementation is for ; Word processor large corporate installation, system ; Database editor administrators, or developers. Office ; Desktop publishing applications workstations often have more business ; Spreadsheet applications Workstation productivity applications while ; E-mail applications workstations for software developers ; Development tools and system administrators have tools ; System administration tools for creating and compiling software
and administering network resources.
; Mail services
; Routing A server provides networking services ; Proxy service to multiple users or to other computers. ; FTP service Because end users do not typically log ; Web services (to allow users to on to a server directly, graphical and access information, like an multimedia components are often not online catalog for example, installed on servers to conserve system through a Web browser) Server resources and eliminate sources of ; Network file system (NFS) (for problems. Linux can provide many file sharing) different services (e.g., file, email, and ; Storage (e.g., an appliance Web services) on one machine unless it server) is being accessed by a very large ; Database services (for storing number of people. client information, for example)