Welcome to the QA Tech-Tips blog!

Some see things as they are, and ask "Why?"   I dream things that never were, and ask "Why Not".  
Robert F. Kennedy

“Impossible” is only found in the dictionary of a fool.  
Old Chinese Proverb

Saturday, March 19, 2011

Linux vs Windows?
Which to use and when


Over the years, I have messed with a wide variety of both Linux and Unix type systems.  I have also used virtually every Microsoft operating system - ranging from the venerable DOS and it's kin, through the germinal "Windows" versions, all the way to Windows 7, Server 2008, et. al.

The Linux vs Windows debate is, (IMHO), one of those pointless "religious wars" that have no real resolution.

Like the "Ford vs Chevy" or the "Mac vs Everybody Else" kind of debate - it's tantamount to arguing which is better, Vanilla or Chocolate.  There are legions of advocates and supporters on both sides, each convinced of the Ultimate Rightness of their respective opinion.

So?  Here goes. . . .

Which do *I* think is better?  Wanna be perfectly honest?  Neither one.

There are things that can be done in Linux with trivial ease that are virtually impossible to do in Windows; and vice-versa, you can do things in Windows that would tie Linux into knots.

Oh, yea - I can hear it now:  Microsoft wears a black helmet and has amplified breathing, whereas Linux and the whole Free Software Movement is allied with the Good Side of The Force.  And when I hear someone spouting that - I have just two words for them:

Grow up!

With all due respect to Mr. Stallman and the Free Software Foundation, I personally believe that pedantic, polarized religious thinking is counterproductive.  Neither Windows nor Linux is going away in the reasonably foreseeable future and the continuing back-biting, blame-throwing and finger-pointing isn't doing anyone any good.  Except for those periodicals, web-sites, advertisers and other Yellow Journalists that have always profited from roiling up strife and discord.

Comparing Linux to Windows is like comparing a pumped up hot-rod to a Buick.  The hot-rod is a much more powerful and fun machine to drive, but that power and fun is purchased at the cost of greater administrative responsibility.  You have to do more "tinkering" with high-powered cars than you do with the Buick.  You also have to really pay attention when you are driving one; much more so than with the Buick.

By comparison the Buick is more comfortable and easy to use, but it sacrifices power and flexibility to achieve that ease of use.  This is not to say that a stroked-and-bored Street Beast is inherently better, or worse, than the Buick.  It's a matter of personal desire, taste, and need.

Aside from the fact that the Windows user interface is inarguably the most well known UI in the world - aside from the UI for automobiles -  (Sorry, Mac!), I believe that each system does things that - ultimately - complement the other.  To express it differently:  both Windows and Linux can, and should, coexist peacefully.



The one place where Windows absolutely excels is in large enterprise deployments, where global policies and granular permissions need to be propagated throughout the infrastructure in a seamless and efficient manner.  Within Windows it is possible to grant administrative authority for a very limited range of actions in a very specific and granular way.  Allowing specific users to administer a very limited and specific set of printers in their department is one example.  The ability to limit who can send faxes via the corporate fax-server is another.

By comparison, Linux is more of an all-or-nothing situation.  "Sudo" grants virtually unrestrained root access. Though you can create specific user-groups that have specific authorities, the grant of authority - even in a specific situation such as administering printers - is often uncontrollably wide and vast - or is unreasonably specific and limited.

Windows allows you to tailor authority over a certain very specific group of resources, the printers in a local department for example, without granting a broad and sweeping authority over printers in general.

Windows also supports the concept of group policies in general, and global group policies in particular.  With these policies, you can grant a very specific authority in a more generalized way.  For example, you can grant to QA or development departments - wherever they are in the organization, even if in remote locations - the authority to change the computer's system time, while forbidding everyone else.

Likewise you could set a policy that establishes a global standard workday - 08:00 to 17:00 local time with an hour's lunch from 12:00 to 13:00 - except in Dubai where there are also four or five ten-minute intervals blocked out for the required Islamic prayer-periods.

Permissions and policies - though set for regional needs or preferences - can be made portable.  This way the executive from Dubai who is in Chicago can have his machine automatically adjust for local time - while still maintaining the prayer-period time blocks he needs.

Windows allows a machine to be added to a particular group or class of users - a new employee hire, for example - and once that user is placed in a particular department or group, the appropriate enterprise permissions and restrictions are automagically applied to his system without further intervention.

Policies can be designed to apply to a particular class of computers regardless of where they might be at a particular point in time or who is using them.  Likewise permissions or restrictions can be applied on a user-by-user basis, regardless of what machine this particular person might be using.

Additionally, local groups or departments can be delegated specific authority to administer their own policies.  Stock traders or investment brokers within an organization may be subject to legal or administrative restrictions that would not normally apply to the average user.  Or vice-versa.

With Linux, you would have to manually propagate the policy from machine to machine, group to group, user to user and hope you didn't exclude someone who needs it, or include someone who doesn't.  Of course, you could automate that task with shell scripts, but with 'nix, every time a machine is added, removed, or changes assignment within the enterprise, the configuration process has to be done all over again.

In a nutshell, when it comes to the ability to granularise permissions and authority, Windows beats 'nix hands-down.



On the other hand Linux systems are remarkable for their flexibility and their ability to adapt to varied and varying roles with little or no cost.  Though Linux systems are making inroads into the desktop user-space, the place where Unix in general, (and Linux in particular), excels is in server-based applications.

Virtually any old piece of hardware you may have laying around can be adapted to a wide range of useful purposes using Linux.  I have built multi-terabyte file servers using systems that had reached the pinnacle of their capabilities with Windows '98.

And I am not talking about some crufty version of Linux back from the time of Wooden Ships and Iron Men; I am talking about modern distributions, fully updated with all the latest security patches.  Of course, they might be running a text console instead of a full-fledged GUI, but it can still be done.  By adding Samba, a minimal installation of Apache as well as SWAT, you can have a fully functional file server with a manifestly capable administrative web interface.

You can, (and I have), taken ancient laptops that have long outlived their usefulness in the Windows world and adapted them for use as Linux boxes.

A excellent example would be to take an old - but quite capable - laptop, install Linux on it and use it as a portable network test-set.  Tools like Wireshark, Netmon and a whole host of others that are free for the asking, allow you to take an ancient laptop and convert it into the equivalent of a multi-thousand-dollar portable network analysis tool.  And the cost of this is virtually de minimus; all it requires is a tiny bit of research and a few moments of your time.

Unlike the multi-thousand-dollar network analysis tool - your tool is adaptable and upgradable as your network or needs change - without investing additional  thousands of dollars into upgrades of dubious merit.

In a similar vein, Vyatta provides an Open Source enterprise firewall/router/vpn/etc. system that is easily the equivalent of the best that Cisco has to offer.  Even on older hardware it Eats Cisco's Lunch and if you invest in a multi-core Beast System, Cisco is not even in the same solar-system.  (Though there is the risk of that Cisco box coming back in the distant future, surrounded by a huge electro-magnetic field, looking for it's master. . .)

Another place where Linux excels is in the granularity of the installation.  In pretty much the same way that Windows excels in granularity of permissions, Linux allows you to install, or create, an installation environment tailored to exactly and precisely what you need.  With Windows any installation is, (virtually), an all-or-nothing situation.  Not only do you get the entire circus, you get the elephants thrown into the bargain.

Linux by comparison allows you to install, add, remove and otherwise tailor an installation to a specific need.  With regard to that multi-terabyte file-server, you can include 100% of precisely what you need with little to no extra fat.  This is one of the main reasons why Linux can be used so successfully on older systems; you can make that ancient laptop into a lean, mean, network munching machine; without the fat, cruft, bloat, and gobbledygook that other operating systems drag in their wake.

Just as important as Linux's inherent flexibility, is the extensibility of Linux.  If there is an application or use for Linux that you desperately need, it's a virtual lead-pipe-cinch that someone has already created it for you.  In the unlikely event that what you need doesn't exist, there are tools - again free for the asking - that allow you to create what you need for yourself.  These tools range from the simplest of shell-scripts to the most extensive development and version-control systems imaginable.

By comparison, the cost of development systems for Windows is often a significant portion of the total software development cost.

Should you need help, it's there waiting for you on the Internet.  Unlike the Windows assistance and training that is available, (for the mere pittance of multi-thousands of dollars, per person), most Linux help is available for the asking.  There are a multitude of fora, groups, blogs, local meetings, events, shows, and other things that - if not absolutely free - are available for a fraction of the cost of the corresponding Microsoft/Windows offerings.  Even those companies that provide payware solutions often provide free webinars, podcasts or RSS feeds to help keep you abreast of the latest developments.



What about interoperability?

Windows' ability to play nice with others in the sandbox - though limited - is slowly improving.  Microsoft, having come to the startling realization that - maybe, just maybe - they aren't the only fish in the pond, ( !! ), is beginning to make efforts to interoperate more effectively with other systems and platforms.

The biggest strides toward interoperability have been made - as one would expect - by the Linux and Open Source / Free Software community.

A shining example of this is the Samba software suite that allows Linux based systems to fully participate in Windows networks.  This is not restricted to just file services - though it does this remarkably well - it also includes participation as Active Directory capable member servers, domain controllers, enterprise level role masters and global enterprise repositories.  Implementing DNS, WINS, mail services, including "Exchange" capable mail services, is also doable within Linux.

In fact, because Microsoft server licensing is - shall we say - somewhat expensive, even larger enterprises with deeper pockets tend to place Windows servers in key locations within the architecture and fill in the rest with Linux machines participating in the Windows enterprise network.  Smaller organizations sometimes completely forgo the Windows servers altogether, using Linux equivalents to administer their Windows desktop machines.



In Summary:
Each platform has both strengths and weaknesses.  Each platform is like a specific tool - designed and useful for certain specific uses.  Which you use, and how you use it, is entirely up to you.

Tossing out Windows - as some advocate - simply because it's Windows is tantamount to throwing the baby out with the bathwater.  Likewise, avoiding Linux simply because it's NOT Windows is similarly narrow-minded.  You need to keep a varied and flexible set of tools in your tool-box to meet all your needs.

Both Windows and Linux deserve a place of honor in your tool-box, alongside all the rest of your tools.

What say ye?

Jim

1 comment:

  1. I have to laptops in my home, one with windows and the other with Linux, both runs good and yes of course it depends in what you need to do in order to chose which operating system one should use.

    ReplyDelete

Thanks for sharing your thoughts here at the QA Tech-Tips Blog!

Note:
This blog will not, repeat NOT, publish comments that contain ANY KIND OF HYPERLINK.

If your comment contains ANY KIND OF HYPERLINK it WILL BE DELETED.

Please read the article at How To Get Comments Approved On This Blog for additional information regarding this rule.

Thank you for understanding.

Jim (JR)