2. 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
3. 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
4. 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
5. 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
6. 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
7. A Linux System
http://www.ibm.com/developerworks/opensource/library/l-linuxuniversal/figure1.gif
9. The Kernel
● Manage all hardware
● Manage all processes
and daemons
● Inter Process
Communications
http://www.ibm.com/developerworks/library/l-linux-kernel/figure3.jpg
10. 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
11. 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
12. 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
13. 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
14. 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
15. 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 structure
fdisk -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
16. 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
17. 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
18. Links
● Symbolic Links
● Hard Links
http://linuxg.net/wp-content/uploads/2012/07/symlink-vs-hardlink.png
19. File Security
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
● chmod
– change the mode/access
– user|group|other <=> rwx|r-x|r-x
● chown
– change the ownership
– user group <=> ishanaba ishanaba
20. 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
21. Processes
ps -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)
22. 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
23. 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
24. 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
25. I/O Redirection
● Redirect
– Input
● Ex: mail example@example.com < to_do
– Output
● Write Ex: ls > sample.txt
● Append Ex: ls >> sample.txt
● Pipe
– Ex: ls /dev/tty* | grep USB
26. 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
27. Booting The System
1.Initialize Hardware
2.Boot Loader
3.Kernel & initramfs
4.init on initramfs
5.init
28. 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
29. 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
30. 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
31. 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 levels in SysV
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
32. 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_1020397582802299
1_1421869568506953645_n.jpg
33. 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
34. Make Your Own OS
● Approaches
– Linux From Scratch
– Gentoo Linux
http://www.linuxfromscratch.org/iimmaaggeess//images/lfs-llffss--llooggoo..logo.png
ppnngg
https://www.gentoo.org/images/gtop-www.jpg
35. 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