Upload
ishan-a-b-ambanwela
View
858
Download
0
Tags:
Embed Size (px)
DESCRIPTION
An Introduction To Linux, Originally Presented at SLIIT on 21st May 2014
Citation preview
An Introduction to Linux
Ishan A B Ambanwela
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
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
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
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
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
A Linux System
http://www.ibm.com/developerworks/opensource/library/l-linuxuniversal/figure1.gif
The Architecture
http://www.tutorialspoint.com/operating_system/images/linux_architecture.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
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
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
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
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
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
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
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
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
Links
● Symbolic Links● Hard Links
http://linuxg.net/wp-content/uploads/2012/07/symlink-vs-hardlink.png
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
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
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)
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
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
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
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
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
Booting The System
1.Initialize Hardware
2.Boot Loader
3.Kernel & initramfs
4.init on initramfs
5.init
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
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
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
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
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
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
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
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
Q & A
Thank You and Good Luck :-)