Ziggy Admin and the OS from Mars
Editor's Note: This is the first installment in a periodic series ENP regular Deann Corum will be writing on about her experiences moving from a Windows-centric environment to a new job with an emphasis on Linux.
This crusty old curmudgeon started futzing with computers in the 1980s, way back in the days of 5.25" floppies, DOS and DOS batch files. When I started messing with personal computers, it was because someone walked up and took away the typewriter I used as a secretary and replaced it with a Radio Shack TRS-80 (aka 'Trash-80') Model III. It had two 5.25" floppy drives. It was the latest technology and no one in the office knew how to use the thing including me. So, I set about learning what made the thing tick, learning first to install and use the software that was necessary to do my typing and other work, then how the operating system (TRSDOS) and floppy drives worked. I was eventually the only one in the office who had a clue how to operate the machine and I trained others. Being the opportunist I am, I put this experience on my resumé. The next job involved even more computer work, including an old DEC PDP 11 and the humongous disk packs it used. They held 67-256MB of data, I believe, which was a lot at the time. We also had a few IBM Personal Computers in the office - again with some DOS-based word processing programs and a couple of floppy drives. This experience also ended up on my resume.
Oh You Pretty Things - Came the GUI
Until the early 90s when Windows 3.0, Windows 3.1 and Windows NT 3.1 came out, that was how life was: floppies, various flavors of DOS and DOS batch files, cryptic diagnostic beeps and messages on a CRT screen was all we had to diagnose any problems that cropped up in the software, operating system or hardware. I had one more job as a 'secretary' before getting a job whose title better matched the type of work I was actually doing - and was most interested in doing. Windows NT 3.5 and Windows NT 3.51 came out in 1994 and 1995, respectively. But Windows was still very much just a colorful face slapped on top of DOS and did as much to thwart and obfuscate its usefulness as anything else. In addition to having to know what DOS, the dodgy "network" (i.e.: workgroup) protocols, and the applications and hardware were doing, we also had to know what the hairball we've not-so-lovingly come to know as Windows was doing in front of it all. I eventually got a job with a technical title at a printer manufacturer, then a medical software company. Somewhere around this time was the beginning of that huge 'Internet' era when TCP/IP would become so important to the world outside of academia and government. It's hard to imagine that even when Windows NT 4.0 came out in 1996, TCP/IP still wasn't even installed as a networking protocol by default. It had to be installed separately, and it was a pain in the keister. I won't say what I really thought of that omission or that installation routine. They won't let me publish that here. Since then, I've had a few more jobs doing Windows-based server, application, and network support. I managed to avoid Windows 98 and jump straight to Windows XP, Windows 2000 and Windows 2003 which finally have TCP/IP built in, but the network fist-fights with workgroup-based NETBIOS and WINS servers still exist if you're unfortunate enough to have Windows NT 4.0 and Windows 9x clients around.
Out of geeky curiosity and due to ongoing animosity between Windows and Unix camps in some of the high-tech companies I'd worked at (Who'da thunk it?), I got my hands on a Linux distribution about ten years ago and decided to install it on one of my three or so systems at home. This was Slackware and it was about as much fun as installing TCP/IP on a Windows NT 4.0 system. I continued playing with various distributions and around 1996, I got the opportunity to learn a little bit of Solaris, futzed around with NIS, rlogin, jump-start, Unix-based print servers and a few other things that were Unix-related. But I got rebellious and set up a sorely needed Windows-based print and DHCP server that serviced some of the Unix clients in our department. Those experiences were enough to keep me interested and curious about Unix. I've installed a various flavors of Linux more times than I care to admit and Solaris a few times as well. Red Hat and Solaris have since made their installations fairly painless. I have a hosting server that now runs Debian and used to run FC2. I had installed and configured the operating system, services, and applications myself for a few years, but eventually moved to a managed service to save myself the trouble.
The Pretty Things Are Going to Hell
In Charlie Schluting's recent piece on Windows vs Linux/Unix server operating systems, he asks: "For beginners, Windows makes it possible. Should beginners really run your servers though?"
Because Window makes it possible, the answer to that question can be a resounding 'yes' for very small shops or family-run business without the funds for a highly experienced system administrator where one person must serve multiple functions, a system administrator being only one of them.
However, that capability also suggests that anyone who uses or supports Windows as a server or desktop operating system must be a beginner who doesn't understand the technology behind the GUI. But that's not the case with Windows any more than it is with Unix. Certainly there are some beginner-level Unix/Linux system administrators out there as well. I'll bet a few of them are even working in some of those small or family-owned businesses, particularly now that many Unix-based operating system installations have become much easier.
Most Windows system administrators I know are highly experienced and very much understand the technology behind the point-and-click interface. Many of them have been around as long as I have and they still must know the underlying technology in order to know where to look first when there's a problem. On top of that they have to determine how Microsoft, specifically, handles those technologies. Sometimes that's possible and others it isn't, leaving the administrator with having to devise ways to get the operating system to work with those technologies or vice-versa. However in the past three weeks in my new role, I've seen Unix system administrators have to do the same thing (they're called shell scripts) in order to customize an application to work as needed.
Because of the GUI, Windows servers can be more efficient because they're easier to configure. That doesn't mean they always are. There are often fewer separate services to configure due to the bundled and proprietary nature of the Windows OS. Setting up a new system, service, or application in Unix often involves at least several lines of cryptic commands at the prompt, then modification of one or a slew of .conf or other files, and/or custom-written shell or other types of scripts. With Unix, the necessity for this as well as the ability to do it, are both an obstacle to "newbies", and a boon to those with experience.
While Windows is an opaque operating system which causes untold frustration when what it does "behind the scenes" isn't evident much less pretty-- with Unix everything save the network interfaces themselves, is pretty much a file. Windows system administrators can spend as much or more time picking through that hairball trying to find out what Windows is doing "back there" when there are problems, as they save with the convenient point-and-click GUI when there aren't. I've been there. It was ugly.
You Got To Have A Job
For Windows and Unix system administrators, employers generally hire us because of the experience we have with that operating system and the underlying technology, rather than our lack of it. While a GUI makes Windows easier for someone who's inexperienced, that doesn't automatically mean that anyone who uses it IS inexperienced. Conversely, anyone who uses or supports Unix isn't necessarily an experienced guru, though I've seen people almost come to blows over this never-ending debate.
I've never thought Windows is somehow "better" than Unix or vice-versa. When an organization chooses to use one instead of or in addition to the other can depend on application requirements, what type of legacy systems and users must be supported, the experience of those who will be tasked with administering the systems, security and performance, and the preference to support open source operating systems and applications. I have often gotten better support with open source software (it's called Google) than I've gotten with Microsoft. I had to pay for Microsoft's support and sometimes never found out exactly what the problem really was. I find that bothersome, to say the least.
Personally, I'm looking forward to life sans GUI for a few more reasons: the fact that Unix-based operating systems don't evolve as quickly (save Fedora Core) as Windows-based OS's do, so I'll have time to become much more knowledgeable about the services involved and be able to use them longer before they're totally obsolete; the fact that while Unix involves more time at a command prompt, it's bound to be simpler than trying to poke through a proprietary GUI to find out what's going on when there's a problem; the fact that if I were to become certified on Linux or Unix, my certification is less likely to become obsolete so quickly; and finally not least, the opportunity to support open source applications and operating systems rather than proprietary ones.
We'll see if I still feel the same way in a few weeks when I write Part II...