0
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...
Series Agenda
    Philosophy and Architecture
         Free Software and Software Freedoms
         Free Software Licen...
Free Software and Software Freedom




    What Freedom?
    Why Freedom?
    _Whose_ Freedom?




    Chintalagiri Sha...
Software Freedom & licenses
    (a very brief) History of Software licenses
    ‘Ownership’ of Software
    Richard Sta...
Anatomy of the linux operating system

 Kernel-space vs User-space.
 What is the ‘Operating System’?
 What is ‘Linux’?
...
Kernel Space
    What is the kernel
    Designed capabilities of the kernel - What it does and
     what it doesn’t
   ...
Files and filesystems
    Everything is a file
    Hierarchical filesystems
    /
         /boot
         /bin
     ...
Files and Filesystems
    Mounting stuff
         /mnt
         multiple filesystem support
              Ext2, ext3, ...
User-space Applications
    Command line centric – Graphical applications build on
     command line functionality
    T...
User-space Applications
    Scriptability
    Human readable configuration files
    Human editable configuration files...
Installing programs
    /usr/bin
    /usr/share/doc
    /etc
    ~/.<program>
    Dependencies
    Packages - .deb, ...
Package Management
    Aptitude, Yum, Yast
    Synaptic, Adept

    User permissions, privileges.
    Root, sudo, and ...
Installing Linux
    Things you might need to know
         Partition tables and file systems
         Ext3 vs reiserfs...
Distributions
    Repositories
    Distribution modifications
    Packages availability
    Stability and simplicity
...
Installing Linux - Decisions
    Which Distribution?

    Partition Table
    GRUB, LILO, GRUB2
    GDM, KDM, XDM
   ...
Meet the terminal
    Shells – bash, ksh, …
    Virtual terminals, virtual desktops
    Terminal emulators – konsole, g...
Command Structure
    <command name> [options] <files>
    Options and switches – behavior modification
    -h, --help ...
Mounting Filesystems
    /dev
    mount –t [type] <device> <mountpoint>
    Mount permissions
    /etc/fstab
    /etc...
Network (debian and derivatives)
    Useful files :
         /etc/hostname
         /etc/network/interfaces
         /...
X
    /etc/X11/xorg.conf – mostly obsolete
    xrandr
    (debian and derivatives) dpkg –reconfigure xserver-xorg
    ...
Administration
    File permissions
         Owner, group, all
         Read, write, execute
         Chmod and chown
...
Upcoming SlideShare
Loading in...5
×

Linux - Introduction

1,023

Published on

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.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,023
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
57
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Linux - Introduction"

  1. 1. Linux Philosophy & Internals Chintalagiri Shashank chintal@iitk.ac.in
  2. 2. 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>
  3. 3. 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>
  4. 4. Free Software and Software Freedom  What Freedom?  Why Freedom?  _Whose_ Freedom? Chintalagiri Shashank <chintal@iitk.ac.in>
  5. 5. 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>
  6. 6. 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>
  7. 7. 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>
  8. 8. Files and filesystems  Everything is a file  Hierarchical filesystems  /  /boot  /bin  /etc  /usr  /var  /tmp  /home Chintalagiri Shashank <chintal@iitk.ac.in>
  9. 9. 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>
  10. 10. 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>
  11. 11. 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>
  12. 12. 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>
  13. 13. 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>
  14. 14. 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>
  15. 15. 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>
  16. 16. 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>
  17. 17. 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>
  18. 18. 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>
  19. 19. 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>
  20. 20. 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>
  21. 21. 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>
  22. 22. 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>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×