an introduction to linux
DESCRIPTION
An Introduction To Linux, Originally Presented at SLIIT on 21st May 2014TRANSCRIPT
![Page 1: An Introduction To Linux](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/1.jpg)
An Introduction to Linux
Ishan A B Ambanwela
![Page 2: An Introduction To Linux](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/7.jpg)
A Linux System
http://www.ibm.com/developerworks/opensource/library/l-linuxuniversal/figure1.gif
![Page 8: An Introduction To Linux](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/8.jpg)
The Architecture
http://www.tutorialspoint.com/operating_system/images/linux_architecture.jpg
![Page 9: An Introduction To Linux](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/18.jpg)
Links
● Symbolic Links● Hard Links
http://linuxg.net/wp-content/uploads/2012/07/symlink-vs-hardlink.png
![Page 19: An Introduction To Linux](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/27.jpg)
Booting The System
1.Initialize Hardware
2.Boot Loader
3.Kernel & initramfs
4.init on initramfs
5.init
![Page 28: An Introduction To Linux](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/36.jpg)
Q & A
![Page 37: An Introduction To Linux](https://reader033.vdocuments.net/reader033/viewer/2022060108/554f4f8db4c905423f8b5125/html5/thumbnails/37.jpg)
Thank You and Good Luck :-)