windows vs linux

IF windows and linux (or IE and alternative) were to switch places in terms of market share, will they face the same problems as windows does in terms of viruses, spywares and such?

This is definitely an IMHO topic. I don’t think you can answer definitively either way.

The open source view is that their software is more stable and robust because it has been reviewed by more people. However, the fact that it is open to review doesn’t mean it has actually been reviewed. How many linux users have really dug into the kernel code? IME, Linux is much more stable than Windows, but most Linux boxes are not subject to the abuse that Windows boxes are (loads of random software installed, fat-finger reconfig by clueless users, etc.).

The open source view is that any bug or exploit in their software gets fixed much more quickly than proprietary code. IME, this is true. Microsoft sometimes takes months to fix a known bug and may decide to never fix them. If (and it’s a big if on both sides) you get public disclosure of the problems, fixes tend to come more quickly for open source software and tend to be applied more generally. However, this is a case where robustness can actually hurt open source installs; I know of servers (internal systems like fileservers, not public webservers) that are running very old unpatched versions of linux because they haven’t required so much as a reboot in years. On the other hand, many production Windows boxes have to be rebooted weekly or so to remain stable, which provides ample opportunity for patching.

In the end, I think it’s impossible to answer the OP either way. In theory, open source software is better because it is deeply reviewed. Whether it actually gets that level of review is an open question. In the case of linux, probably so. In the case of some other less popular open source app, probably not. Plenty of exploits do exist against open source software and the number might increase if the market share of those system rose and provided a more target-rich environment. Or not.

IMO, a lot of the vulnerability problems in Windows come from Microsofts attempts to allow a lot of access to the computer in general.

For instance, I teach in a high school computer lab. I have some tutoring software designed similarly to the system in a language lab, where, through the network, I can peek at my students’ desktops, and share or even take control of their computer if I think it will help them understand something. I use it to project a student’s code on to the screen to make a class exercise out of helping them find a bug.

I can also shut down or log onto the student’s computer remotely (the software features a “send ctrl-alt-del” File menu function that bypasses the network security screen in Windows).

I know there are plenty of other apps out there that allow bosses to spy on their employees’ use of the computers, and thus, the network resources.

Microsoft deliberately programmed Windows to allow this sort of across-the-network oversight.

Now, I don’t spend a lot of time programming OS’s, but it seems to me that in order to provide this sort of access to a workstation machine, you need to build in a hell of a lot of holes, and once a hole is there, all you need to get in is find a way to squeeze through.

I don’t use Linux, so I can’t say whether they are shooting for the same sort of functionality. If not, I would guess Linux is more secure.

A very interesting question indeed. Let me begin by saying I have no facts to back up my response, it is simply theory and opinion so I agree it should be switched to IMHO. I will be using Linux as a general term, since there are hundreds of flavors of Linux, so when I say Linux, I don’t mean any specific build. This generalization of course opens the way for umbrella statements and inaccuracies to crop up, so I will attempt to cut them down as necessary.

To begin…
In general, Windows is a program written by hundreds of hands aimed at a specific goal, each person is given their task and told what needs to be done and they are expected to have it done by a deadline. To fail to meet deadline or goals is putting their wellbeing at risk.

In general, A Linux Distribution is a program written by hundreds of hands aimed at creating a better product, each person (aside from core developers) aids in what they are good at or what they have a personal interest in with little worry of deadlines or wellbeing at risk.

Windows, at its root, was built on DOS and then the new Windows were essentially built on the old Windows platforms.

Linux, at its root, is a ‘relative’ of Unix - a corporately recognized keystone of computing.

Windows has its powerful position due to several strokes of luck, excellent marketing, as well as powerful corporate positioning and aggressive business practices (to say the least.)

Linux is homebrew. Done by people as a hobby, few make their living from it (though some of course do.) It has no marketing plan, with a few notable exceptions.

Any king of the hill is going to face challengers. Whether it be Linux or Windows, they will all find themselves at risk and under attack sooner or later. The question is how vulnderable would Linux prove to be in comparison to Windows.

Linux, aside from being a geek’s alternative for his home machine, has run as a backbone for Internet servers for a while now with many main shoots of the Linux world developing as corporately trusted names. Redhat, Fedora, Debian, etc. are all names which companies and webhosts are using. This means these root families of Linux are built with ever increasing stability and security as people work to perfect their hobby’s fruit.

The argument is of course that all code is open source which means anyone can look at it and find vulnderabilities, or at least that was the argument given by some Microsoft CEO (I don’t have a link handy, it’s just something I recall).

But I believe that is also a strength because it is no longer the limited pool of help which a corporate product has. Not just the employees can solve the problems, now Joe Nobody who knows a little C or perhaps Python, or whatever the language might be, and can help solve the problem.

So, I think that to answer your question best, I should sum it up by saying that if position is changed we would definitely see more attacks and problems arise in Linux, but we would also see faster responses and more effective responses.

I tend to ramble in these sort of questions and hope this helped you understand my feelings on it all.

Current versions of Windows grew out of Windows NT and as such are not in any way “built on DOS”, nor based on older OSes that happen to have the name Windows. Even Windows 95/98/ME only really needed DOS at boot time and in a few other circumstances.

If the market share were reversed, more malware and attacks would be targeted toward Linux. This is probably true. But Windows is more susceptible to attacks because of the culture.

Windows has privelege and role separation. In *nix, we have the concept of a root, or super, user. Average users, such as my login account, do not have the permissions to do much harm to anything but their home directories and files. The average user, or compromised processes running as the average user, can’t affect the operating system.

Windows has this, but most people do not leverage it. Most people have one account, or one account per user, but these accounts have all the priveleges necessary to do everything. The malware and exploits take advantage of the fact that the average user can install software, change system settings, etc… In Linux, this is the function of the root user.

Most Windows users use only the one account because it is easier. I don’t like Windows much, but I freely admit that they have made it as simple as possible for someone with no interest in learning computers to use one. In the *nix families, the learning curve is much steeper because of the, normally, enforced privelege separation that can get in the way of simplicity.

If the market share were reversed, Linux, the way it is normally configured now, would be less vulnerable to the increased number of exploits. If Linux was configured like Windows (with the average joe running as root) then it would be much more vulnerable. Probably as vulnerable as Windows. This isn’t all that far-fetched. Easy-to-use distributions like Lycoris do not focus on role separation. Many Lycoris users run as root. It’s a shameful practice, really.

Another note about the number of Linux distributions. There are versions of WIndows, but there is continuity from one version to the next. There are dozens and dozens of Linux distributions.

Attackers are able to make assumptions about Windows. Microsoft has standards that they, mostly, follow. Linux distributions pay lip-service to a standard but Red Hat/Fedora does things differently than Mandrake than Debian than Gentoo than Slackware. To write unobtrusive malware for Linux, attackers have to devote more time and resources to account for the differences in the major distributions. And then someone will release the flavor of the month distro and they have to start over. (Ubuntu Linux, anyone? How about Mepis?)

These differences also make it difficult to deeply integrate applications with the Operating System. Many attacks that succeed on Windows are because of the tight integration of browser, mail client and OS. And poor design decisions that place too much value on simplicity and not enough on security. There needs to be a better compromise between the two.

Simplicity, cost and security can be had. You really don’t have to sacrifice one in favor of the others.

interesting. i don’t have any comments at the moment, so i’ll stick to reading. do carry on the discussion.

(let this thread be moved to IMHO if a mod is willing, thanks. )

My personal computer is running Windows XP. I have a guest account for when someone else is using my computer, and I have an administrator account that I use myself. Are you saying that the smart thing to do is to make a guest account for myself as well, and only use the administrator account when I want to change my control panel settings and such?

The trouble with persuading people to use a non-priviledge account on 2000/XP seems to be an unintended offshoot from the whole ‘install wizard’ ethos that goes back to Windows 95. Installing software on Linux, unless it’s part of the distro, makes many of us willing-convertees reminisce about Windows 3.1 (or worse). Microsoft went down the pure simplicity route, which we now know was a mistake. However, to use a restricted account and then having to log in as a different user just to install or modify something is a real pain - there needs to be a happy medium with the separatedness of su-ing in Linux, but with much of the clarity(!) of Windows install processes.

GorillaMan, several Linux companies, including those for some of the major distros, have people working on programs to make installing and removing packages a lot easier. I’m one of them.

Good! :slight_smile:

The first statement is true, but your example is not an example of it.

Several places I have worked (and on my home network), we’ve run VNC, which is a program that allows access to another desktop like you described. VNC runs on many different OSs, and is no less secure on Windows than on Linux. It is insecure in some ways (the information is sent unencrypted, so you probably shouldn’t type any passwords through it), but that insecurity has nothing to do with the base operating system.

Windows inherent insecurity is due to things like opening a bunch of ports by default, or turning on a bunch of services by default, or integrating the webbrowser (which communicates with the untrusted outside world) into the OS so that websites you visit can access parts of the OS they should never even get close to.

MacOS 10.x and Redhat 9 and above both do a great job of this. Whenever you need to do something that requires admin privs, a little box pops up and asks for the admin password. It’s simple and easy, automated, and it (hopefully) will give someone time to wonder: “Why is this Anna Kournikova screensaver asking for an administrator password?”

Shift+Right Click/Run As is a sort of Windows GUI equivalent to su. Nevertheless, running Windows under a non-admin account can be a pain - too many applications simply assume that you have root privileges and don’t work properly, or at all, otherwise. A couple of times I have complained about this to Windows developers and they have promptly fixed it, so I don’t think there’s any technical reason for it. I guess it’s a cultural thing.

We all know that OS X isn’t Linux, though, don’t we? :slight_smile: …and there’s a similar approach in Suse, and I presume many others, but it is only foolproof when the system knows what you’re doing, which leads me onto the next point…

Not a Windows-specific problem, but a wider issue of what I’m talking about - I struggled with a Mozilla Linux installer - the readmes told me to use su, but I had to use sux or log in as root. OK, it seems like a simple thing now, but it took me a long time Googling to find out what was going on.

It will make your life a little more difficult if you do that. I’m saying Windows would be less vulnerable to attacks if that was the way Windows users were brought up. In Unix-like systems, that’s the way we start, so it’s the way most of us think.

Separating roles will make you much safer, but you should still have a firewall enabled, virus detection software installed and adware/spyware/malware detection in place.

If you are not willing, or able, to enforce role separation, then there is a way (I know Norton utilities can do it), to lock the registry and prevent new entries. To add something, you have to specifically unlock the registry. The problem is, you also have to remember to re-lock the registry when you are done.

So, in short, yes. I am suggesting that you run without administrator priveleges and that you only assume the adminsitrator role when you need to make changes to the system. It takes some getting used to, but it is well worth it when you consider the time, effort, resources and pain associated with system compromises.

Windows has always been based on backwards-compatibility. You can run MS-DOS applications on the latest revision of Windows XP, to take the most extreme example. Programs written for MS-DOS and Windows 95 expect to live on a single-user machine with no concept of security or even basic protection: They want the run of the system, and will begin to fail if they don’t get it.

This means that you, as the Windows NT* designer, either make holes in your security model to allow those misbehaving programs to keep running or you tacitly encourage everyone to run with full Administrator access at all times. Both of those are very, very bad solutions. Any worm writer worth his drool bucket will be able to take advantage of either of those scenarios, which is exactly what’s going on. Recent software demanding the run of the machine sure as hell isn’t helping, either. Nor are a horde of Windows users who have been trained for the past decade to expect to run with full Administrator permissions at all times.

*(Windows NT was the first Windows not based on MS-DOS code and the first Windows to try to provide users with a real security model. It was used on servers and such while Windows 95 was being sold to home users. Windows XP is Windows NT with a simplified interface.)

So, Windows achieves its backwards-compatibility at a very steep price. Maybe if Windows 95 had been better designed, as opposed to being just another bolt-on to MS-DOS, we wouldn’t be in this mess quite as deeply, but that’s in the past now.

Linux is also backwards-compatible, and it’s backwards-compatible with a much older bunch of OSes than any Windows version, but it doesn’t need to compromise to achieve that. Why not? Because it’s compatible (to a greater or lesser degree) with a raft of UNIX variants, all of which share the same strong security model.

In short, the UNIX security model is based on having one all-powerful user, called root, and a lot of peons with strictly limited permissions. Under UNIX, a peon is typically restricted to modifying only the files and directories he owns, and can’t even look inside sections of the machine owned by others. Only root, and the programs explicitly run with the permissions of root, has the run of the machine, and a competent user doesn’t run as root unless he knows he has to. The programs, moreover, expect that they aren’t going to be run with full permissions.

Linux gets its backwards-compatibility nearly for free. It has a long heritage of well-behaved programs to fall back on, and its users have been trained for three decades (well, some of them ;)) to only run with the permissions they need to get the job done.

My point in all this is that there are technical and social reasons why Linux isn’t hammered by worms or spyware or any of the other crap Windows is hit with. It isn’t about how Linux is relatively rare on the desktop market, because it’s very common in the server and high-end market. It isn’t even simply about how diverse Linux distros are, even though there is a healthy degree of difference between any two flavors. The reasons go deeper than those facile analyses.

Likewise, just like OSX, XP Pro (not sure about Home) will pop up with the same Run As… box Usram mentioned when you try to install software if you don’t have privs. I use this all the time installing software for my users. They’ll try to install something, I’ll check it out and if legit, run the installer as a local or domain administrator.

I think a point that’s been missed (at least I didn’t see it) is that yes, on the whole, Linux is more secure, and yes, when bugs are found a patch is released. But the real problem is that if Linux were the top desktop OS, you would still have users who just bought an HP from Best Buy only to play games, shop on eBay and let little Jimmy write school papers. They’ll still not be bothered (or even know how) to install security updates. So those users would still have unpatched systems, browsers and email clients that could be infected/hijacked/whatever.

But what could a hijacked browser do if it doesn’t have root access? The user might lose some files, which would be pretty bad if he was dumb enough not to have backups of the vital stuff. But it would all be cured by a simple reinstallation of the browser and a cleansing of the temp files, as opposed to the full OS reinstall a similarly compromised Windows machine might need. The user could (probably) even save his bookmarks and Jimmy’s homework.

Could it spread? Maybe to machines of the same kind, with the same browser with the same flaws. In other words, it wouldn’t stand a chance in hell: The odds of the loser being in contact with a machine that similar to his would be so small that no epidemic could start. The worm would search around for similar machines, find none, and die on the initial batch of hosts when the losers upgraded browsers.

The critical question is whether the Windows user base can be weaned off running as admin without a firewall. MS actually tried something pretty brave with XP SP2, knowing full well they’d break probably 50% of the home machines it was installed on.

But that’s the price for getting the Win community into a (more) secure mode.

Derleth seems to be assuming that if *nix became the desktop OS of choice, it’ll still have the same security settings it does now. I doubt it. Unless installer technology moves up a bunch, the unwashed user community won’t put up with features that don’t install themselves with little or no user effort, adn certainly without requiring a password. And as long as that social demand is there, there’ll be no practical way for the computer to tell self-installing convenient goodware from self-installing convenient malware.

So I imagine a general lowering of default out-of-the-box security settings as Best Buy, et al, start selling *nix machines. Best Buy’s goal is not to sell secure systems, but to sell systems that do NOT result in calls to tech support when users try to install all the crap they want on their new box.

Recall that most of the harm that comes from a compromised home system is visited on somebody else, not the PC’s owner. It becomes a DDOS zombie, or spam zombie or … The owner may suffer a little flakiness, the targets suffer a deluge of problems.

Until/unless they’re legally liable for the actions of their PC, non-technical people aren’t going to take PC hygiene seriously. And I can’t imagine the politics of the situation ever supporting strict owner liability for a hijacked PC’s actions.