Linux - Introduction
Upcoming SlideShare
Loading in...5
×
 

Linux - Introduction

on

  • 1,304 views

A basic introduction to the philosophy behind and internals of linux based operating system distributions, meant to be presented by someone who knows this stuff rather that as a DIY thing. ...

A basic introduction to the philosophy behind and internals of linux based operating system distributions, meant to be presented by someone who knows this stuff rather that as a DIY thing.

Sadly, I seem to have lost the sources for this after my hard drive crashed.

Statistics

Views

Total Views
1,304
Views on SlideShare
1,298
Embed Views
6

Actions

Likes
1
Downloads
56
Comments
0

4 Embeds 6

http://www.slideshare.net 3
http://nclc.blackboard.com 1
https://duckduckgo.com 1
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Linux - Introduction Linux - Introduction Presentation Transcript

  • Linux Philosophy & Internals Chintalagiri Shashank chintal@iitk.ac.in
  • This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.5 India License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.5/in/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. Chintalagiri Shashank <chintal@iitk.ac.in>
  • Series Agenda  Philosophy and Architecture  Free Software and Software Freedoms  Free Software Licenses  Anatomy of the Linux Operating System  Kernel-space  Files and Filesystems  User-space Applications  Application / package management  Linux system administration (or, installing and using linux)  More about linux Chintalagiri Shashank <chintal@iitk.ac.in>
  • Free Software and Software Freedom  What Freedom?  Why Freedom?  _Whose_ Freedom? Chintalagiri Shashank <chintal@iitk.ac.in>
  • Software Freedom & licenses  (a very brief) History of Software licenses  ‘Ownership’ of Software  Richard Stallman and the GNU GPL  Copyleft  Open Source  Show me the code.  Give me the code.  Let me do what I want with the code. Chintalagiri Shashank <chintal@iitk.ac.in>
  • Anatomy of the linux operating system  Kernel-space vs User-space.  What is the ‘Operating System’?  What is ‘Linux’?  GNU/Linux As an aside,  GNU Herd  BSDs  UNIXes and POSIX compliance  Windows Chintalagiri Shashank <chintal@iitk.ac.in>
  • Kernel Space  What is the kernel  Designed capabilities of the kernel - What it does and what it doesn’t  Hardware drivers  System calls  FUSE  ‘Binary blobs’, protection of freedom, and why linux graphics drivers suck.  Modularity  Linus’ Branch Chintalagiri Shashank <chintal@iitk.ac.in>
  • Files and filesystems  Everything is a file  Hierarchical filesystems  /  /boot  /bin  /etc  /usr  /var  /tmp  /home Chintalagiri Shashank <chintal@iitk.ac.in>
  • Files and Filesystems  Mounting stuff  /mnt  multiple filesystem support  Ext2, ext3, ext4, reiserfs, xfs, jfs, ntfs, fat, cdfs, ….  FUSE – filesystems in userspace  Network resources. Smbfs, curlftpfs, …  Loop mounting Chintalagiri Shashank <chintal@iitk.ac.in>
  • User-space Applications  Command line centric – Graphical applications build on command line functionality  The X Window System  Window Managers – Metacity, Kwin, twm, etc  Desktop Environments – GNOME, KDE, XFCE, etc. Chintalagiri Shashank <chintal@iitk.ac.in>
  • User-space Applications  Scriptability  Human readable configuration files  Human editable configuration files  Do you _need_ to ever see the command line?  Eye candy and visual effects – Compiz fusion and Kwin  Libraries & toolkits – GTK, Qt (widget toolkits)  Niche software and the supply-demand problem  Standards. Standards compliance.  Some applications are compilant.  Some are not. Chintalagiri Shashank <chintal@iitk.ac.in>
  • Installing programs  /usr/bin  /usr/share/doc  /etc  ~/.<program>  Dependencies  Packages - .deb, .rpm, ebuilds, …  Compiling from source  ./configure; make; make install  Development headers - *-dev, *-devel  Static linking, dynamic linking, lib versions Chintalagiri Shashank <chintal@iitk.ac.in>
  • Package Management  Aptitude, Yum, Yast  Synaptic, Adept  User permissions, privileges.  Root, sudo, and su.  Repositories  (Debian based) - Main, universe, multiverse, security  Backports  Third-party repositories  Dependency hell Chintalagiri Shashank <chintal@iitk.ac.in>
  • Installing Linux  Things you might need to know  Partition tables and file systems  Ext3 vs reiserfs vs …  Root user  GRUB  Useful separate partitions  /home – take your preferences and data with you  /boot – keep your bootloader separate from the OS, ~50-100 MB  /var or /srv – on servers  /tmp  Swap, swapfs, sharing swap. Chintalagiri Shashank <chintal@iitk.ac.in>
  • Distributions  Repositories  Distribution modifications  Packages availability  Stability and simplicity  Management tools  Update frequency  Bleeding edge vs Stable  Debian stable, unstable, experimental Chintalagiri Shashank <chintal@iitk.ac.in>
  • Installing Linux - Decisions  Which Distribution?  Partition Table  GRUB, LILO, GRUB2  GDM, KDM, XDM  Desktop environments – KDE vs GNOME vs other Chintalagiri Shashank <chintal@iitk.ac.in>
  • Meet the terminal  Shells – bash, ksh, …  Virtual terminals, virtual desktops  Terminal emulators – konsole, gnome-terminal, xterm, aterm …  Tab completion  Pipes, redirections  Scripts  Exit status Chintalagiri Shashank <chintal@iitk.ac.in>
  • Command Structure  <command name> [options] <files>  Options and switches – behavior modification  -h, --help – prints out usage instructions  Use man to get more details  ls, mv, cp, man  cat, grep, sed, awk Chintalagiri Shashank <chintal@iitk.ac.in>
  • Mounting Filesystems  /dev  mount –t [type] <device> <mountpoint>  Mount permissions  /etc/fstab  /etc/mtab  mount –o loop, loop mounting  fuse mounting  curlftpfs -o allow_other <ftp-address> <mountpoint> Chintalagiri Shashank <chintal@iitk.ac.in>
  • Network (debian and derivatives)  Useful files :  /etc/hostname  /etc/network/interfaces  /etc/resolv.conf  /etc/hosts  Useful commands :  ifconfig, route, nslookup, ping, nmap  ifup, ifdown  /etc/init.d/networking Chintalagiri Shashank <chintal@iitk.ac.in>
  • X  /etc/X11/xorg.conf – mostly obsolete  xrandr  (debian and derivatives) dpkg –reconfigure xserver-xorg  Modelines, monitor resolutions  glxinfo, glxgears Chintalagiri Shashank <chintal@iitk.ac.in>
  • Administration  File permissions  Owner, group, all  Read, write, execute  Chmod and chown  Ports  <1000 reserved for root  80 : http, 81: https, 20: ftp, 22: ssh …  Iptables and firestarter  Daemons  /etc/init.d/  Users  /etc/passwd Chintalagiri Shashank <chintal@iitk.ac.in>