Printing under Linux has historically been a problem because of, well, the history of Linux. Since Linux is based on Unix, which has a history stretching back to the middle-ages (1960’s), the printing arrangements which most systems come with are geared, or at least have elements from, the Unix printing needs of that time.
These needs can be summed up as: Either very high or very low-quality printing for large organisations. In the days before laser printing became cheap many systems had “draft” printers and “final” printers which varied in quality and cost.
Today many homes and small offices have Unix/Linux systems attached to a single inkjet which is operated in several modes, and sometimes also to a black and white laser printer.
Two problems arise with this setup and current Linux printing methods. One is the basic issue of getting good drivers for inkjet printers, which is now largely solved, and the other is the fact that Linux’s traditional print services do not understand the idea of multiple virtual printers on the same physical printer (i.e., a single inkjet which can print in various radically different modes).
Many, many, many solutions have been proposed for fixing Linux printing but most have concentrated on large organisations and their security and bulk issues. I run a very small IT Department with two printers and four machines behind a firewall. I am thus more interested in utility than security so implementing eight RFC’s is right out!
Other issues with current systems include the inability to handle TrueType fonts (CUPS, for example, was originally based on a buggy version of Ghostscript and died when ComicSans or Verdana is used in a job. Even today CUPs is based on a very old version of Ghostscript), and the difficulty of users manipulating the settings of the printer from within programs which have no understanding of the print control system being used.
Ironically, this last point is the key to getting a decent system running: by using the ignorance of StarOffice, Dvips, Mozilla, or Opera it is possible to construct a print daemon which actually allows the normal user to access all their printers’ settings without any special permissions or resorting to GUI tools which fail when accessing the print server over telnet or which require root permissions to set the paper size.
What is Linux? A brief introduction
Linux is an operating system based on the old Unix operating system first developed in the 1960s. Unix has a rather strange start as a single-user operating system which then grew into the most commonly used multi-user operating system in the world.
As a fully-functioning multi-user operating system, Unix allowed many programs to run on a single computer within a secure environment where each program and user is safe from interference from other programs and users. In this way, the resources of a large, expensive computer could be shared.
In the early days of computing, when most programs ran on mainframes, this was a big advantage. As time passed and people got smaller, less able computers which they could use at home or on their desk and on which they were the sole users, this became less important.
But as computer hardware became more and more powerful, even the small ones on people’s desks or in their homes came to have more computing power than a single person could ever hope to use. So it once more became useful to be able to share computers. The operating system in use at that time was called “Microsoft Windows” and it was installed on most new machines automatically as a result of the manufacturer’s blackmail and extortion activities which forced computer makers to charge customers for Windows regardless of whether the customer wanted the product or not.
Since Windows was a very poorly written operating system, with no ability to share users and no method of securing the computer it ran on from malicious use, it was apparent that a better solution was needed and many thought of using Unix; which was still in very widespread use in the industry-academia.
Unfortunately, Unix was a product of Bell Labs and as such was a closed, expensive, system far beyond the reach of normal people.
Without getting into the whole history of Unix, the use of Unix in various Universities around America had led to pressure for a “free” version which had eventually come to pass, further expanding the use of the system around the world. But there were still issues connected with using this code in for-profit situations.
Then, one day in 1991 a student in Finland called Linus Torvalds posted a message on the newsgroup comp.os.minix asking for help in a project to re-write Minix, a Unix clone he was using at the time.
The project became Linux and developed into a totally re-written, new version of Unix. This became a platform for multi-user computing which has been adopted around the world and is now the single most popular and widely such system in the world.
The majority of all World Wide Web sites are run on Apache web servers of which the vast majority are running on Linux machines.