Comparison of Windows and Linux

From Wikipedia, the free encyclopedia

Comparison of the Microsoft Windows and Linux operating system is a common topic of discussion among their users. Windows is the most prominent operating system released under a proprietary software license, whereas Linux is the most prominent operating system released under a free software license. However, most Linux distribution sites also have proprietary components for their distribution available.[1] The two operating systems compete for user-base in the personal computer market as well as the server market, and are used in government offices, schools, business offices, homes, intranet and internet servers, supercomputers, and embedded systems.

Windows dominates in the desktop and personal computer markets with about 90% of the desktop market share, and in 2007 accounted for about 66% of all servers sold.[2] In server revenue market share (2007Q4) Windows achieved 36.3% and Linux achieved 12.7%.[3] As of November 2007, Linux powered 85% of the world's most powerful supercomputers, compared to Windows' 1.2% [4]. In February 2008, Linux powered five of the ten most reliable internet hosting companies, compared to Windows' two.[5]

Linux and Windows differ in philosophy, cost, ease of use, versatility, and stability, with each seeking to improve in their perceived weak areas. Comparisons of the two tend to reflect the origins, historic user base and distribution model of each. Typically, some major areas of perceived weaknesses regularly cited have included the poor “out-of-box” usability of the Linux desktop for the mass-market and poor system stability for Windows. Both are areas of rapid development in both fields.

Proponents of free software argue that the key strength of Linux is that it respects what they consider to be the users' essential freedoms: the freedom to run it, to study and change it, and to redistribute copies with or without changes.

Contents

[edit] Difficulties in comparing Windows and Linux

Several factors can make it difficult to compare Windows and Linux.

  • The term “Linux” can have different meanings. In some cases, it refers only to the system kernel; whereas in many other cases, “Linux” refers to a complete graphical desktop Linux distribution.
  • Both come in different editions, each with different functionalities (e.g. Desktop, Server, Embedded, Multimedia Editions). Linux, in particular, has a vast number of distributions, including many that are highly specialized for specific job tasks. There are also vastly differing versions of "Windows". One can say "Windows runs on old computers" (Windows 95), "Windows has modern multimedia capabilities" (Windows Vista) and "Windows is a server operating system" (Windows Server 2008), but whether questionable or not, these assertions don't necessarily apply to the same version of Windows, thus making it much more difficult to make a "Windows vs. Linux" comparison.
  • Price and support for both systems differ based on editions, distributors, and OEM products.[6]
  • Major OEM vendors of new computers may also choose to bundle additional useful software in addition to the installed operating system. Additionally, some OEMs receive payment from the vendors of this software, which they may use to reduce the overall price to the buyer.
  • There are conflicting claims about each operating system from the marketing and research done on the topic.
  • Microsoft sells copies of Windows under many different licenses (usually in a closed source fashion, but occasionally in different levels of shared source). Likewise, most Linux distributions contain some proprietary software when necessary (for example for some device drivers).[1]

[edit] Total cost of ownership

See also: Studies related to Microsoft

In 2004, Microsoft launched a marketing campaign named "Get the Facts" to encourage users to switch from Linux to Windows Server System.[7] Microsoft claims that its products have an overall lower total cost of ownership (TCO) than open source programs because of their ease of use, resulting in less work and lower staff wages.[8]

However, Microsoft's figures are disputed by a variety of organisations, notably Novell and The Register.[9] Some websites suggest that some common inaccuracies in Microsoft's figures stem from including figures for the Unix and Solaris operating systems with figures for Linux.[10]

In 2004, The UK Advertising Standards Authority warned Microsoft that an advertisement using research that claimed “Linux was […] 10 times more expensive than Windows Server 2003”, was “misleading”, as the hardware chosen for the Linux server was needlessly expensive.[11]

[edit] Desktop

Windows Linux Notes
Estimated Desktop Usage Share As of February 2008, 91.58%[12] As of February 2008, 0.65%[12] According to Market Share data from Net Applications
Pre-installation Pre-installed by default on almost all new desktop PCs Pre-installed by default on very few new desktop PCs. However, Ubuntu is now available on all System76 computers, some Dell computers, and SUSE Linux Enterprise Desktop on some Lenovo ThinkPads.[13] Recently many more Linux-based low-end consumer laptops have been introduced.[14]
See also: Comparison of Subnotebooks
Microsoft's agreement with vendors to sell only the Windows operating system is being challenged in court by French consumer rights groups.[15]
Window Managers/Desktop Environments One available WM per release, parts of which may be modified; system file patching (uxtheme.dll) or third party software such as WindowBlinds is required for some modification. WM is critically required to operate the system (graphics system failure will render the system unusable);[16][17] remote control not part of original architecture.[16] GNOME, KDE, Enlightenment, Xfce, Openbox, Fluxbox, etc. Can be enhanced with Beryl or Compiz or the newer Compiz Fusion (merge of Compiz/Beryl forks). WM not critical for system operation (reverts to command line operation in case of failure);[16][17] remote control implicit in design and protocol.[16] Different Window managers provide users with a uniquely different method of interacting with the computer, though sometimes at the cost of compatibility.
System consoles/Command line interface The Command Prompt exists for power users. The command line can be used to recover the system if the graphics subsystem fails. A .NET-based command line environment called Windows PowerShell has been developed. Its functionality is similar to that provided in Unix-like operating systems. Cygwin provides a UNIX-like terminal for Windows. Strongly integrated with system console. Many applications can be scripted through the shell,[18] there are a lot of small and specialized utilities meant to work together and to integrate with other programs. This is called the toolbox principle. The command line can be used to recover the system if the graphics subsystem fails.[16][17]

It is very difficult to properly gauge the number of Linux or Windows users as the former are mostly not required to register their copies; additionally, a large number of illegally copied Windows exist. The above desktop usage share data is estimated from web browser user agent strings, rather than sales information or surveys. This is not entirely reliable because, among other things, web browsers do not always provide accurate information to web servers, and different sites attract different audiences that may be more prone to using one OS or another: such bias is very difficult to eliminate. (Of course, most servers are unlikely to be included in this measurement due to their traditional role as dedicated machines). More estimates are available at Usage share of desktop operating systems.

Both Windows and Linux include command line interpreters. A command line interpreter, typically displayed in a system console, allows users to tell the computer to perform tasks ranging from the simple (for example, copying a file) to the complex (compiling and installing new software). Shells are powerful but can be confusing to new users. Some complex tasks are more easily accomplished through shells than through a GUI, such as piping, or scripting.

[edit] Installation

Windows Linux Notes
Ease of Install On Windows Server 2003 and prior, the installation is divided into two stages; the first text-mode, the second graphical.[19] On Windows Vista and newer, the installation is single stage, and graphical.

Some older versions require third party drivers (for example, by using driver floppies disks or slipstreaming the drivers and creating a new installation CD) if using a large number of SATA or SATA2 drives or RAID arrays.[20]

Varies greatly by distribution.

General purpose oriented distributions offer a live CD or GUI installer (SuSE,Debian,Pardus, Pclinuxos, Mandriva, Ubuntu, Fedora etc.), others offer a menu-driven installer (, Vector Linux, Slackwaredebian) while others, targeting more specialized groups, require source to be copied and compiled (Gentoo). The system can also be built completely from scratch, directly from source code (Linux from Scratch).

[21][22][23]
Install time Varies based on version installed, hardware configuration, and whether it's an update or clean installation. Typically ranges from about 20 minutes to about an hour.[24][25] Additional time may be required to install OS updates and drivers. Ranges from 6 minutes to over an hour, depending on distribution. Is generally around 5-30 minutes for general-use distributions like Ubuntu.[citation needed] Additional time may be required to install OS updates and drivers. However, distributions like Ubuntu, Fedora and many others, once installed, already has most of the basic software (such as Office, GIMP) the user needs. Please see footnotes for Ease of Install.

"Installation time" can be measured differently depending on what actions are included: installing the base OS, additional drivers, OS updates, and/or applications.

Drivers Often drivers must be installed separately. If not included in install media they must be provided by manufacturer. Most common drivers are available in the Windows install or after a quick Internet update. The process of installing drivers is mostly automated. Most free drivers available are included in most distributions or can be found in online archives. Some devices (e.g. graphics cards, wireless adapters) do not have free drivers available due to licensing issues, but proprietary drivers are available from manufacturers or special archives. Some devices allow using Windows drivers. For some devices no usable drivers are available. Most special-purpose drivers must be compiled by the user manually. Time has been invested in centralizing and automating some driver installation through a package manager.
Installation via Live Environments May be installed through WinPE and BartPE. However, only the former is endorsed by Microsoft. Almost all Linux distributions now have a live CD that may be used for install.[26]
Pre-installed software Some multimedia and home use software (IE, Media Player, Notepad, WordPad, Paint…) plus OEM bundled software. Windows Vista Includes IE7, Windows Mail, Windows Media Center, etc. depending on which edition is purchased. It does not include Office suites or advanced multimedia software. All main distributions contain numerous programs: multimedia, graphics, internet, office suites, games, system utilities and alternative desktop environments. Some distributions specialise in education, games, or security. Most distributions give users the choice of which bundled programs to install, if any. Microsoft's methods of bundling software were deemed illegal in the case United States v. Microsoft.[27]
Not pre-installed software A large pool of both proprietary software (including shareware and freeware) and free software. The programs usually come with the required libraries and are normally installed easily. Most programs must be individually installed.

Deinstallation is equally easy, but components and registry entries can be left behind if a program has been equipped with an older uninstaller.

A large pool of free software and some proprietary software. Ports of proprietary Windows software also exist. Using free Windows compatibility layers like Wine, a large number of Windows software can also be run on Linux. Distribution-included programs may be very easily installed in large batches with dependencies to shared libraries being taken care of. Packaging systems allow easy installation of common/supported programs. Other programs can be installed, but require users to be familiar with the UNIX shell.
Partitioning Expanding NTFS partitions is possible without problems, and on Vista it is possible to shrink partitions as well. Dynamic Disks provide dynamic partitioning. Third party tools are available that have more features than the built-in partitioning tools. Some filesystem support resizing partitions without losing data. LVM and EVMS provide dynamic partitioning. All Linux distributions have bundled partitioning software such as fdisk or gparted
Boot Loader May boot to multiple operating systems through the Windows Boot Manager (Windows Vista and newer) / Microsoft boot loader (NTLDR, Windows Server 2003 and prior). May boot to multiple operating systems through GRUB or LILO.[28] Also has security features, like password protection, that are not found in the Windows boot loader.

For a Windows and Linux dual-boot System, it is easiest to install Windows first and then Linux. Numerous third-party boot managers are available for Windows.

Linux distributions were said to be difficult for the average user to install.[29] Today, most distributions have simplified the installation and offer a “LiveDistro” system allowing users to boot fully functional Linux systems directly from a CD or DVD with the option of installing them on the hard drive.

The Windows install process, like most general-use Linux distributions, uses a wizard to guide users through the install process.

[edit] Accessibility and usability

A study released in 2003 by Relevantive AG indicates that “The usability of Linux as a desktop system was judged to be nearly equal to Windows XP”.[30]

Windows Linux Notes
User Focus Mostly consistent. Inconsistencies appear primarily through backports - software ported from newer operating systems to older ones. For example, software ported from Vista to XP, or from XP to Windows 2000/98, must follow the guidelines of the newer system (IE7 and Windows Media Player 11 are examples of this).[31] However, Microsoft continually pushes for consistency between releases with guidelines for interface design. The latest are Windows Vista User Experience guidelines.[32] Their focus is on consistency and usability, but with increased concern for safety in new versions. 3rd party applications may or may not follow these guidelines, may have their own guidelines, or may not follow any rules for interface design. The quality of graphical design varies between desktop environments and distributions. The two biggest desktop environments (GNOME and KDE) have clearly defined interface guidelines, which tend to be followed consistently and clearly.[33][34] These provide consistency and a high grade of customizability in order to adapt to the needs of the user. Distributions such as Ubuntu, SuSE, Fedora or Mandriva take this one step further, combining well-functioning usability and safety. However, inconsistencies may appear, since GNOME-based programs, following different guidelines, look somewhat different from KDE programs. However, these differences are now considered minor and may not even be noticed. There are other environments/window managers, usually targeting professionals or minimalist users, featuring some very powerful programs with rudimentary, minimalist graphical front-ends, focusing much more on performance, small size and safety. WindowMaker and the Fluxbox/Openbox/Blackbox environments are such examples. Some other environments fit between the two models, giving both power, eye candy and simplicity (Enlightenment/E17, Xfce). Some graphical environments are targeted to mouse users only (Fluxbox), others to keyboard users only (Ratpoison), others to either.
Consistency between versions User interaction with software is usually consistent between versions, releases, and editions. Consistency can be poor between distributions, versions, window managers/desktop environments, and programs. Software is highly user-customizable, however, and the user may keep the customizations between versions.
Consistency between applications All Microsoft software follows the same guidelines for GUI, although not all software developed for Windows by third parties follows these GUI guidelines. As stated above, backports tend to follow the guidelines from the newer operating system. Highly consistent within KDE and GNOME. However the vast amount of additional software that comes with a distribution is sourced from elsewhere; it may not follow the same GUI guidelines or it may cause inconsistencies (e.g. different look and feel between programs built with different widget toolkits). Though Windows' GDI and most widget toolkits in Linux allow for applications to be created with a custom look and feel, most applications on both platforms simply use the default look and feel. However, there are exceptions like FL Studio for Windows, and LMMS for Linux.
Customization Source code may be purchased for modification in some circumstances (restrictive), or third party tools may create modifications. All of the kernel source code is freely available for modification. Most other software is free software, too.
Accessibility Both Windows and Linux offer accessibility options,[35] such as high contrast displays and larger text/icon size, text to speech and magnifiers.

[edit] Stability

Windows Linux Notes
General stability Windows variants based on the NT kernel (Windows NT, 2000, XP, 2003, Vista) are technically much more stable than earlier versions (95, 98, 98 SE, ME). Installing unsigned or beta drivers can lead to decreased system stability. Mechanisms to terminate badly behaving applications exist at multiple levels. The kernel inherits the stability of UNIX due to its modular architecture (acknowledged to be stable). Linux terminal emulators and frontend “Window Managers” stabilities vary widely, but are generally stable. Mechanisms to terminate badly behaving applications exist at multiple levels. Because Linux can use a text based system if the graphics system fails,[16][17] the graphics system can be easily restarted following a crash without a whole system reboot. Instability can be caused by poorly written programs, aside from intrinsic OS stability. Software crashes, however, can usually be recovered without restarting the entire operating system, and losing data from other applications.
Device Driver stability Device drivers are provided by Microsoft or written by the hardware manufacturer. Microsoft also runs a Certification program. Device drivers are sometimes reverse engineered to work for Linux. Some vendors contribute to free drivers (Intel, HP etc.) or provide proprietary drivers (Nvidia, ATI etc.). Specifically designed server lines exist. Some Windows drivers can also be used (mostly wireless drivers using the ndiswrapper framework). Crashes can be caused by hardware problems or poorly written device drivers.
Downtime Reboots are usually required after system and driver updates, and are occasionally needed for software installations if the installer wishes to overwrite a file that is being used by critical running program. Microsoft has its hotpatching[36] technology, designed to reduce downtimes. Linux itself only needs to restart for kernel updates.[37] However, a special utility can be used to load the new kernel and execute it without a hardware reset (kexec) and hence can stay up for years without rebooting.
Recovery In modern, NT-based versions of Windows, programs that crash may be forcibly ended through the task manager by pressing CTRL+SHIFT+ESC or CTRL+ALT+DEL or through the command line in professional SKUs. Reboots were often required in pre-NT versions (Windows 9x). All processes except for init and processes in D or Z state may be terminated from the command line. In KDE applications can be closed using CTRL+ALT+ESC or by KSystemGuard by pressing CTRL+ESC. SysRQ allows low-level system manipulation and crash recovery if configured. The entire graphical subsystem can be halted with CTRL+ALT+Backspace without the need for a whole system shutdown. Reboots are seldom required.[38][39]

Additionally, Live CDs of Linux, if equipped with the correct tools, can work to repair a broken OS as long as it can mount the hard drive.[40]

Unrecoverable errors If the kernel or a driver running in kernel mode encounters an error under circumstances whereby Windows cannot continue to operate safely, a "bug check" (colloquially known as a "stop error" or "Blue Screen of Death") is thrown. A memory dump is created and, depending on the configuration, the computer may then automatically restart. Additionally, automatic restart can be applied to services. The Unix equivalent of the Windows blue screen is known as a kernel panic. The kernel routines that handle panics are usually designed to output an error message to the console, create a memory dump, and then either wait for the system to be restarted or restart automatically.

For an operating system to be subjectively “stable”, numerous components must operate synchronously. Not all of these components are under the control of OS vendor; while Linux and Windows kernels may be stable, poorly written applications and drivers can hamstring both. Much of stability, then, is the extent to which the operating system is structured to thwart the consequences of bad behavior by third party installations.

Much of the reputation Windows has for instability can be traced to Windows 95, 98, and ME, which were notorious for displaying the blue screen of death (BSOD) upon crashing. Three weaknesses with these particular Windows versions increased the likelihood such a crash would occur:

  • Full 16-bit compatibility. When memory management of the DOS subsystem failed, it would often prompt a BSOD. Windows NT has no true 16-bit support; it emulates it in a virtual sandbox. The 64 bit versions even lack this emulation.
  • Direct hardware access. Unlike Windows NT, Windows 9x had no hardware abstraction layer. A program or driver that attempted to access protected memory, or interfaced poorly with the hardware, could cause a BSOD.
  • Poor DLL management. DLLs are external libraries of functions that prevent unnecessary repetition in a program. Windows 9x had no protections on system DLLs, and poorly written programs would often overwrite them at will with incorrect versions. Over time, the general stability of the system would decrease. Windows 2000 and later versions have a routine called Windows File Protection that prevents the replacement of important system files.

These are not the exclusive causes of instability, but their correction in the Windows NT codebase has dramatically improved the stability of all subsequent Windows variants: Windows 2000, XP, Server 2003 and Vista.

[edit] Performance

Windows Linux
Process Scheduling NT-based versions of Windows use a CPU scheduler based on a multilevel feedback queue, with 32 priority levels defined. The kernel may change the priority level of a thread depending on its I/O and CPU usage and whether it is interactive (i.e. accepts and responds to input from humans), raising the priority of interactive and I/O bounded processes and lowering that of CPU bound processes, to increase the responsiveness of interactive applications.[41]

The scheduler was modified in Windows Vista to use the cycle counter register of modern processors to keep track of exactly how many CPU cycles a thread has executed, rather than just using an interval-timer interrupt routine.[42]

Linux kernel 2.6 once used a scheduling algorithm favoring interactive processes. Here "interactive" is defined as a process has short bursts of CPU usage rather than long ones. It is said that a process without root privilege can take advantage of this to monopolize the CPU,[43] when the CPU time accounting precision is low. However, the new CFS, the completely fair scheduler, addresses this problem.
Memory Management/ Disk Paging Windows NT and its variants employ a dynamically allocated pagefile for memory management. A pagefile is allocated on disk, for less frequently accessed objects in memory, leaving more RAM available to actively used objects. This scheme suffers from slow-downs due to disk fragmentation, which hampers the speed at which the objects can be brought back into memory when they are needed. Windows can be configured to place the pagefile on a separate partition; doing this negates the disk-fragmentation issues, but introduces an I/O slowdown due to the seek time involved in switching back and forth between the two partitions.[44] However, the main reason this is not done by default is that, if the pagefile is on a separate partition, then Windows cannot create a memory dump in the event of a Stop Error.[45] The ideal solution performance-wise is to have the pagefile on a separate hard drive to the primary one, which eliminates both defragmentation and I/O issues. Most hard drive installations of Linux utilize a "swap partition", where the disk space allocated for paging is separate from general data, and is used strictly for paging operations. This reduces slowdown due to disk fragmentation from general use. As with Windows, for best performance the swap partition should be placed on a separate hard drive to the primary one.

[edit] Support

Windows Linux Notes
Community support Microsoft Developer Network (MSDN), and multitudes of user driven support forums are available at no charge. Additional support is available by 3rd party services. Most support is provided by advanced users and developers over online forums, and other free community based venues. Professional support is available, but most commonly only utilized by large-scale businesses, and server dependent organizations. There are many paid local Windows techs. Fewer for Linux.

Most OEM's offer support along with their products, which include both hardware and software technical support.

Phone support By Microsoft or OEM. Red Hat, Canonical, Novell and other major distributors have support available as well. Extensive help and assistance is available in online guides, and in the form of books.
Documentation A Wealth of information is available free online, or in books, as well as on Microsoft's own support page. Most documentation is available online, either in FAQ form or Wiki pages on developers websites. Some major distributions have books written by 3rd party authors, mainly for server admins, or application development.
Training Many IT courses are written for participants to learn how to use and manage Windows systems and networks. Most computer assistance experts have Windows training and qualifications. Linux strongly dominates many computing university courses in programming and computer science. Linux diplomas and certificates, however, are rarely offered. Courses for certifications are provided only by some distributions, such as Red Hat and Ubuntu.
Third Party Documentation As Windows has the majority of the market share, virtually all producers of software and hardware will give Windows specific instructions for the installation and operation of their programs and drivers. Virtually all products ignore the Linux platform, giving no instructions to install or use software. Indeed, some Linux laptops have shipped with Windows documentation.

[edit] Programs

Windows Linux Notes
Emulation Cygwin or Interix and its successor SUA may be used to compile programs dependent on Linux libraries, but neither can be used to run Linux binaries. Whether full ABI compatibility for open-source software is actually needed, however, is debatable. Cedega, CrossOver, and Wine can be used to run some Windows programs on Linux with varying degrees of reliability. While these programs technically do not emulate Windows, and instead provide an alternate Windows API, the practical effect is the same.
Virtualization VMware, VirtualBox, Virtual PC, Virtual Server, Hyper-V (only available on Windows Server 2008), Parallels, QEMU on new hardware VMWare, VirtualBox, Xen, Parallels, Linux-VServer, QEMU, User-mode Linux, OpenVZ, Win4Lin, KVM With virtualization you may run an operating system within another operating system.
Package management system

Modern versions of Windows rely on the Windows Installer as their package manager. This registers what components are installed where on the user's system. The Windows package management system depends on software vendors following certain guidelines. However, many applications are still deployed with custom-written or old installers and some install systems didn't yet catch up using the Windows Installer, most popular and notably here NSIS. Applications are typically installed into the Program Files directory by an executable file.

Most distributions have a package manager, often based upon RPM, APT, or Gentoo Ebuild metapackages (source). Sometimes an installation can have a second package management system which is incompatible with the primary system. Numerous distribution-specific front-ends exist on top of the core formats allowing for GUI or command-line package installation e.g. aptitude, Synaptic, Portage, YaST and YUM. Though rare, some distributions create their own formats e.g. Pardus PiSi or Pacman. Most package managers have a form of package signing usually based on PGP e.g. OpenPGP for Debian packages.

PM simplifies the process of installing new software, updating it, and managing dependencies (See Dependency hell). In Linux distributions the type of package manager is pre-determined by what the distribution was originally derived from though more modern distributions can import other package formats.
Adding New Programs Thousands of programs are available for download from many websites and for purchase on CD/DVD in retail shops. Care must be taken to avoid programs that include adware, viruses, and spyware.

Programs must be downloaded (or purchased on CD/DVD) and installed individually.

In additions to website downloads, thousands of programs are available from repositories maintained by each distribution and that are free of viruses. Access to the repositories is usually without cost.

The package manager automatically handles download and installation of selected packages, and automatically upgrades or patches software when a newer version appears in the repository. For some distributions, however, it's normal not to update the applications released together with the distribution to new versions. In these cases, only security updates are provided.[46]

Updates
  • Windows Update handles only updates to Microsoft software and can deploy driver updates if present on Windows update site
  • Some third party software has its own separate update manager
  • Windows Installer (See Package management system above) does not manage updates
  • The Package manager handles updates for software that was installed via the package manager.
  • Updates generally don't require a system restart
Gentoo goes further and allows different versions of software and libraries to be installed in separate “SLOTS” so a system can have different versions of the same software installed. GoboLinux uses a radically different approach where "the filesystem is the package manager" which allows even different versions of a program to be run concurrently.[47]
Cross-platform (software)
  • Many programs are written with Windows specific frameworks.
  • Source compatibility with some UNIX programs is done via POSIX subsystem (Windows NT and 2000), or Subsystem for UNIX applications (formerly Interix) (2000, XP, 2003, Vista)
  • Some programs are written with Linux specific frameworks.
  • Compatibility between Unix-like operating systems (such as BSD Unix, Solaris, and Mac OS X) through various standards, such as the POSIX thread standard.
  • Wine allows some Windows programs to run on Linux, including graphic-heavy games like "Elder Scrolls IV : Oblivion", although sometimes with some glitches.
Some companies make versions of their products to work on both Windows and Linux.
Cross-platform (development)
  • Many Microsoft libraries have not been ported to other operating systems
  • Many of Microsofts frameworks can be replaced by counterparts in other operating systems
  • The GNU toolchain has been ported on Windows, as well as GTK, Qt and many other libraries.
  • Many projects already have Windows builds
Software written in cross-platform languages and frameworks is usually easily ported.
Cross-platform (hardware) Windows client and server OS comes both in x86 and x64 editions. ARM, MIPS, x86-64, SuperH are the target platforms for Windows CE / Windows XP Embedded. PDAs are the target platform for Windows Mobile. i386, x86-64, PowerPC 32/64, SPARC, DEC Alpha, ARM, MIPS, PA-RISC, S390, IA-64, SuperH and m68k, and many PDAs and embedded systems.
  • Historically, GNU began working on 68000 but always had a strong multiplatform vocation.[48]
  • The first version of Linux was developed for the i386.
Backwards Compatibility within a release Has historically been very good.[citation needed] Varies significantly[citation needed] The Linux Standard Base (LSB) aims to improve this. Since very few applications or distributions support this standard, many applications will not be compatible even between different distributions using the same version of the Linux kernel. This refers to the general backwards compatibility of software on the operating system within a single release.
Backwards Compatibility between releases

Has historically been a very high priority.[49] However, exceptions do exist, even within Microsoft's own applications (particularly with respect to Windows Vista).[50]

Programs that use LSB functions will work for at least six years on any LSB-compliant distribution.[51] Non-LSB frameworks and libraries have other compatibility policies This refers to the backwards compatibility of the operating system between releases.
IDEs & Compilers Several commercial IDEs for sale, such as Microsoft's Visual Studio. Multiple free IDEs and compilers, including the GNU Compiler Collection, Eclipse, NetBeans, Pelles C, lcc32, Borland C++, Visual Studio Express (Visual C++, C#, and VB.NET compilers), .NET compilers freely included in .NET Framework, Sharpdevelop, Free Pascal Several commercial IDEs and comilers for sale such as PGI, Intel, and Absoft's Fortran compilers.[52][53] Multiple free IDEs and compilers, the most common of which are often included in distributions[54]; including the GNU Compiler Collection, Eclipse, NetBeans, Mono, MonoDevelop, Geany, Anjuta, KDevelop, Free Pascal, OpenLDev
Support for standards Windows has a careful anticipation of mass-market user requirements and has created shifting “standardization” around its products through market dominance.[citation needed] Because of its collaborative development model Linux has achieved a high degree of openness and configurability while adhering to ISO and IEEE standards.[citation needed]

Linux distributions come with a great deal of software which can be installed for free, with an especially large collection of computer programming software.[55] Debian comes with more than 18,000 software packages.[56]

Microsoft has had a longstanding emphasis on backwards compatibility.[57] In general, the Windows API is consistent over time[citation needed]; programs designed for earlier versions of Windows often run without issues on later versions. For the sake of progress, however, Microsoft sometimes draws a line precluding support of very old programs. That first happened with Windows 95, where some purely 16 bit Windows 3.1 applications would not work, and again with Windows XP, where certain mixed-bit applications would not work. 64-bit versions of Windows (XP-64 and Vista-64) drop 16-bit support completely. However, 16 bit emulation and the enormous array of application-specific tweaks (“shims”) within new Windows versions[58] ensure that compatibility with old applications remains very high.[59]

[edit] Gaming

A major attraction of Windows is the library of games available for purchase. The majority of current major games natively support Windows and are released first for the Windows platform.

Some of these games can be run on Linux with a compatibility layer like Wine or Cedega. Others, and especially more modern games that rely on proprietary delivery systems, copy protection, Windows dependencies, or advanced acceleration features, may fail.[citation needed] Moreover, those that run usually have quirks that are not present on the Windows platform. Games differ from running slightly better performance than they have in Windows, to a 25% or worse performance cut, depending on the game.[60]

There are notable exceptions, such as id Software's Doom and Quake series. When a developer chooses to write graphics code in OpenGL instead of DirectX, Linux ports become much easier.

Recently, virtual machines such as VMware Workstation 5.0 have added support for accelerated 3D graphics. This provides much higher framerates at no performance cost.

There are also numerous Open Source games designed first for Linux.[61] While most of these are small games like Kolf or Pingus, there are also bigger games, such as Nexuiz and Freeciv. Many have been ported to work on Windows as well.

[edit] Security

To determine what constitutes secure software, working backwards from insecurity is illuminative. The ideal software to encourage the creation of malware has several characteristics. It should be:

  • Widely used, to maximize the number of those who could be infected, and the likelihood that infected systems will contact others able to be infected
  • Slowly patched, to maximize the time the malware remains effective, and minimize development effort for new malware
  • Monolithic with no compartmentalization of components, to maximize the damage malware can do

To discourage the creation of malware and reduce its impact, software should therefore have a small user base, rapid updates to neutralize new threats, and a compartmentalized structure that isolates damaged sections.

Compartmentalization is achieved by separating user and root privileges. Prior to Windows Vista, almost all Windows users were given a root account by default because lesser accounts were overly restrictive for most users. Linux user account tiers have historically allowed greater control, precluding the need for all users to have root access. Without root, it becomes much more difficult for malware to spread.

Windows Linux Notes
Malware According to Kaspersky Lab, more than 11,000 malware programs for Windows were discovered in the second half of 2005.[62] Botnets - networks of infected computers controlled by malicious persons - with more than one million computers have been witnessed.[63]

Users are advised to install and run anti-malware programs.

More than 800 pieces of Linux malware have been discovered.[62] Some malware has propagated through the Internet.[64]
Open vs. Closed Claims its platform is more secure because of a comprehensive approach to security using the Security Development Lifecycle.[65][66]

However, due to the nature of closed source, only company programmers can fix bugs.

Claims its platform is more secure because all of its code is reviewed by so many people that bugs are detected (referred to as Linus's law). Microsoft claims that Windows Vista is more secure than other operating systems.[67] However, security vulnerabilities have been found in Windows Vista.[68]
Response speed Claims closed source offers a faster and more effective response to security issues,[69] though critical bug fixes are only released once a month after extensive programming and testing[70][71] and certain bugs have been known to go unpatched for months. Bugs can be fixed and rolled out within a day of being reported, though usually it takes a few weeks before the patch is available on all distributions.
User Accounts In Windows Vista, all logged in sessions (even for those of "administrator" users) run with standard user permissions, preventing malicious programs from gaining total control of the system.

Prior versions of Windows would assign administrator status to the first user account created during the setup process. The majority of users did not change to an account type with fewer rights[citation needed], meaning that malicious programs would have full control over the system.

Users typically run as limited accounts[citation needed], having created both administrator and user accounts during install, preventing malicious programs from gaining total control of the system. A malicious program executed under a limited account in both Linux and Windows is limited to the users' data.

[edit] Permissions

Both Windows NT-based systems and Linux support permissions on their filesystems, except for FAT which has no permission support.

[edit] Linux and Unix-like systems

File system permissions on a Linux system running GNOME.
File system permissions on a Linux system running GNOME.

Linux—and Unix-like systems in general—have a “user, group, other” approach to filesystem permissions at a minimum.[72] Access Control Lists are available on some filesystems, which extends the traditional Unix-like permissions system. Security patches like SELinux and PaX add Role-Based Access Controls, which add even finer-grained controls over which users and programs can access certain resources or perform certain operations. Some distributions, such as Fedora, CentOS, and Red Hat use SELinux out of the box, although most do not.[73]

Most Linux distributions provide different user accounts for the various daemons.[74] In common practice, user applications are run on unprivileged accounts, to provide least user access. In some distributions, administrative tasks can only be performed through explicit switching from the user account to the root account, using tools such as su and sudo.

[edit] Windows

Windows NT uses NTFS-based Access Control Lists to administer permissions, using tokens.[75]

On Windows XP and prior versions, most home users still ran all of their software with Administrator accounts, as this is the default setup upon installation. The existence of software that would not run under limited accounts and the cumbersome runas mechanism forced many users to use administrative accounts. This gives users full read and write access to all files on the filesystem.

Windows Vista changes this[76] by introducing a privilege elevation system called User Account Control that works on the principle of Least user access. When logging in as a standard user, a logon session is created and a token containing only the most basic privileges is assigned. In this way, the new logon session is incapable of making changes that would affect the entire system. When logging in as a user in the Administrators group, two separate tokens are assigned. The first token contains all privileges typically awarded to an administrator, and the second is a restricted token similar to what a standard user would receive. User applications, including the Windows Shell, are then started with the restricted token, resulting in a reduced privilege environment even under an Administrator account. When an application requests higher privileges or "Run as administrator" is clicked, UAC will prompt for confirmation and, if consent is given, start the process using the unrestricted token.[77]

For more information on the differences between the Linux su/sudo approach and Vista's User Account Control, see Comparison of privilege authorization features.

[edit] Localization

It is easy to have multiple languages installed in Linux and to switch between them while the user is logging in. Almost all applications will communicate with the user in the selected language, because they can detect it from the environmental variable LANG. In MS Windows, localization can be provided by a separate installation of the operating system, or the Multilingual User Interface (MUI) can be used to provide multiple languages on one installation.

[edit] See also

[edit] References

  1. ^ a b The GNU Project (2007-07-29). Free GNU/Linux distributions. Links to Other Free Software Sites. Retrieved on 2007-08-07. “These are all GNU/Linux distributions we know of which consist entirely of free software, and whose main distribution sites distribute only free software. If a distribution does not appear in this list, there's a small chance that it qualifies and we do not know it; however, almost certainly it contains or distributes non-free software. Unfortunately, the most well-known distributions do this.”
  2. ^ Microsoft sees Windows gaining server market share. iTnews (February 28, 2008). Retrieved on 2008-03-16.
  3. ^ Worldwide Server Market Experiences Modest Growth in Fourth Quarter as Market Revenues Reach Seven-Year High in 2007, According to IDC. IDC (February 27, 2008). Retrieved on 2008-03-08.
  4. ^ Operating system Family share for 11/2007
  5. ^ Tiscali Italia is the Most Reliable Hosting Company in February 2008. Netcraft (March 4, 2008). Retrieved on 2008-03-06.
  6. ^ Microsoft. Windows Licensing Guide (pdf).
  7. ^ "Get the Facts", Microsoft's Website
  8. ^ Get the Facts: Total Cost of Ownership, by Microsoft (refers to Windows Server 2003).
    • "Acquisition costs are a very small component of TCO", p. 2
    • "The cost of IT staffing for Linux is 59.5% higher than for Windows", p. 10
  9. ^ Windows v Linux security: the real facts, The Register, 22 October 2004
    EMA Study: Get the Truth on Linux Management, Levanta / OSDL, February 2006
    Unbending the Truth, Novell, Inc.
    Truth Happens, Red Hat
  10. ^ Linux TCO edge: Lower labor costs, ZDNet, 3 January 2003
  11. ^ Microsoft's Linux ad 'misleading', BBC News website, 26 August 2004
  12. ^ a b Operating System Market Share. Market share for browsers, operating systems and search engines. www.hitslink.com (February 2008). Retrieved on 2008-04-12.
  13. ^ Lenovo, Novell partner to offer Linux on the ThinkPad
  14. ^ Linux PC Models Multiply As Vista Struggles - Linux - InformationWeek
  15. ^ Logiciels préinstallés Les fabricants en accusation : IMAGE-SON-INFORMATIQUE INFORMATIQUE Logiciel - UFC Que Choisir
  16. ^ a b c d e f NT vs. Linux (March 2000). Retrieved on 2008-03-16.
  17. ^ a b c d Linux vs Windows (a comparison) (June 20, 2005). Retrieved on 2008-03-16.
  18. ^ CLI magic: shell programming. Linux.com (March 15, 2004). Retrieved on 2008-03-16.
  19. ^ Clean Install Procedure with Illustrative Screen Captures, The Elder Geek
  20. ^ Sjouwerman, Stu & Tittel, Ed (September 1999), Windows NT and Hardware, Pearson Education (web outtake: Microsoft TechNet), ISBN 978-0-73-570922-5, <http://www.microsoft.com/technet/archive/ntwrkstn/maintain/operate/hardware.mspx>. Retrieved on 12 April 2008 
  21. ^ http://madpenguin.org/cms/html/47/5937.html "switching to windows"
  22. ^ http://linux.blogweb.de/uploads/winVSubu.pdf "Windows vs. Ubuntu"
  23. ^ A comparison of Ubuntu 6.06 and Windows XP « 361degrees
  24. ^ In my personal experience as a refurbisher, I have yet to find any version of Windows that will install in under two to four hours. Rhosgobel: Radagast's home
  25. ^ Windows Vista Imaging and Installation Performance. Microsoft Windows Vista team blog.
  26. ^ “The Live CD List” http://www.frozentech.com/content/livecd.php
  27. ^ Official court document outlining illegal behavior in Microsoft's practice of bundling software http://www.usdoj.gov/atr/cases/f1700/1763.htm
  28. ^ GNU GRUB - GNU Project - Free Software Foundation (FSF)
  29. ^ LUIGUI - Linux/UNIX Independent Group for Usability Information, Linux Journal, March 2000
  30. ^ Linux Usability Study Report, Relevantive AG, 13 August 2003
  31. ^ http://www.actsofvolition.com/archives/2001/december/windowsxprough XP inconsistencies
  32. ^ Windows Vista User Experience Guidelines
  33. ^ http://usability.kde.org/hig/ KDE human interface guidelines
  34. ^ http://developer.gnome.org/projects/gup/hig/ GNOME HIG
  35. ^ Microsoft Accessibility, KDE Accessibility, GNOME Accessibility
  36. ^ Using Hotpatching Technology to Reduce Servicing Reboots.
  37. ^ GeodSoft. Linux, OpenBSD, Windows Server Comparison: Linux Stability.
  38. ^ Windows-to-Linux roadmap: Part 1. Thinking in Linux. IBM developerWorks (November 11, 2003). Retrieved on 2008-03-17.
  39. ^ Brian Hatch (April 9, 2003). The Upgrade Process: Restarting vs Rebooting. Retrieved on 2008-03-17.
  40. ^ List of Rescue and Repair LiveDistros
  41. ^ http://www.808multimedia.com/winnt/kernel.htm
  42. ^ Inside the Windows Vista Kernel: Part 1, Microsoft Technet
  43. ^ Dan Tsafrir, Yoav Etsion, Dror G. Feitelson. Secretly Monopolizing the CPU Without Superuser Privileges.
  44. ^ XP Myths: Moving the paging file
  45. ^ How to configure paging files for optimization and recovery in Windows XP, Microsoft Help and Support
  46. ^ New OpenOffice for Ubuntu.
  47. ^ GoboLinux at a glance. GoboLinux. Retrieved on 2008-03-17.
  48. ^ Compare “First steps” paragraph in http://www.gnu.org/gnu/thegnuproject.html
  49. ^ http://blogs.msdn.com/oldnewthing/archive/2003/10/15/55296.aspx Raymond Chen on Backward compatibility
  50. ^ McLaws, Robert. "The Truth About Visual Studio Support on Windows Vista", Robert McLaws: Windows Vista Edition, www.windows-now.com, 2006-09-27. Retrieved on 2008-04-12. Archived from the original on 2006-09-27.  For example, Windows Vista is not compatible with pre-2005 versions of MS SQL Server
  51. ^ Application Compatibility - The Linux Foundation
  52. ^ http://www.pgroup.com/gindex.htm
  53. ^ Polyhedron Software | Home
  54. ^ Number of Debian Packages
  55. ^ Debian Packages
  56. ^ Number of Debian Packages
  57. ^ http://blogs.msdn.com/oldnewthing/archive/2003/10/15/55296.aspx Raymond Chen on Backward compatibility
  58. ^ http://blogs.techrepublic.com.com/Ou/?p=325 “Vista will ship with thousands of application shims to accommodate legacy applications”
  59. ^ Microsoft (April 2007). Application Compatibility Cookbook. The Windows Vista Developer Story. Microsoft Developer Network. Retrieved on 2008-04-12.
  60. ^ Wine Wiki. Benchmark tests for WINE.
  61. ^ Debian. List of Games for Debian.
  62. ^ a b InternetNews Realtime IT News – Linux Malware On The Rise
  63. ^ Dutch Botnet Suspects Ran 1.5 Million Machines - Security Technology News by TechWeb
  64. ^ New worm targets Linux systems - CNET News.com
  65. ^ How Do They Do It? A Look Inside the Security Development Lifecycle at Microsoft -- MSDN Magazine, November 2005.
  66. ^ Compare Windows to Red Hat.
  67. ^ Microsoft issues Vista security scorecard, gives itself an A-plus.
  68. ^ Flaws Are Detected in Microsoft's Vista.
  69. ^ Forrester Research. Forrester Report into relative security of Linux and Windows.
  70. ^ Claims Open Source offers a faster and more effective response to security issues.
  71. ^ The Register (2004-10-22). Security Report: Windows vs Linux (Rebuttal to the Forrester Report).
  72. ^ Security on a Linux file system, retrieved January 19, 2007.
  73. ^ Red Hat discusses RHEL's inclusion of SELinux: [1] A wiki devoted to SELinux in Fedora:[2] A review of CentOS hosted at linux.com: [3]
  74. ^ For instance see this paragraph in Debian Policy [4] (a better citation is welcome)
  75. ^ Managing Authorization and Access Control. Microsoft Technet.
  76. ^ Microsoft describes in detail the steps taken to combat this in a TechNet bulletin. [5]
  77. ^ Kenny Kerr (2006-09-29). Windows Vista for Developers – Part 4 – User Account Control. Retrieved on 2007-03-15.