Desktop FreeBSD Part 4: Printing
uninet writes "As a writer, the only reason Ed Hurst ever got his first computer was because it was far more efficient than a typewriter, and certainly more readable than his own handwriting. To enjoy that efficiency, however, you need a working printer, and Ed explores accomplishing just that with FreeBSD in this piece."
Having just installed FreeBSD, I too had to configure my printer, yet this article made it seem overly complicated. Of course, I used KDE and CUPS to set up my USB HP-5150, but when I set the same up on Gentoo by hand, it was not that difficult. This makes using *nix systems seem harder for the desktop than it is.
life is much simpler if you login as root and run your desktop by typing startx at the command line
Uh huh, run X as root. *PLONK*
Good News Everyone!
Turns out that *BSD is stronger than ever!
According to an Inernetnews article, Netcraft has confirmed that *BSD has "dramatically increased its market penetration over the last year."
There has been a steady increase in *BSD developers over the past decade.
There are currently 307 FreeBSD developers as of the 2004 core team election.
You can read more about FreeBSD here
If you would like to try out a BSD, you can download: FreeBSD, OpenBSD, NetBSD, or DragonflyBSD
Enjoy!
There is no reason for printer setup to be complicated -- use of lpd with a couple of scripts and a ghostscript filter (for non PS capable inkjets) could easily be provided (perhaps commented out) in the printcaps for all the BSDs and as an option in Linux distros. This is all 95% of users really need or want, yet somehow this simple solution isn't provided as an option. Instead users end up searching for an unnecessary addon they hope will make printer setup easier than the lpd route (which at present often involves silly googling and guessing to find the info) but generally speaking does not make things especially simple at all.
Another pet peeve: You would think you should be able to have lpd listen only on the interfaces you specify (defaulting to only to loopback for example). Yet even OpenBSD (to the best of my knowledge) does not provide this simple security enhancement.
No big deal for most, unless one wants top performance 3D. One difference, though, is that OpenBSD has made many security enhancements to X, like privilege separation, removing suid-bit from xterm and xconsole, compiling X with ProPolice (to lessen danger of buffer overflow exploits).
Yes, "BSD" has a pre-emptive kernel. BSD/OS has a pre-emptive kernel. BSDi was bought by Walnut Creek and they are providing a snapshot of their code to the FreeBSD team who is using some of the BSDi team's work to make their own kernel pre-emptive, as well. Please see "Revamping the BSD multiprocessor code" at http://www.daemonnews.org/200008/dadvocate.html
9 +0+archive/2000/freebsd-arch/20000528.freebsd-arch
:)
You can also see a good argument against it, dating back to 2000 from Matt Dillon:
"I would not characterize this as 'biting the bullet'. Having a preemptive kernel is unlikely to improve performance. The only reason there might be preemption at all is to deal wth interrupts. Interrupts currently preempt supervisor code. If interrupts are moved to interrupt threads then interrupt threads would need to be able to preempt supervisor code. In this fashion the supervisor thread would be preempted, but that is very different from having supervisor threads preempt other supervisor threads (something we probably will not do)."
See http://docs.freebsd.org/cgi/getmsg.cgi?fetch=6598
Actually, the whole discussion is very interesting and I have learned a lot this morning about SMP and preemption and so on from reading. Thanks for bringing this up.
I'd never paid attention to CUPS until Apple slid it under my Mac OS X installation. Once I took a look at it, I really came to appreciate it. Now I put it on all my UNIX boxes. I've even convinced my workplace to adopt it.
Once the software is installed, it's dead easy to set up, especially if you're using a recent PostScript-capable printer. Most recent printers support Internet Printing Protocol (IPP) directly on their network card. CUPS speaks IPP and PostScript natively. If you set up Service Location Protocol (SLP) support, you don't even have to configure the printer -- it configures itself. There's a reason Apple adopted this software!
Add the gimp-print driver package, and you can print to just about anything.
It's a far sight better than dealing with the various filters in BSD lpr, and immeasurably better than Solaris' print subsystem.
If minor update you do because of security reasons you may try to install freebsd-update from ports. It could fetch and install binary updates. No need to recompile anything.
No need for that even, unless you want to share with other batch processing jobs. BSD does quite a reasonable job of keeping interactive things going while batch jobs do their business.
I set off a recompile of samba on the wrong machine the other week, by typing at the wrong window, and didn't notice my desktop was 90-odd percent occupied with compilation until the bizzare throbbing red corpuscle gkrellm uses to indicate high load was uncovered when I moved a window.
Modern over-muscled CPUs, modern memory sizes and good disk access subsystems are wonderful things.
_O_
.|< The named which can be named is not the true named
CUPS beats out good old printcap thusly:
There's other features, too. Those are the ones I can think of, off the top of my head. It brings UNIX printing out of the teletype era and up to the level of Mac OS and Windows.