linux_vs_windows

snichols This is more of a Linux versus Windows comparison. I've worked mostly in Windows for about 10 years. Before that I used MSDOS in the late 80s and early 90s. I've been using Linux for one year and thought I share some differences I noticed between the two OS's. Anyone else feel free to contribute.

GUI

  1. In Windows, the GUI is integral to the operating system.
  2. In Linux, the GUI is simply a program running in Linux and can be killed and restarted if necessary. I have noticed that in Linux it does seem to lockup more then Windows, but this may be my configuration. The good thing though is you won't have to reboot, simply restart X windows. I've never seen Linux's command line lockup.

LV I've not used Linux GUI much - just command line. But I don't recall ever seeing a need to restart X in the times I used it. And I have used Sun Solaris for more than 20 years and can't think of more than a handful of times I had to restart X. HOWEVER, the times I had to were annoying, because it was changing certain display oriented settings that should have been able to be changed dynamically.

snichols I'm using Synergy[1 ] to share my mouse and keyboard with my Windows laptop and Linux box. I think Synergy is causing the intermittent problems, but being able to share the keyboard and clipboard (copy and paste) is worth it to me.

Application Settings

  1. In Windows, application settings are stored in the registry. The settings are not clear text and require special tools to edit such as regedit and regedit32.
  2. In Linux, application settings are stored in files that start with a dot (dot files) in the user's home directory. The dot files are clear text and can be edited without special tools.

LV Well, frankly, most of the files that GNOME or other windowing systems create are tough to edit without special tools, and these days the support teams discourage editing them without special tools. Then there are the special files which require special permissions, etc. Contemporary desktop environments are pretty much as bad as the registry.

Command Line

  1. In Windows, not using the command line isn't necessary.

LV I'm uncertain what you were trying to say here - I suspect it is that users generally don't use a command line when using Windows. It is, however, available. In fact, there are a variety of command lines available. Microsoft makes a DOS command line available, as well as something called Windows PowerShell. They also make available, for XP and Windows Server, a POSIX environment called SFU I think. However, the only time I see most people using the command lines are for certain administrative actions. The average user has no need to use the command line.

snichols I knew that Windows shipped with a commmand line: MSDOS. But, it isn't nearly as robust at the default command line that's included with Linux. I think a lot of the frustration people have with the command line is that they think of MSDOS's and don't even know Linux's has much more features. I wasn't sold on the command line until I started using Linux's. Things like grep, locate, find, are good tools for developers, and make working with text easier.

  1. In Linux, a good understanding of the command line (bash) is necessary. The command line includes many tools that do all sorts of things that most programmers will really like.

LV Note that Linux doesn't _require_ using a command line. For instance, I have NEVER used a command line on my linux based Tivo machine. I suspect that people using Linux phones also have never used a command line.

Being forced to use command lines means that insufficient attention has been paid to the user interface on the particular machine...


[some unknown writer]: ... There is good reason humankind has progressed vom clubpointing and grunting to written expression of ideas and intentions ( it is called progress UK ). IMHO a point and click interface has problems going beyond what the gui designer has thought of.


snichols I didn't mean having to use the command line was a bad thing. In my office, I think most people prefer to use the command line because it's more efficient then having to use a mouse, copy and paste from one application to another, etc. I know most GUI applications have keyboard shortcut keys, but how many people actually learn them?

LV I understand your point. My reaction was triggered by historical reasons - one of the most frequent Linux criticisms (by people who are not code jockies) revolves around the fact that it is so command line driven. You indicate that a good understanding of the command line is necessary. As long as that fact is true, consumer acceptance of Linux is going to be limited.

Programming

  1. In Windows, programming requires knowledge of APIs like DDE, COM, etc.
  2. In Linux, most programming is done by writing command line apps that pipe their outputs to other command line apps. Piping sounds technical, but its actually a much easier concept to grasp and much easier to program then DDE or COM.

LV I don't find this to be true. Certainly there are certain types of programs that can be made up in this way. But the same types of things can also be done on Windows. On the other hand, to write the equivalent functionality as someone using DDE and COM would be using, the Linux programmer is going to have to either use Java, with all of its classes, or learn to access CORBA, etc. from a scripting language.

Security

  1. In Windows, users can edit and change any file.

AET 7jun07 Only for FAT-filesystem Windows (up to 98) - not common now. FAT does not support file security. HPFS (NT variants) supports ACLS (Access Control Lists, which originated in Multics), but is not set up by default upon installation. I have found some laptops with XP installed into FAT - dunno why.

  1. In Linux, by default users can only view files from other users. Sudo or root access permissions are needed to be able to change a file created by another user.

Remote Connectivity

  1. In Windows, remote use is done through Windows Terminal Services or pcAnywhere, or by mapping a network drive to a Windows share.
  2. In Linux, almost all users use SSH to connect to another computer, or use tools like scp and rsync instead of mapping network drives.

escargo - Virtual Network Computing (VNC [3 ]) can be used with either. You can also connect to a Windows system from Linux using a Remote Desktop Protocol client such as rdesktop [2 ]. gg - You can also connect from Windows to Linux (or Linux to Linux) using that.

[some unknown user writes:] Hmm, what's X11 for? you can have subwindows from different hosts in the same application. Try that with the jonny come lately stuff ;-)

Background Processing

  1. In Windows, I find myself waiting on background processing to finish a lot of the time. The background processes could be an expensive email program with a very large footprint or an anti-virus program running that has to continually check your computer to make sure things are safe. These are just two common contributers to why my Windows computer runs so slow. There's usually dozens if not hundreds of processes running in the background in Windows doing who knows what when you're trying to get work done. Even, with a beefy system, I find myself having to periodically wait for them to finish. Symptoms will include an hourglass for a mouse cursor, or keyboard that no longer responds, or screens that are slow to paint, lagging keyboard, etc..
  2. In Linux, there is still background processing going on, but I rarely notice them working.

In nearly all cases cpu hogs are handled well enough for loads that consume all of "available" cpu time to be not detimentally noticable in X11.

LV I find myself waiting on the Windows system more than Unix systems, but I do find myself waiting on things more in the past five years than in the old days. Linux is rushing along to make itself more and more like Windows...

Summary

Linux is a good development environment for a programmer, because just about anything can be automated via a script. Windows seems more geared to a casual user that would rather browse to where they need to go. I mention DDE and COM as what most Windows programs use, but I heard .NET is using SOAP which probably is hard or harder than those to grasp. If you work as a developer your really going to like Linux.