By Dave Fisher
1. What is Linux?
- Linux kernel
- Developed by Linus Torvalds
- Strictly speaking, ‘Linux’ is just the kernel
- Associated utilities
- Standard tools found on (nearly) all Linux systems
- Many important parts come from the GNU project
- Free Software Foundation’s project to make a free Unix
- Some claim the OS as a whole should be ‘GNU/Linux’
- Linux distributions
- Kernel plus utilities plus other tools, packaged up for end users
- Generally with installation program
- Distributors include: Red Hat, Debian, SuSE, Mandrake
2. What Can You Do with Linux/Unix?
- Virtually anything that you can do with a computer:
- General purpose office PCs, thin-clients and servers
- Home consumer PCs (games, multi-media, etc.) — a weak spot
- Software development — free languages, compilers, tools
- Single-use devices and systems
- Vast multi-purpose data centres and server farms
- Build the Internet
- Largely depends on motivation, effort, co-operation and experience
- Learning and mastering it is a bit like natural language acquisition:
- You can get going with pre-verbal sounds and gestures
- Takes years of learning and practice to acquire fluency
- No one knows more than a fraction of the whole
3. Linux Isn’t Windows
- More flexible, powerful, stable and secure
- Primarily, because it’s made up of simple, tiny, components which can be assembled and configured in infinite ways
- The X windowing system is networked, OS-independent and older
- Command lines are used for power and productivity, not inertia
- Data files typically plain text (ASCII) rather than binary
- Allowing re-use and re-assembly by any program or application
- Underlying architectures are designed but implementations evolve
- Innovative divergence then convergence around best practice
- Inconsistencies remain if they’re not ‘important’ enough to fix
- Supported by fewer hardware vendors and ISVs
4. Getting Linux
- All applications and distributions released under open source licences can be freely copied from any source
- Some commercial installers and config tools are proprietary
- Try before you install, using a run-from-CD distro
- Buy/copy binary CDs used by friends, colleagues, or WYLUGers, if:
- They use a beginner-friendly distro
- It’s a popular distro which others can help you with
- They install/configure an easy maintenance distro
- Buy an established commercial distribution with a good manual
- Burn binary CD images, or install directly, from the Internet
- Build, combine and configure every component from source code
5. Hardware Requirements
- Depend entirely on what you want to do with your system
- Linux runs on just about every CPU and platform you’ve heard of
- Trouble-free installation and functionality is most likely with established, generic, popular components
- Some common uses of Intel-compatible systems:
- Single-use console min. — 386 CPU, 4 Mb RAM, 50 Mb HDD
- Basic X window min. — 486 CPU, 16-32 Mb RAM, 100 Mb HDD
- Acceptable office thin client — 586 CPU, Fast XVGA, Fast Ethernet, Twin P3 Server
- Basic office PC — 500+ MHz 686, 128 Mb RAM, 10 GB HDD
- Typical SoHo Multi-media PC — 1+ GHz P4/Athlon, 512 Mb RAM, 120 Gb HDD
6. Installing Linux
- Installing a modern commercial distribution on dedicated, modern, vanilla hardware is easier and quicker than Windows:
- Insert a bootable installation CD
- Turn on your machine
- Accept all the default configration choices
- Some can even install dual-boot systems in the same way
- Less polished or custom installs require knowledge of hardware specs, HDD partitions, and TCP/IP networking
- Installing on esoteric hardware, including laptops, is difficult
- In the last two cases, get help from friends, user groups, mailing lists, ‘install fests’, HOWTOs, Google, etc.
7. Unix and Linux
- Linux is based on Unix
- Unix philosophy
- Unix commands
- Unix standards and conventions
- There is some variation between Unix operating systems
- Especially regarding system administration
- Often Linux-specific things in these areas
8. Unix System Architecture
- The shell and the window environment are programs
- Programs’ only access to hardware is via the kernel
9. Unix Philosophy
- Multi-user
- A user needs an account to use a computer
- Each user must log in
- Complete separation of different users’ files and configuration settings
- Small components
- Each component should perform a single task
- Multiple components can be combined and chained together for more complex tasks
- An individual component can be subsituted for another, without affecting other components
10. Graphical Interfaces
- May look/behave like Microsoft, but fundamentally different
- Networked, platform-independent, multi-head, heterogeneous
- Typical users work with 3–4+ ‘virtual desktops’
- Made up of independent components:
- Display Managers (xdm, etc.) — login session management
- X — primitive mechanisms for drawing objects on screens
- Window Managers — provide decorations, controls, menus
- Desktop Environments (Gnome/KDE) — drag & drop, integration between applications, common key bindings, etc.
- Application crashes may ‘freeze’ the screen, or even bring down X, but rarely affect the rest of the system
- Control from consoles (Ctrl+Alt+F1–F6) or remote shell
11. Command Line Productivity
- Command line interfaces (CLIs) give simultaneous access to otherwise impossible combinations of tools, options and data
- Experienced users find them quicker and simpler than mousing
- Many old Unix hands are unaware of the productivity and usability features in Linux shells like
bash
, e.g.
- Command and filename completion
- Command history
- Command substitution
- Increasingly long and sophisticated command lines, eventually get saved as shell scripts (programs)
- Cutting out much of the human effort entirely
12. Text Editors
- Text editors are for editing plain text files
- Don’t provide advanced formatting like word processors
- Extremely important — manipulating text is Unix’s raison d’tre
- Particularly useful for markup, programming, config files
- Emacs and Vim are most popular, powerful and sophisticated, but take time to learn
- Simpler editors include Nano, Pico, Kedit and Gedit
- Some programs run a text editor for you
- They use the
$EDITOR
variable to decide which editor to use
- Usually it is set to
vi
, but it can be changed
- Another example of the component philosophy
13. A Minimal Set of Command Line Tools
- Shells —
bash
, ssh
- File manipulation —
cp
, mv
, rm
, scp
, cat
, lpr
, dd
, chmod
, chown
- Directories —
pwd
, ls
, mkdir
, rmdir
, du
- Searching —
find
, locate
, grep
- Viewing files —
less
, head
/tail
, cat
- Documentation —
man
, info
, help
- Resources & job control —
ps
, df
, jobs
, bg
/fg
- Backup/archiving —
tar
, gzip
, bzip2
, zip
- A web browser —
lynx
, or links
, or elinks
- A mailer —
mutt
, or pine
14. Common Sets of Desktop Tools
- Web browsers — Galeon, Konqueror, Opera, Mozilla
- Office suites — Star/Open Office, K Office, Gnome Office, MS-Office (via Wine, VMware, Crossover Office)
- Single wordprocessors, spreadsheets, etc. — mixed and matched
- Graphics — Gimp (bitmap), Sodipodi (vector), Kontour (vector)
- Viewers — Ghostview (PostScript/PDF), Acroread (PDF), xpdf (PDF)
- Multimedia — Xmms, gmplayer, gPhoto, Linux VideoStudio, TV/radio
- Email clients — Kmail, Evolution, Balsa, Mozilla Mail
- News Readers — Knews, Pan, Mozilla News
- Misc — scanning, OCR, voice, speech, file sharing, IDEs, etc
15. Information Sources
- Your own system documentation
- /usr/share/doc/appname
man appname
or man -k keyword
info appname
appname --help
or appname -h
- Linux Documentation Project http://www.tldp.org/
- User group web sites and mailing lists — for almost all apps
- Distribution sites — SuSE, Red Hat, Mandrake, Debian, SuSE
- Really good books — Unix rewards reading and learning
- Look for many editions and user recommendations
- Google
This entry was posted
on Monday, February 10th, 2003 at 6:52 pm and is filed under Previous talks.
You can follow any responses to this entry through the RSS 2.0 feed.
Both comments and pings are currently closed.