marketing information is wealth: 2009

Wednesday, December 2, 2009

What's a Linux Release?

A Linux release is a set of files for a complete Linux system. Various changes made by the Linux community are incorporated into each release.

Linux releases are identified by numbers. These numbers are of the form X.YY.ZZ, where X is between 0 and 9, and YY and ZZ are numbers between 0 and 99. Generally, the higher the number, the newer the release. Some release numbers also include pNN, where NN is a number between 1 and 20. These refer to patches to a specific Linux version (a patch is a fix or an update to the software). For example, 0.99p15 would mean the fifteenth patch to the Linux release 0.99.

A release consists of several components called series of disks, or a collection of disks. For example, the X series of disks comes on 10 disks. Each series is referred to by its name. A
name generally tells you who put the software together and what its date is.

Some of the releases of Linux are as follows:
* The Red Hat Software Inc. Release This is a release of Linux from Red Hat Software Inc. The latest version is 3.0.3, which is included on the CD-ROM at the back of this book.
The highlight of the installation package is the Red Hat Packet Manager (RPM). Using the RPM enables you to safely install and uninstall packages. By far, the uninstall capability of the package is the best feature because most upgrades to critical packages require a complete Linux installation. Red Hat Linux is also notable for the ability to install from an X session, assuming the video card and monitor are supported by Linux.

* Slackware
This is a popular release of Linux included with this book's sister books: Linux Unleashed Second Edition and Linux System Administrator's Survival Guide. You can get versions
of this release on CD-ROM from various vendors for about $25. The primary distributor for this release is PatrickVolkerding, who can be reached at volkerdi@mhdl.moorhead.msus.edu.

* The Softlanding Linux System Release (SLS) This release consists of about 23 disks for Linux and 10 for X11. The first disk (a1) must be "rawritten" (using rawrite.exe in Chapter 3, "Installing and Updating Linux") on floppies, and the rest of the images must be put onto
DOS-formatted floppies using the DOS copy command. This release contains all the software package(s) you need to get started with Linux, and for newcomers it is easy to install.
The SLS release can also be found at tsx-11.mit.edu in the directory/pub/linux/packages/SLS and on sunsite.unc.edu in the directory /pub/Linux/SLS. By snail mail, SLS is available from Softlanding Software 910 Lodge Ave. Victoria, B.C. Canada V8X-3A8 (604) 360-0188

* The TAMU (Texas A&M University) Linux Release This release is supposedly like the SLS release, but it has some different software packages and a different installation procedure than SLS. The installation procedure is the main difference from SLS. A single boot diskette,
which boots directly into an automated installation program, is used. This installation program asks a few questions about the desired configuration and sets up everything, including your file systems, booting from the hard drive with LILO (see Chapter 5, "Odds and Ends") and a simplified X configuration. This release is a full-featured package, including X Window, emacs, networking tools, boot utilities, and a list of sources for all installation programs without any use restrictions. TAMU is available from sc.tamu.edu in
pub/free_unix4.

* H.J. Lu's bootable rootdisk This is a release of the Linux kernel and basic binaries on
a single floppy. It, along with Lu's gccdisk, libdisk, and so on, is good for upgrading or installing a basic Linux system by hand. It's not recommended for newcomers, because there's no real install script; it's mostly meant as an upgrade of the basic system software.
H.J. Lu's bootable rootdisk release is found at tsx-11.mit.edu: inthedirectory/pub/linux/packages/GCC.

* The Manchester Computing Centre Interim Release This is the fabled MCC-Interim Linux release, which was originally the de facto standard Linux distribution. This release has almost all of the important Linux software, such as Slackware, but does not contain emacs or X Window.MCC-Interim can be found on sunsite.unc.edu in the directory /pub/Linux/distributions/MCC and also at ftp.mcc.ac.uk in the directory /pub/linux/mcc-interim.

Special Requirements for X

Your 4MB of RAM will make X run very slowly. You should have at least 8MB of RAM for running programs in X. You will need another 6MB to 10MB of disk space for the GCC compiler in addition to X if you want to develop applications for X.


Do not try to bring up an Xserver that does not support your hardware. There have been
cases where damage has resulted from pushing the monitor (especially fixed-frequency
monitors) beyond its capabilities.


As far as mice go, Linux supports both serial and Bus varieties. For the serial mice, you can use Logitech, Microsoft, MouseSystems, or compatibles. The following Bus mice are known to work: Logitech, Microsoft, ATI_XL, and PS/2 (aux). There you have it, a brief introduction to an operating system that could very well change the way you program. Now for getting
yourself ready for Linux.

Other Hardware Requirements

Linux will also run on a number of laptop machines (some laptops use certain software interrupts to power the memory, and Linux doesn't work well with these systems to date). The best way to find out if Linux will run on your hardware is just to try it out.

At the time of writing, Linux doesn't run on an IBM PS/2 computer.

There are other hardware drivers currently under development for Linux. To use these drivers, however, you usually have to patch them into your kernel code, which assumes that you already have a running Linux system (a kind of chicken-and-egg problem if you have not already installed Linux). In such cases, you can install whatever Linux you happen to have and then apply the patches with the Linux patch command.

Then there is the issue of tape drives for Linux. There is a working QIC-02 device driver for Linux, supporting Everex/Wangtek cards. There are additional patches for the QIC-02 to support Archive SC402/499R. You can find them in /pub/linux/alpha/qic-02 directory at tsx-11.mit.edu server. (There have been reports of some bugs in the driver, but you can back up and restore.)

Most of the newer tape drivers are all for SCSI drives, so if you have a SCSI tape drive, chances are that it is supported.

Hardware Requirements

Now that you know a little about the good and bad points ofLinux, let's see what's required in terms of hardware.

Unlike some other versions of UNIX for the PC, Linux is very small. You can run an entire system from a single, high-density 5.25-inch floppy. However, to run a complete Linux system, there are other hardware requirements.

Linux, by its very nature, is continuously expanding, and more features are added every day. However, hardware compatibility is limited to that hardware the developers themselves have access to. For instance, if none of the Linux developers has access to the WhizBang Slice-O-Matic T3222 Ethernet card from a no-name manufacturer, then chances are it isn't supported.

On the other hand, there are many generic drivers for hardware, such as the IDE disk driver, which should work with all IDE hard drives and adapters regardless of manufacturer. Of course, the developers of the drivers couldn't test their software against every IDE device on the market, so they assume the IDE standards are followed by manufacturers. If a device doesn't work, it's probably because the manufacturer deviated from the standards, or added features the generic drivers can't handle.

A good place to look on the CD-ROM is in the /docs/howto directory for the Hardware-HOWTO file. This file will list a lot of the supported hardware for Linux.

If your favorite peripheral isn't supported by Linux, all that's required is to write a kernel driver for it. This may be easy or difficult, depending on the hardware and the technical specifications that are available. For example, some hardware developers prefer to write their own drivers for MS-DOS and Windows, and not release specifications for third parties to write their own. Therefore, writing drivers for Linux will be difficult, if not impossible.

The following is a rough guideline of some hardware requirements for Linux. You do not have to follow them directly, but this list should give you a rough idea of what's required:

parts of Linux

* Some of the features on your favorite UNIX system may not be available for your Linux system. Your choice in this matter is to either write the application yourself, convince
someone else to write it, or find an alternative process (the easiest out in most cases).

* As with software, some of the hardware in your machine may not be supported by Linux. Again, your choices are to either write the driver software yourself or get it from somewhere
else.

* You do have to spend some time and effort managing your Linux machine. You do develop a knack for fixing problems from experience. However, only with experience can you learn to recognize common problems and find or develop solutions.

important features of Linux

* Full multitasking and 32-bit support. Linux, like all other versions of UNIX, is a real multitasking system, allowing multiple users to run many programs on the same system at
once. Linux is also a full 32-bit operating system, utilizing the special protected-mode features of Intel 80386 and later processors and their work-alikes.

* The X Window System. The X Window System is the de facto industry-standard graphics system for UNIX machines. A complete version of the X Window System, known as XFree86,
is available for Linux. The X Window System is a very powerful graphics interface, supporting many applications.

* TCP/IP (Transmission Control Protocol/Internet Protocol) support. This is the set of protocols that links millions of university and business computers into a worldwide network
known as the Internet. With an Ethernet connection, you can have access to the Internet or to a local area network from your Linux system. Using SLIP (Serial Line Internet Protocol) or PPP (Point to Point Protocol), you can access the Internet over phone lines with a modem.

* Virtual memory and shared libraries. Linux can use a portion of your hard drive as virtual memory, expanding your total amount of available RAM. Linux also implements shared
libraries, allowing programs that use standard subroutines to find the code for these subroutines in the libraries at runtime. This saves a large amount of space on your system; each application doesn't store its own copy of these common routines.

* The Linux kernel uses no code from AT&T or any other proprietary source. Much of the software available for Linux is free. In fact, a large number of utilities in Linux are developed by the GNU project at the Free Software Foundation in Cambridge, Massachusetts. However, Linux enthusiasts, hackers, programmers, and recently even commercial companies from all over the world have contributed to the growing pool of Linux software.

* Linux supports (almost) all of the features of commercial versions of UNIX. In fact, some of the features found in Linux may not be available on other proprietary UNIX systems.

* GNU software support. Linux supports a wide range of free software written by the GNU Project, including utilities such as the GNU C and C++ compiler, gawk, groff, and so on. Many of the essential system utilities used by Linux are GNU software.

* Linux is compatible with the IEEE POSIX.1 standard. Linux has been developed with software portability in mind, thus supporting many important features of other UNIX standards.

* Virtual memory support. Linux utilizes all of your system's memory, without memory limits or segmentation through the use of a virtual memory manager.

* Built-in support for networking, multitasking, and other features. You'll see this touted as "New Technology" in systems such as Windows NT. In fact, UNIX (and now, Linux)
has implemented this "new technology" for more than 15 years.

* Linux is cheaper to get than most commercially available UNIX systems and UNIX clones. If you have the patience and access to the Internet, the only price you pay for Linux is
your time. Linux is freely available on the Internet. For a nominal fee of anywhere from US $30 to US $90, you can save yourself some time and get CD-ROM or floppy-disk distributions from several commercial vendors (or from this book).

What Do I Get with a Linux System?

Linux is a freely distributable version of UNIX developed primarily by Linus Torvalds at the University of Helsinki in Finland. Linux was further developed with the help of many UNIX
programmers and wizards across the Internet, allowing anyone with enough know-how and gumption to hack a custom UNIX kernel the ability to develop and change the system.

UNIX and its clones have long been perceived as large, resource-hungry, disk-devouring systems. Linux is not such a beast. It is small, fast, and flexible. Linux has been publicly available since around November of 1991. v0.10 went out in November of 1991, v0.11 in December of 1991.
There are very few small bugs now, and in its current state Linux is mostly useful for people who are willing to port code and write new code. Because Linux is very close to a reliable and stable system, Linus decided that v0.13 will be known as v0.95.

Monday, November 9, 2009

Formatting a Partition

In BasicLinux, use the following command to place a Linux file system a partition /dev/hda3 and determine if the partition has any bad sectors.
mke2fs -t /dev/hda3
In Debian Linux 2.2 and 3.1 the equivalent command would be
mkfs -t ext2 /dev/hda3
The BasicLinux command mke2fs automatically makes a Linux file system while it is necessary to tell mkfs in Debian that we want a Linux (i.e., ext2) file system.
In BasicLinux you can make and mount a second 4 meg ramdisk (again, solely in the computer’s memory) using the commands
mke2fs /dev/ram2 4096
mount /dev/ram2 /mnt
This will give you practice without damaging the file systems on the computer’s
actual hard disk(s).

Command (m for help)

You should not run this program on anyone else’s computer and you should use use it only to determine the layout of the drives on your own computer unless you have backed up all your files! To exit fdisk without doing damage, enter the command q. The discussion below assumes that you want to modify the partitions or create new ones on a computer on which you plan to install a ‘real’ version of Linux.
Before proceeding further, you should copy down on a piece of paper the above information not only for the disk you are planning to restructure but for all disks on the computer. You can find the total size of the disk in bytes by multiplying 16065 by 512, in the above case, to obtain the
number of bytes per unit (or cylinder), and then multiply that number by the number of cylinders. To find the size of any partition, multiply the number of cylinders in the partition by the number of bytes per cylinder calculated above.
To delete a partition press d and then, when prompted, the number of the partition, where /dev/hda1 is the first partition and /dev/hda2 is the second partition, and so forth. Deletion of any partition marked ‘extended’ in the right-most column of the partition table will automatically delete any partitions associated with the blocks that are in that extended partition. If you are going to set up Linux on the disk you should delete all partitions unless you are doing the initial install from a DOS partition. In that event you should leave as is an appropriate DOS partition that you or someone else should have previously set up using DOS FDISK. Indeed, you can even have on that partition MS-Windows 95/98 which you can install Linux from and then keep and use on occasion for browsing the Web, etc.
To add a partition press n. You will be asked whether you want to add a primary or an extended partition. Press p to create a primary partition. You will then be asked the number to give the partition. Start with 1, assuming that your previously created DOS partition is not partition 1. You will be asked to specify the first cylinder of the new partition—you can usually use the default here and press ENTER. You will then be asked to specify the last cylinder or the size in either cylinders, kilobytes, or megabytes. To pick the last cylinder, just enter the number of the cylinder. Alternatively, to set the size in cylinders and let the program find the last cylinder, enter +nnn where nnn is the number of cylinders. To set the size in megabytes, enter +nnnM
where nnn is the number of megabytes.

Using Linux fdisk

To find out what partitions exist on a computer and to modify those partitions you need to use the Linux fdisk program. To start fdisk enter the command (I again ignore the command prompt)
fdisk /dev/hda
where hda refers to the first hard disk drive on the computer. To work on the second disk drive, change this to hdb. You will receive the reply
Command (m for help):
and after typing m your screen will appear as follows:
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help):
To find out what the existing partitions are on the hard disk, press p. Your screen will appear as follows.
Command (m for help): p
Disk /dev/hda: 255 heads, 63 sectors, 789 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 382 3068383+ b Win95 FAT32
/dev/hda2 383 550 1349460 83 Linux
/dev/hda3 551 567 136552+ 82 Linux swap
/dev/hda4 568 789 1783215 83 Linux

Telnet: Reading Your Mail

When you are connected to the Web and have the appropriate privileges from your ISP you can use the telnet command log on to your ISP and work as an ordinary user on that machine. If the ISP has the program pine installed you can use it to check your mail. Suppose, for example, that you have a CHASS account. Log into CHASS using the command
/# telnet chass.utoronto.ca
and reply to the prompts with your username and password. To read your mail, enter at the % command prompt the word pine:
/homes/username % pine
It will be obvious how to proceed from the options on the screen and the help menu along the bottom of it. If you are a University of Toronto student or faculty member and have
a UTORDIAL account you can read mail you receive at that address by executing the command
/# telnet log.agent.utoronto.ca and responding to the login prompt with the relevant digits of your library card and typing your password when asked. Then select the option ‘1. UTORmail via Pine’ by pressing the ‘1’ key but do not press ENTER. You will be asked to enter your password a second time. After that you use pine in the same way as in the CHASS account.

Getting Connected to the Internet

If you are thinking about setting up a Linux distribution for yourself, the most important hurdle will be setting up a dial-in connection to access the Internet. The connection will use the Point-to-Point Protocol, otherwise known as PPP. If your computer is hardwired directly to a network, you should have been using Tom’s distribution thus far if it automatically detects your ethernet card and establishes a connection. In Debian Linux you will be prompted to establish this connection in the process of setting up the system. If you have to work through a modem, setting up an Internet connection is less transparent and can be quite difficult if you are dealing
with a university network whose service may be free and not-for-profit, with the result that university personnel have no incentive to support anything but MS-Windows operating systems.
It turns out that an Internet connection can be established rather easily in BasicLinux. After the system loads, execute the command
/<#>pppsetup
and you will be presented with a screen giving a number of options. Choose ‘2. Edit your PPP settings’. You will be prompted to modify a number of files. The first one will appear on the screen as follows:
#!/bin/sh
#
# substitute your ISP's telephone number for 087304484
#
# if your ISP uses PAP/CHAP then remove the last two lines;
# otherwise, substitute your username/password for ichi/xxx
exec chat \
TIMEOUT 3 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
'' \rAT \
TIMEOUT 30 \
OK ATS11=55 \
OK ATDT087304484 \
CONNECT '' \
ogin ichi \
word xxx
If your Internet Service Provide uses either the PAP or the CHAP protocol your task is dead-easy. Simply do as instructed and press the Ctrl and x keys simultaneously to save your changes and exit the screen. If your ISP requires a text dialogue, as do the University of Toronto Systems, things can get quite complicated. To proceed, you must be using the version of BasicLinux obtained from my website.

Friday, October 2, 2009

UNIX OVERVIEW AND SITE INFORMATION

Organizational Relationships
Organizational relationships play a significant role in providing secure computing environments.
The site must provide a robust and secure environment that protects the software environment
from unauthorized access. This includes the protection of system-level resources (i.e., database
systems, applications, and other utilities) used by the DOD user community. Data owners must
define access requirements for their resources (i.e., actual databases, master files, and interactive
transactions). Data owners are responsible for providing an access matrix that reflects subjects
(processes and authorized personnel) and their access to resources (databases and applications).

Security Administration
Security administration is accomplished through the ongoing efforts of a number of personnel.
The SM is the principal advisor to the site Commander/Director for the administration and
management of the overall site security program. The IAM is responsible for the information
assurance program of a DOD information system or organization. The IAO is responsible for
implementing security requirements and ensuring the operational Information Assurance (IA)
posture is maintained for a DOD information system or organization. The IAO is responsible to
the IAM. The SA is responsible for the operational readiness and secure state of a computer
system. The SA assists the IAO with implementing security directives in the operations
environment and reports to the IAO.

Processing Environment
There are many objectives and goals to be considered when securing a UNIX operating system.
When configuring UNIX operating system security, consider these critical principals of security
known as the Confidentiality, Integrity, and Availability (CIA) triad:
- Confidentiality Access controls protect the systems and resources from unauthorized access and in some
implementations can determine levels of authorizations. Access controls can include physical
access restrictions to ensure only authorized personnel may access system equipment and the
environments in which these systems reside. Access controls may also include system level
access controls. System level access controls restrict access to system resources and objects, as
well as restricting the capabilities of subjects to communicate with other subjects.
Auditing tools can track system activities to warn an SA of suspicious activity, allow the SA to
understand the types of access that took place, identify a security breach, and aid in the research
of the breach.
Backups are performed with prevention and recovery in mind. This includes, but is not limited
to, the prevention of data loss and the loss of availability to data and resources. A daily backup
of all changeable data and the proper storage of the data are invaluable in restoring data once a
compromise has been detected and traced to the time it first occurred. Without these continual
and consistent backups, recovery procedures are not reliable. Backups are also the most
common way Continuity of Operations Plan (COOP) is implemented during catastrophe, natural
disaster, hardware failures, and other circumstances. In all cases, the quality and depth of
backups and the security of backup storage will have a direct impact on the quality and depth of
restorative operations and COOP. Backups are the only path back to confidentiality, integrity,
and availability of data once there has been a compromise, a natural disaster, or a catastrophe.
- Integrity
- Availability
In addition to incorporating security controls that relate to the CIA triad, there are three
additional security features that directly affect CIA and aid the overall site security program:
- Access control
- Auditing
- Backups
Access controls protect the systems and resources from unauthorized access and in some
implementations can determine levels of authorizations. Access controls can include physical
access restrictions to ensure only authorized personnel may access system equipment and the
environments in which these systems reside. Access controls may also include system level
access controls. System level access controls restrict access to system resources and objects, as
well as restricting the capabilities of subjects to communicate with other subjects.
Auditing tools can track system activities to warn an SA of suspicious activity, allow the SA to
understand the types of access that took place, identify a security breach, and aid in the research
of the breach.
Backups are performed with prevention and recovery in mind. This includes, but is not limited
to, the prevention of data loss and the loss of availability to data and resources. A daily backup
of all changeable data and the proper storage of the data are invaluable in restoring data once a
compromise has been detected and traced to the time it first occurred. Without these continual
and consistent backups, recovery procedures are not reliable. Backups are also the most
common way Continuity of Operations Plan (COOP) is implemented during catastrophe, natural
disaster, hardware failures, and other circumstances. In all cases, the quality and depth of
backups and the security of backup storage will have a direct impact on the quality and depth of
restorative operations and COOP. Backups are the only path back to confidentiality, integrity,
and availability of data once there has been a compromise, a natural disaster, or a catastrophe.
Why Companies Support Kernel Development


The list of companies participating in Linux kernel development
includes many of the most successful technology firms in existence.
None of these companies are supporting Linux development as an
act of charity; in each case, these companies find that improving the
kernel helps them to be more competitive in their markets. Some
examples:
• Companies like IBM, Intel, SGI, MIPS, Freescale, HP, etc. are all
working to ensure that Linux runs well on their hardware. That, in
turn, makes their offerings more attractive to Linux users, resulting
in increased sales.
• Distributors like Red Hat, Novell, and MontaVista have a clear
interest in making Linux as capable as it can be. Though these
firms compete strongly with each other for customers, they all
work together to make the Linux kernel better.
• Companies like Sony, Nokia, and Samsung ship Linux as a
component of products like video cameras, television sets, and
mobile telephones. Working with the development process helps
these companies ensure that Linux will continue to be a solid
base for their products in the future.
• Companies which are not in the information technology business
can still find working with Linux beneficial. The 2.6.25 kernel will include an implementation of the PF_CAN network protocol which
was contributed by Volkswagen. PF_CAN allows for reliable
communications between components in an interference-prone
environment – such as that found in an automobile. Linux gave
Volkswagen a platform upon which it could build its networking
code; the company then found it worthwhile to contribute the code
back so that it could be maintained with the rest of the kernel. See
http://lwn.net/Articles/253425/ for more information on this work.
There are a number of good reasons for companies to support
the Linux kernel. As a result, Linux has a broad base of support
which is not dependent on any single company. Even if the largest
contributor were to cease participation tomorrow, the Linux kernel
would remain on a solid footing with a large and active development
community.
Development Model

With the 2.6.x series, the Linux kernel has moved to a relatively
strict, time-based release model. At the 2005 Kernel Developer
Summit in Ottawa, Canada, it was decided that kernel releases
would happen every 2-3 months, with each release being a “major”
release in that it includes new features and internal API changes.
The quick release cycle was chosen as a way to get new features
out to users in a stable form with minimal delay. As a result, new code
– features, device drivers, etc. – is available in a stable kernel within
a few months of its completion, minimizing or eliminating the need for
distributors to backport developmental code into stable releases. So
the kernels released by distributors contain many fewer distributionspecific
modifications, yielding higher stability and fewer differences
between distributions.
Each 2.6.x release is a stable release, in that it is made available
when the list of outstanding bugs is made as small as possible. For
problems which turn up after a kernel release, the “-stable” branch
exists as a way to quickly get fixes out to the community.
The kernel team released the 2.6.19 kernel as a stable release.
Then the developers started working on new features and started
releasing the release candidate versions as development kernels so
that people could help test and debug the changes. After everyone
agreed that the development release was stable enough, it was
released as the 2.6.20 kernel.
While the development of new features was happening, the
2.6.19.1, 2.6.19.2 and other stable kernel versions were released,
containing bug fixes and security updates.This paper focuses exclusively on the main 2.6.x releases, to the
exclusion of the stable updates. Those updates are small, and, in
any case, the design of the development process requires that fixes
accepted for -stable also be accepted into the mainline for the next
major release.
Basic Linux Commands

Linux commands are still and they will always be very useful in a Linux system. I will try to
list here, for linux beginners, some of the most important console commands:Starting &
Stopping shutdown -h now - Shutdown the system now and do not reboot.halt - Stop all
processes - same as above. shutdown -r 5 - Shutdown the system in 5 minutes and reboot.
shutdown -r now - Shutdown the system now and reboot.reboot - Stop all processes and
then reboot - as above.startx - Start the X system.Accessing & mounting file systems
mount -t iso9660 /dev/cdrom /mnt/cdrom - Mount the device cdrom and call it cdrom under
the /mnt directory.mount -t msdos /dev/hdd /mnt/ddrive - Mount hard disk "d" as a msdos
file system and call it ddrive under the /mnt directory.mount -t vfat /dev/hda1 /mnt/cdrive -
Mount hard disk "a" as a VFAT file system and call it cdrive under the /mnt directory.umount
/mnt/cdrom - Unmount the cdromFinding files and text within filesfind /
-name fname - Starting with the root directory, look for the file called fname.find / -name
"*fname*" - Starting with the root directory, look for the file containing the string fnamelocate
missingfilename - Find a file called missingfilename using the locate command - this
assumes you have already used the command updatedb (see next).updatedb - Create or
update the database of files on all file systems attached to the linux root directory.which
missingfilename - Show the subdirectory containing the executable file called
missingfilename.grep textstringtofind - Starting with the directory called dir, /dir look for and
list all files containing textstringtofind.Moving, copying, deleting & viewing filesls -l - List
files in current directory using long format.ls -F - List files in current directory and indicate
the file type.ls -laC - List all files in current directory in long format and display in columns.
rm name - Remove a file or directory called name.rm -rf name - Kill off an entire directory
and all that includes files and subdirectories.cp filename /home/dirname - Copy the file
called filename to the /home/dirname directory.mv filename /home/dirname - Move the
file called filename to the /home/dirname directory.cat filetoview - Display the file called
filetoview.man -k keyword - Display man pages containing keyword.more filetoview -
Display the file called filetoview one page at a time, proceed to next page using the
spacebar.head filetoview - Display the first 10 lines of the file called filetoview.head -20
filetoview - Display the first 20 lines of the file called filetoview.tail filetoview - Display the
last 10 lines of the file called filetoview.tail -20 filetoview - Display the last 20 lines of the file
called filetoview.Installing software for Linuxrpm -ihv name.rpm - Install the rpm package
called name.rpm -Uhv name.rpm - Upgrade the rpm package called name.rpm -e package -
Delete the rpm package called package.rpm -l package - List the files in the package called
package.rpm -ql package - List the files and state the installed version of the package called
package.rpm -i --force package - Reinstall the rpm package called package having deleted
parts of it (not deleting using rpm -e).tar -zxvf archive.tar.gz or tar -zxvf archive.tgz -
Decompress the files contained in the zipped and tarred archive called archive./configure -
Execute the script preparing the installed files for compiling.User Administrationadduser
accountname - Create a new user call accountname.passwd accountname - Give
accountname a new password.su - Log in as superuser from current login.exit - Stop being
superuser and revert to normal user.
Linux Features

· multitasking: several programs running at the same time.
· multiuser: several users on the same machine at the same time (and no two−user licenses!).
· multiplatform: runs on many different CPUs, not just Intel.
· multiprocessor: SMP support is available on the Intel and SPARC platforms (with work currently in
progress on other platforms), and Linux is used in several loosely−coupled MP applications,
including Beowulf systems the Fujitsu AP1000+ SPARC−based supercomputer.
· multithreading: has native kernel support for multiple independent threads of control within a single
process memory space.
· runs in protected mode on the 386.
· has memory protection between processes, so that one program can't bring the whole system down.
· demand loads executables: Linux only reads from disk those parts of a program that are actually used.
· shared copy−on−write pages among executables. This means that multiple process can use the same
memory to run in. When one tries to write to that memory, that page (4KB piece of memory) is
copied somewhere else. Copy−on−write has two benefits: increasing speed and decreasing memory
use.
· virtual memory using paging (not swapping whole processes) to disk: to a separate partition or a file
in the filesystem, or both, with the possibility of adding more swapping areas during runtime (yes,
they're still called swapping areas). A total of 16 of these 128 MB (2GB in recent kernels) swapping
areas can be used at the same time, for a theoretical total of 2 GB of useable swap space. It is simple
to increase this if necessary, by changing a few lines of source code.
· a unified memory pool for user programs and disk cache, so that all free memory can be used for
caching, and the cache can be reduced when running large programs.
· dynamically linked shared libraries (DLL's), and static libraries too, of course.
· does core dumps for post−mortem analysis, allowing the use of a debugger on a program not only
while it is running but also after it has crashed.
· mostly compatible with POSIX, System V, and BSD at the source level.
· through an iBCS2−compliant emulation module, mostly compatible with SCO, SVR3, and SVR4 at
the binary level.
· all source code is available, including the whole kernel and all drivers, the development tools and all
user programs; also, all of it is freely distributable. Plenty of commercial programs are being provided for Linux without source, but everything that has been free, including the entire base
operating system, is still free.
· POSIX job control.
· pseudoterminals (pty's).
· 387−emulation in the kernel so that programs don't need to do their own math emulation. Every
computer running Linux appears to have a math coprocessor. Of course, if your computer already
contains an FPU, it will be used instead of the emulation, and you can even compile your own kernel
with math emulation removed, for a small memory gain.
· support for many national or customized keyboards, and it is fairly easy to add new ones dynamically.
· multiple virtual consoles: several independent login sessions through the console, you switch by
pressing a hot−key combination (not dependent on video hardware). These are dynamically
allocated; you can use up to 64.
· Supports several common filesystems, including minix, Xenix, and all the common system V
filesystems, and has an advanced filesystem of its own, which offers filesystems of up to 4 TB, and
names up to 255 characters long.
· transparent access to MS−DOS partitions (or OS/2 FAT partitions) via a special filesystem: you don't
need any special commands to use the MS−DOS partition, it looks just like a normal Unix filesystem
(except for funny restrictions on filenames, permissions, and so on). MS−DOS 6 compressed
partitions do not work at this time without a patch (dmsdosfs). VFAT (WNT, Windows 95) support
and FAT−32 is available in Linux 2.0
· special filesystem called UMSDOS which allows Linux to be installed on a DOS filesystem.
· read−only HPFS−2 support for OS/2 2.1
· HFS (Macintosh) file system support is available separately as a module.
· CD−ROM filesystem which reads all standard formats of CD−ROMs.
· TCP/IP networking, including ftp, telnet, NFS, etc.
· Appletalk server
· Netware client and server
· Lan Manager/Windows Native (SMB) client and server
· Many networking protocols: the base protocols available in the latest development kernels include
TCP, IPv4, IPv6, AX.25, X.25, IPX, DDP (Appletalk), Netrom, and others. Stable network protocols
included in the stable kernels currently include TCP, IPv4, IPX, DDP, and AX.25.
Introduction to Linux

Linux is a completely free reimplementation of the POSIX specification, with SYSV and BSD extensions
(which means it looks like Unix, but does not come from the same source code base), which is available in
both source code and binary form. Its copyright is owned by Linus Torvalds and
other contributors, and is freely redistributable under the terms of the GNU General Public License (GPL). A
copy of the GPL is included with the Linux source; you can also get a copy from
ftp://prep.ai.mit.edu/pub/gnu/COPYING
Linux, per se, is only the kernel of the operating system, the part that controls hardware, manages files,
separates processes, and so forth. There are several combinations of Linux with sets of utilities and
applications to form a complete operating system. Each of these combinations is called a distribution of
Linux. The word Linux, though it in its strictest form refers specifically to the kernel, is also widely and
correctly to refer to an entire operating system built around the Linux kernel. For a list and brief discription of
various distributions, see http://sunsite.unc.edu/LDP/HOWTO/Distribution−HOWTO.htmlNone of these
distributions is ``the official Linux''.
Linux is not public domain, nor is it `shareware'. It is `free' software, commonly called freeware or Open
Source Software[tm] (see http://www.opensource.org), and you may give away or sell copies, but you must
include the source code or make it available in the same way as any binaries you give or sell. If you distribute
any modifications, you are legally bound to distribute the source for those modifications. See the GNU
General Public License for details.
Linux is still free as of version 2.0, and will continue to be free. Because of the nature of the GPL to which
Linux is subject, it would be illegal for it to be made not free. Note carefully: the `free' part involves access to
the source code rather than money; it is perfectly legal to charge money for distributing Linux, so long as you
also distribute the source code. This is a generalization; if you want the fine points, read the GPL.
Linux runs on 386/486/Pentium machines with ISA, EISA, PCI and VLB busses. MCA (IBM's proprietary
bus) is not well−supported in 2.0.x and earlier versions, but support has been added to the current them.
In contrast, the closed and centralized model means that there is only one person or team working on the
project, and they only release software that they think is working well. Often this leads to long intervals
between releases, long waiting for bug fixes, and slower development. The latest release of such software to
the public is sometimes of higher quality, but the development speed is generally much slower.