Linux Box Admin
Trusted Remote Administration
logo

Tilde
What's new
Articles
Micro HowTos
About
Contact



Fresh Micros




Must-Have Java Desktop Apps
(0 votes)
Monday, 30 January 2006
  The Macintosh through Linux eyes
exclusive content published on March 14, 2006

Linux is my full time job. I write LAMP applications and act as sysadmin for a group of Linux servers. I've been using Linux for almost 10 years, and it has been my primary desktop for more than four years. So why am I writing about a Macintosh? Because during a recent exercise in curiosity, I discovered a few unexpected things -- about the Mac and about how I use my desktop.

In twenty odd years of working with computers, I never owned an Apple computer. Frankly, until OSX, I was never interested. But the BSD underpinnings of OSX got my attention. The Mac finally got a "real" operating system. It was interesting enough that several years after it debuted, I purchased my first Apple computer on eBay, a Mac Mini, to dig a little deeper into the OS. Not only did Apple do something right with OSX, but it was smart marketing to introduce a cheap Mac that worked with PC hardware. It is squarely aimed at Windows switchers and the mildly curious like myself. I would never have considered springing for a full-blown iMac or iBook as a learning exercise, but a used Mini fit the budget.

Everything works if you let it

The first thing that struck me was that all the hardware worked (with one minor exception). Since Apple controls the hardware and operating system, this was hardly a surprise. As a Linux user, I am used to spending time to get all my desktop hardware to work. The Mac seemed to work better with my PC hardware than Windows; without endless, conflicting drivers and reboots. I exercised every component on the Mini and the only trouble I ran into was with the wireless AirPort. The built-in 802.11g could connect to my 802.11b Linksys base station (WEP enabled), and would work for up to 30 minutes before suddenly going dark. I applied all the software patches, including one specifically for making AirPorts more interoperable but the problem remains. Fortunately, I had planned to use a wired connection anyway. Apart from the AirPort, everything else worked perfectly including Bluetooth, Firewire, USB, printer, etc.

The second thing that struck me was that every Apple software application worked as advertised. OSX ships with 50 or so applications that not only work, but are extensively documented. The help system was quite useful. Most Linux distributions ship with 1000+ applications, many with overlapping features, about half of which work as advertised, and about quarter of which are adequately documented.

Finally, the hardware was elegant. The Mini is about the size of a paperback book but is crammed with technology. I've always been more concerned with function than fashion, but if you can get both, so much the better.

I want to digress momentarily to talk about printing, because I think it is the biggest wart on desktop Linux today. This was highlighted when I plugged my Lexmark laser printer into the Mac and it automatically installed and configured itself and worked immediately in all applications. The Linux situation really needs to be fixed, and CUPS alone is not doing it. Neither are the KDE and Gnome front ends that only add another layer to troubleshoot. In two distros I've installed in the last six months, I could not get the printer to work. It was detected and configured, but would not produce output. This is a basic Postscript laser printer that worked fine in older distros. In these recent ones, jobs would sit in the queue until I killed them. There really needs to be a unified system level printer interface, maybe kernel level, so all applications can use printers the same way. I'd like to see an end to /etc/printcap, even for backward compatibility. Then, there is the whole issue of Postscript to PCL filters, not a Linux developer issue, but still a headache. If you want the best chance at hassle free printing in Linux, my advice is to stick w$ Postscript printers and 2.4 kernels. Now, to get back on track.

Real Unixy goodness

The Mac GUI is a clean, well lighted place, and little things like the Dashboard and Expose have a certain wow factor. But I really miss having six X11 desktops. Maybe the X11 included with OSX will allow me to use multiple X desktops, but I haven't explored that yet.

What matters most (to me) is the shell environment and the excellent selection of tools that are pre-installed. After firing up Terminal.app, the default terminal emulator, I was a surprised to find Bash as the default shell instead of a BSDish Csh or Tcsh. I was also surprised to find SSH and my favorite text editor, nano, ready to go. Once I customized the startup scripts (I had to modify /etc/bashrc to tell it to source $HOME/.bashrc), I felt right at home.

What matters second most is a great browser. While Safari seemed workable, I prefer Firefox. That was the first application I installed. I added Gimp, GPG, a few others, and I was done. There was a small learning curve to understand how Mac apps are installed from Disk Image (.dmg) files. My mind still insists on calling them "Damage" files. In most cases, you mount the .dmg file by double clicking it, then drag the application icon to the Applications folder in the Finder. Some had actual installers that walked you through the install. Both were easy to learn.

Secure default settings

The default OSX configuration has all network services turned off. I had to enable SSH and Apache in System Preferences. Even the root account is disabled by default. I had to enable it to change /etc/bashrc. This is a much more secure default state than Windows, and probably more secure than most default Linux installs. Of course, it's relatively easy to lock down Linux after a base install.

The eighty twenty rule

The speed that I was able to become productive on OSX caused me to reflect a little about operating systems and my daily work. I realized that eighty percent of my computing life is spent in two applications: a web browser and a shell.

This minor epiphany made it clear that my desktop OS was not as essential as I thought. I could easily hop among Linux, Mac, BSD, or Windows without major problems. Well, I can't get by with the native Windows shell, but I can SSH into a box that provides a real shell.

I code, write, and do administration from the shell. I need a web browser for testing LAMP applications, searching the web, and reading news. For cross-browser compatibility testing, I do use multiple web browsers. Still, my core applications remain limited to two. I used to read email from a shell (using mutt), but last year moved to Gmail. Moving functions between the shell and web browser doesn't disturb my dual app worldview.

You could argue that what I lump into the shell is actually hundreds of small programs that make up the GNU or BSD userland. Things like sort, awk, and grep. You could also argue that SSH and nano should count as separate applications. However, these are things I take for granted when I think of a useful shell environment and are common across Unix-like operating systems. They come with the territory. The ease and speed of setting up my shell environment on OSX reinforces that view.

Linux still serves

While Linux doesn't get a lot of desktop love from hardware vendors, it is a first class citizen when it comes to servers. Linux does infrastructure right at a very low price point. Hardware vendors recognize this and actually create drivers for their RAID adapters and other hardware. Linux is also the primary target for a lot of server software, including the LAMP stack, languages, mail servers, security software, databases and more. I still earn my paycheck with Linux. I will probably return to Linux on the desktop at some point, maybe with Yellow Dog on the G4 Mini. On the other hand, maybe it doesn't really matter.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 2.5 License.
 

Copyright © 2006,2007 Linux Box Admin.

 
My NHL fan blog