37
An Introduction to Linux Ishan A B Ambanwela

An Introduction To Linux

Embed Size (px)

DESCRIPTION

An Introduction To Linux, Originally Presented at SLIIT on 21st May 2014

Citation preview

Page 1: An Introduction To Linux

An Introduction to Linux

Ishan A B Ambanwela

Page 2: An Introduction To Linux

Contents

● History

● Linux System Architecture

● Major Components Described

– Kernel, Shell, Quickies, File System, Processes, I/O redirection, Networking Brief, Booting The System, Desktop Environments

● Choose a Distribution

● Make Your Own OS

● Useful Resources

● Q&A

Page 3: An Introduction To Linux

History - Background

● In late 60s every computer had a different operating system

● Software was always customized to serve a specific purpose

● Being able to work with one didn't automatically mean that you could work with another

http://www.soemtron.org/images/jpgs/decimages/pdp7sn112delivery.jpg

Page 4: An Introduction To Linux

History - Unix

● In 1969, Bell Labs started working on this Software problem

– Simple and elegant– Written in the C instead

of in assembly code– Able to recycle code

● OS with a “kernel”, a compatibility layer

http://en.wikipedia.org/wiki/File:Ken_Thompson_%28sitting%29_and_Dennis_Ritchie_at_PDP-11_%282876612463%29.jpg

http://en.wikipedia.org/wiki/File:AT%26T_logo.svg

Page 5: An Introduction To Linux

History – Linus & Linux

● Linus Torvalds, a computer science student from university of Helsinki

● version 0.01 was released with 10,239 LOC in 1991

● it would cost approximately 3 billion USD to redevelop

http://en.wikipedia.org/wiki/File:Linus_Torvalds.jpeg

Page 6: An Introduction To Linux

Linux - Pros & Cons

● Pros● Free● Secure● Versatile● Scalable● Designed for continuous

running● Portable● Short debug time● Community spirit

● Cons● Too many distributions● Confusing for

beginners● Games● Limited support for

proprietary applications

● Limited vendor support

Page 7: An Introduction To Linux

A Linux System

http://www.ibm.com/developerworks/opensource/library/l-linuxuniversal/figure1.gif

Page 8: An Introduction To Linux

The Architecture

http://www.tutorialspoint.com/operating_system/images/linux_architecture.jpg

Page 9: An Introduction To Linux

The Kernel

● Manage all hardware● Manage all processes

and daemons● Inter Process

Communications

http://www.ibm.com/developerworks/library/l-linux-kernel/figure3.jpg

Page 10: An Introduction To Linux

The Shell

“the shell is the steering wheel of the car”

Shortcut Function

Ctrl+A Move cursor to beginning

Ctrl+C End running program

Ctrl+D End current session

Ctrl+E Move cursor to end

Ctrl+H Backspace

Ctrl+L Clear

Ctrl+R Search command history

Ctrl+Z Suspend the program

Tab Auto complete

Tab Tab Show possible auto completes

Up/Down Command history

Left/Right Move cursor

http://www.ibm.com/developerworks/linux/library/l-linux-shells/figure2.gif

Page 11: An Introduction To Linux

The Shell

● Shell loads settings and execute commands when starts– ~/.profile – login shells

– ~/.bashrc – non login shells

● Shell will execute commands– ~/.bash_logout

● Command history will be saved in– .bash_history

Page 12: An Introduction To Linux

Environment Variables

● Export New/Modified Variables

– export PATH=$PATH:/path/to/dir1● Make permanent Changes

– Add changes to ~/.bashrc or ~/.profile– System wide changes : /etc/profile

● Load settings

– Ex: source /etc/profile

Page 13: An Introduction To Linux

Quick Start Commands

Command Use

ls Display a list of files in current working directory

cd <directory> Change directory

pwd Display current working directory

passwd Change the password

cat <textfile> Display the content of a text file

exit End the current session

apropos <string> Search the “whatis” database

info <command> Read info pages for the command

man <command> Read man pages for the command

Page 14: An Introduction To Linux

Linux File System

● On a Linux system, everything is a file.

● if something is not a file, it is a process.

http://tldp.org/LDP/intro-linux/html/images/FS-layout.png

Page 15: An Introduction To Linux

Partitions & Mount Points

● Partition Types– Data – normal Linux system data

– Swap – an extension of physical memory

● All partitions are attached to the system via a mount point– defines the place of a data set in the file system

– /etc/fstab holds the default structurefdisk -l

/dev/sda3 28G 6.8G 20G 26% /

/dev/sda5 376G 2.9G 354G 1% /home/ishanaba/Desktop

/dev/sdc1 1.9T 1.6T 321G 83% /media/ishanaba/FreeAgent GoFlex Drive

Page 16: An Introduction To Linux

Files Types

Symbol Meaning

- Regular file

d Directory

l Link

c Special File

s Socket

p Named Pipe

b Block Device

ls -l

drwxr-xr-x 2 ishanaba ishanaba 4096 May 20 18:09 Downloads

-rw-r--r-- 1 ishanaba ishanaba 8980 Apr 19 12:53 examples.desktop

Page 17: An Introduction To Linux

inode

● In Linux file systems, files are indexed by a number, "the inode"

● At the time a new file is created, it gets a free inode

● Owner and group owner● File type (regular, directory, ...)● Permissions ● Date/time of creation, last

read/change● Date/time changes in the

inode● Number of links to this file● File size● Actual location of the file data

Page 18: An Introduction To Linux

Links

● Symbolic Links● Hard Links

http://linuxg.net/wp-content/uploads/2012/07/symlink-vs-hardlink.png

Page 19: An Introduction To Linux

File Securityls -l

drwxr-xr-x 2 ishanaba ishanaba 4096 May 20 18:09 Downloads

-rw-r--r-- 1 ishanaba ishanaba 8980 Apr 19 12:53 examples.desktop

● chmod

– change the mode/access– user|group|other <=> rwx|r-x|r-x

● chown

– change the ownership– user group <=> ishanaba ishanaba

Page 20: An Introduction To Linux

Some More Commands

● File Manipulation

– Copy● cp

– Remove● rm

– Create Directory● mkdir

– Create a file● touch

● Read Files

– tail– head– grep– less– more

● Locate Files

– find– locate

Page 21: An Introduction To Linux

Processesps -af -e

UID PID PPID C STIME TTY TIME CMD

ishanaba 9762 7120 0 20:12 pts/0 00:00:00 ps -af

ishanaba 3107 2086 7 14:51 ? 00:22:44 gnome-system-monitor

● The process ID or PID● The parent process ID or PPID● Nice number● Terminal or TTY● User name of the real and effective user (RUID and EUID)● Real and effective group owner (RGID and EGID)

Page 22: An Introduction To Linux

Process Creation

● Fork and Exec● Usually a system call● Fork : a process

creates an exact copy of it self with a different PID

● Exec : address space of the child process is overwritten with the new process data

http://www.tldp.org/LDP/intro-linux/html/images/fork-and-exec.png

Page 23: An Introduction To Linux

Start Processes

● Start a process

– Simply type the command and enter

– Ex: firefox● Start a process in

Background

– Type the command following & sign

– Ex: firefox &

● Related Commands– ps

● ps -e

– pstree

– top

– nice/renice

– netstat

Page 24: An Introduction To Linux

End Processes

● When process ends normally, it will return “exit status” to the parent

● Processes can be killed terminated using Signals● List all signals : kill -l

Name Number Meaning

SIGTERM 15 Terminate the process in orderly way

SIGINT 2 Interrupt(can be ignored)

SIGKILL 9 Interrupt(can not be ignored)

SIGHUP 1 Reread the configuration file

Page 25: An Introduction To Linux

I/O Redirection

● Redirect– Input

● Ex: mail [email protected] < to_do

– Output● Write Ex: ls > sample.txt● Append Ex: ls >> sample.txt

● Pipe– Ex: ls /dev/tty* | grep USB

Page 26: An Introduction To Linux

Networking

● Linux Supports almost all OSI model protocols

Layer Name Protocols

Application Layer HTTP, DNS, SMTP, POP, RPC, RTP

Transport Layer TCP, UDP

Network Layer IP, IPv6

Network Access Layer PPP, PPPoE, Ethernet

Page 27: An Introduction To Linux

Booting The System

1.Initialize Hardware

2.Boot Loader

3.Kernel & initramfs

4.init on initramfs

5.init

Page 28: An Introduction To Linux

Booting : Initialize Hardware

● BIOS– Power On Self Test

– Search for Master Boot Record(MBR)

– First 512 bytes of first Hard Disk

● UEFI– Power On Self Test

– Load UEFI firmware

– Initializes the hardware required for booting

– Firmware reads its Boot Manager data

– launches the UEFI application

– the launched UEFI application may launch another application

Page 29: An Introduction To Linux

Boot Loader, Kernel & initramfs

● boot loader loads – Kernel

– initial RAM–based file system (initramfs)

into memory● initramfs contains a small executable, init● init handles the mounting of the real root file system● If special drivers are needed before the respective

device be accessed, they must be in initramf

Page 30: An Introduction To Linux

Booting : init in initramfs

● mount the proper root file system● provide the Kernel functionality for the needed

file system and device drivers with udev● After the root file system has been found, it is

checked for errors and mounted

Page 31: An Introduction To Linux

Booting : init

● Init, process with id 1● All the other processes started by

init● Ex: SysV, initng, Upstart,

systemd● init continue boot with its

configuration at /etc/inittab specifies– services

– daemons

which are available in each of the runlevels

Run Level Description

0 System halt

1 Single user mode

2 Local multiuser without network

3 Full multiuser with network

4 Undefined can be configured

5 Full multiuser with network and X

6 reboot

Run levels in SysV

Page 32: An Introduction To Linux

Desktop Environments

● A software bundle which share a common GUI

● Consist of – Window Manager

– Widget toolkit

● Ex : GNOME, KDE, LXDE, Unity, Xfce

https://m.ak.fbcdn.net/sphotos-f.ak/hphotos-ak-prn2/t1.0-9/10262254_10203975828022991_1421869568506953645_n.jpg

Page 33: An Introduction To Linux

Choose a distribution

● All major distributions works fine

● Visit distrowatch.com and read more

● My suggestions– Beginner – Ubuntu, Mint,

Fedora, suse, Mandriva, debian

– Moderate – debian, freeBSD, openBSD, Kali, Arch, slack ware Gentoo

– Advanced – Gentoo, LinuxFromScratch https://scottlinux.com/wp-content/uploads/2012/07/linux-e1342279303170.png

Page 34: An Introduction To Linux

Make Your Own OS

● Approaches– Linux From Scratch

– Gentoo Linuxhttp://www.linuxfromscratch.org/images/lfs-logo.png

https://www.gentoo.org/images/gtop-www.jpg

http://www.linuxfromscratch.org/images/lfs-logo.pnghttp://www.linuxfromscratch.org/images/lfs-logo.png

Page 35: An Introduction To Linux

Useful Resources

● http://tldp.org/LDP/intro-linux/html/● An on line course will be start in next August● https://www.edx.org/course/linuxfoundationx/lin

uxfoundationx-lfs101x-introduction-1621● Operating Systems: Design and

Implementation by Andrew S. Tanenbaum● Linux in a Nutshell by Ellen Siever, Stephen

Figgins, Robert Love, Arnold Robbins

Page 36: An Introduction To Linux

Q & A

Page 37: An Introduction To Linux

Thank You and Good Luck :-)