What is Linux?

Linux is an operating system for computers that was initiated by the Finnish student Linus Benedict Torvalds. He had begun to develop a Kernel for a new operating system in 1991. The Kernel is the essential part of each Unix based operating system. It is the heart of the system. The Kernel is responsible for:
• The table of processes.
• The memory management.
• The management of the multitasking- and multi-user capability.
• The management of the mass-storage systems.
• The hardware-drivers for printers, modems, etc.
However, Linux is far more than only the Kernel. Linux is a complete operating system that was developed over the years by many people. This is completed by applications like the XFree86™, the X Windows System for PC based computers, the word processing and layout application TEX or the StarOffice™, and (of course) games. The development of the Kernel is still coordinated by Linus Torvalds. He implements every change of the Kernel by himself. The special quality of Linux is the fact, that Linux basically is a free system. Therefore, many developers that were keen about the idea of free software, worked on Linux over the years for free.
Linux distributions are predominantly known for their use in servers, although they are installed on a wide variety of computer hardware, ranging from embedded devices and mobile phones to supercomputers,[3] and their popularity as a desktop/laptop operating system has been growing lately due to the rise of netbooks and the Ubuntu distribution of the operating system.
The name "Linux" comes from the Linux kernel, originally written in 1991 by Linus Torvalds. The rest of the system, including utilities and libraries, usually comes from the GNU operating system announced in 1983 by Richard Stallman. The GNU contribution is the basis for the alternative name GNU/Linux.
The development of UNIX began in 1969 by the MULTICS developer Ken Thompson. He tried to create an easy-to-use operating system for mainframe computers without the typical batch operation. In the times before UNIX, most of the operating systems were batch operating systems. This means that you had to “write” the application that you want to run on a computer onto a punched card or onto a batch of punched cards. The result was usually printed out. If there was an error, you had to replace or change one or more of the punched cards and start over again. This system was lengthy and expensive so people wanted a system were more people can work in dialogue with the computer. The first step in this direction was the operating system called “MULTICS”. However, MULTICS was hard to handle and still batch operated.
The first version of UNIX was written in the programming language Assembler. Assembler is a programming language that is close to the computer platform on which it is installed. To provide
independence of the computer platform, the UNIX was re-written in “C”. “C” is a programming language that was developed in 1971 by Dennis Ritchie. In 1974, UNIX was described for the first time. At this time, it had multi-user and multi-tasking capabilities. Every user had his own
“home directory” with his files; no user could access files of other users. That was elementary for a multi-user operating system. Multi- user operating systems were needed urgently because many people had to share one mainframe computer. Ken Thompson developed the UNIX system for his employer, the Bell Laboratories. Bell Laboratories is a 100% subsidiary company of AT&T. The Bell Laboratories gave the documentation for UNIX and the source code for nearly the cost price to universities. Besides, AT&T was doomed in an Antitrust-procedure in 1956 to give away licenses on all his patents. Therefore, many different UNIX systems came into being. These systems are all UNIX-systems but differ in details.

The Common UNIX Printing System ("CUPS") is a portable printing system for UNIX-Systems. It is developed by Easy Software Products. It is going to replace the old Line printer daemon ("LPD") and to become the new standard printing system on Linux/UNIX. CUPS is based on IPP (Internet Printing Protocol), an extension of the Hyper Text Transfer Protocol (HTTP), and gives you the opportunity of the full control over every printer in your network. IPP is designed to provide remote printing services and is very close to become the standard network printing system on all operating systems. Also, Windows 2000 is going to support IPP as network printing protocol.
Besides IPP, smb, socket, serial, parallel and USB (Universal Serial Bus), CUPS also supports the old LPD/LPR system, wherefore you can use the LPR/LPD command set to work with your printers, if you have to. CUPS is designed to be compatible with it but some tools like Berkeleys lpc can be used for system control only.  The CUPS software can be used either as server (in most cases) or as client, so there is no need to have different software for each purpose.
CUPS is designed to use PPD files (PostScript Printer Description) to make printers work with UNIX. The server generates its own driver for each printer from a given PPD file to make it available in your network. No additional driver for your clients is needed. In most cases, PPD files designed for Windows NT will work fine without any changes. CUPS is provided under the GNU GPL (General Public License) and the CUPS API's (Application Programming Interface) are provided under the GNU LGPL, so it may be used in commercial applications.
You can use a variety of tools to administer printers in CUPS. Some are special to your distribution, some are free and some are commercial. We tested CUPS mostly on a PC running SuSE Linux.We cannot say much about the use of CUPS with any other Linux distribution like RedHat or Linux Mandrake, but it should be very similar on any other system.
Two ways on how to install a printer are shown in the following:
1. a GUI based installation (using the ESP web interface)
2. an installation with command line tools
GUI based installation example
AS mentioned before, the ESP web interface is included in any CUPS version. You can use it for printer administration and job management. To show this example, we used the web interface provided by CUPS. It is accessible via Port 631, the standard port for IPP and CUPS. It is no problem if you have CUPS and other servers on the same machine while using this port.
1. Just type the following URL:
http://localhost:631
if you are working locally on your server
http://[server-name]:631
This procedure will lead you to the starting page of the web
interface.  Choose "Manage Printers" here to get to the printer overview.This screen shows you all printers installed on your system and their current status. Printers marked green are ready to print, printers marked red with an open tray are stopped. In that case you have to check whether there is a problem 
2. In order to install a new one, choose "Add Printer" here.
3. Then you have to give a name to your new printer.
4. In this step you have to choose the type of connection that you are using for the printer you like to install. Possible settings you can choose are:
• Disk File
• App Socket /HP Jet Direct
• Internet printing protocol
• LPR/LPD Host or printer
• Parallel or serial ports
5. Now you have to put in a valid IP-address and a remote queue name for your printer.
6. Now choose your manufacturer. All the manufacturer names offered in this list and the model
names offered in the list in Step 7 are generated by CUPS while using the PPD files stored in 
/usr/share/cups/model/[name of manufacturer]
If your printer does not appear in this list, please make sure that there is a PPD file for it in this location. If it is not, get one and just copy it to this location.

7. Now you have to choose a printer. If your printer does not appear in the list you have to install a PPD file on your system. To install a PPD you have to copy it to
/usr/share/cups/model/[konicaminolta]
and restart your CUPS server with the commands
Linux: # /etc/init.d/cups restart
or
Linux: # rccups restart
The last one does not work on every system, but in SuSE Linux it does. You need to be logged in as root to do that (or use the “Speruser” command SU).
Now your printer is installed and ready to be configured.