Comparison of Windows and Linux

From Wikipedia, the free encyclopedia

Jump to: navigation, search
Microsoft's numbers on OS share

Comparison of the Microsoft Windows and Linux computer operating systems is a common topic of discussion among their users. Windows is the most prominent proprietary operating system, while Linux is the most prominent operating system that is free software (note that many Linux distributions also have a small amount of proprietary components, such as compiled binary blob drivers provided by hardware manufacturers, for their default installation.[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 accounted for about 66% of all servers sold (not used) in the year 2007.[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.4%.[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 susceptibility to malware for Windows. Both are areas of rapid development in both fields.[citation needed]

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] Total cost of ownership

In 2004, Microsoft launched a marketing campaign, "Get the Facts", to encourage users to switch from Linux to Windows Server System.[6] 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.[7]

Microsoft's figures are disputed by a variety of organizations, notably Novell (which produces a linux distribution) and The Register.[8] 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.[9]

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.[10]

The German foreign ministry said that the cost of open source desktop maintenance is by far the lowest it experienced.[11]

[edit] Market share

The market share of Linux or Windows is difficult to determine as the former is usually not required to register their copies; additionally, a large number of illegal copies of 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. (However, most servers are unlikely to be included in this measurement due to their traditional role as dedicated computer machines). More estimates are available at Usage share of desktop operating systems.

Windows Linux Notes
Estimated Desktop Usage Share As of January 2009, 90.68%[12] As of January 2009, 1.85%[12]
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] Microsoft's agreement with vendors to sell only the Windows operating system is being challenged in court by French consumer rights groups.[15]

[edit] User interface

Windows Linux Notes
Graphical user interface
The Windows Shell on Windows Vista

The Windows Shell. This uses as its window manager the Desktop Window Manager on Windows Vista, and a Stacking window manager built on top of GDI in older versions. The desktop environment may be modified by a variety of third party products such as WindowBlinds; or completely replaced, for example by Blackbox for Windows, or LiteStep. The graphics system is part of the Windows kernel, and even servers run graphic subsystems.

The GNOME Desktop Environment

A number of desktop environments are available, of which GNOME and KDE are the most widely used. By default, they use as their window managers Metacity and KWin respectively, though these can be replaced by other window managers such as Compiz Fusion. Other desktop environments and window managers include Enlightenment, Xmonad, Xfce, Openbox, Fluxbox, etc. The X Window system runs in user-space and is optional.[16] Multiple X Window system instances can run at once, and it is a fully networked protocol. See Also: Comparison of X Window System desktop environments.

Command-line interface
A sample Windows PowerShell session

The Command Prompt exists to provide direct communication between the user and the operating system. A .NET-based command line environment called Windows PowerShell has been developed. It varies from Unix/Linux shells in that, rather than using byte streams, the PowerShell pipeline is an object pipeline; that is, the data passed between cmdlets are fully typed objects. When data is piped as objects, the elements they encapsulate retain their structure and types across cmdlets, without the need for any serialization or explicit parsing of the stream. Cygwin provides a bash terminal for Windows. Windows Script Host is included in Windows 98 and newer versions.

A sample Bash session

Linux is strongly integrated with the system console. The command line can be used to recover the system if the graphics subsystem fails.[17][18] A large number of Unix shells exists; with the majority being "Bourne shell compatible" shells, of which the most widely used is GNU Bash. Alternatives include the feature-full Z shell; as well as shells based on the syntax of other programming languages, such as the C shell, and Perl Shell. Many applications can be scripted through the system console,[19] 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.

A command-line interface, 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. See also: Comparison of computer shells.

[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.[20] 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.[21]

Varies greatly by distribution. Most distributions intended for new or intermediate users provide simple graphical installer.

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, Slackware, Debian) 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).

[22][23][24]
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(base OS).[25] Differs heavily depending on distribution. Package-based installation (Ubuntu, Debian, CentOS) may take several minutes. In extreme case of completely source-based distribution, full system installation may take from several hours, up to several days (heavily depends on hardware and software type).[citation needed] 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 The Windows installation media usually contains enough drivers to make the OS functional. To this end, "generic" drivers may be used to provide basic functionality. Drivers for these devices can later be upgraded from the manufacturer. Windows Update may also contain updated drivers that can be installed after the base OS is in place. Drivers are almost always closed-source, maintained and published by the manufacturer of their respective devices. Depending on choice of Linux variant, device drivers may be included allowing common hardware to work without additional installation steps. These drivers are generally written by someone working for the hardware manufacturer or by someone in the user community skilled in doing so; usually the drivers are included in the kernel (open-source). Some devices (e.g. graphics cards, wireless adapters) do not have open-source drivers available due to licensing issues, but proprietary drivers are sometimes available for download from manufacturers or special archives. Some devices allow use of Windows drivers via a "wrapper" utility. 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 the Windows Preinstallation Environment or BartPE. However, only the former is endorsed by Microsoft. Only Microsoft-certified System Builders (OEM companies) are allowed to use the WinPE disk for installation, by license. End-users do not have a license to use the WinPE installation environment. Almost all Linux distributions now have a live CD that may be used for install or recovery.[26] In addition, the live CD can also be used for custom partition setups. Installing from a Linux live CD allows a PC to be configured to boot from several different OS's, to include Windows. There are no license restrictions on its use.
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. However, Microsoft has licensed decoders for a number of patented audio and video coding methods, including the mp3 audio format, and Windows is able to play a number of patented formats by default. The vast majority of Linux distributions do not include mp3 audio or mpeg-4 video decoders, and it would violate international law for them to do so without establishing an agreement with the respective patent holders of the coding systems. Players for free alternative audio/video formats are available in Linux, but they are unable to decode patented formats such as mp3. 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 massive pool of both proprietary software (including shareware and freeware) and free software. Programs usually come with the required libraries and are normally installed easily. Most programs must be individually installed.

Uninstallation is equally easy, but components and registry entries can be left behind if a program has been equipped with an older uninstaller. Windows has a built-in installer program, and software that is to be installed has an installer "wrapper" that interfaces with the Windows Installer to accomplish installation.

A large pool of free software and some proprietary software. Ports of proprietary Windows software also exist. Using free Windows-compatibility layers like Wine, some Windows software can also be run, to a greater or lesser degree, on Linux. Third-party software is usually listed/integrated into a packaging system, which is built into the OS. Less popular programs, which are not in the distributions repositories, are often provided in a form (such as .deb or .rpm) which can be installed easily by the package manager. If no precompiled package exists, programs can be automatically build from the source code. Extensive compatibility issues exist in Linux software that tie specific versions of source code and binary packages to specific distributions, library versions, and kernel versions. For example, binary drivers are almost always tied to an exact kernel build, and binary driver distribution is therefore quite rare. Common practice in Linux and open source in general is to configure compiler and library packages so that compiled binaries will be tied to a specific version of the package. For example, the same source code may successfully compile with two different versions of glibc, but each resulting binary will be tied to the respective version of glibc. Therefore, a binary compiled on a given Linux machine will typically only be compatible with the specific version of the specific distribution that is running on that machine. As a result, distributions and third parties maintain extensive repositories with many compilations of the same source code in order to provide users of different distributions with access to binaries that will work on their machines.

Windows programs are compiled against generalized, specification-based header files and are not tied to the local machine where they are compiled. That fact combined with a well-documented effort by Microsoft to maintain binary compatibility has resulted in Windows programs typically being usable on a variety of Windows versions.

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 file systems support resizing partitions without losing data. LVM and EVMS provide dynamic partitioning. All Linux distributions have bundled partitioning software such as fdisk or gparted
File systems Natively supported: NTFS, FAT, ISO 9660, UDF, and others; 3rd-party drivers available for ext2, ext3, reiserfs, HFS, and others Natively supported: ext2, ext3, ext4, ReiserFS, FAT, ISO 9660, UDF, NFS, NTFS, JFS, XFS and others; many additional filesystems (including NTFS using NTFS-3g) are available using FUSE. Archives and FTP sites also can be mounted as filesystems. Windows can read and write with Ext2 and Ext3 file systems with third-party drivers such as FS-driver or ext2fsd; and ReiserFS through rfstool and related programs.
Boot Loader May boot to multiple operating systems through the Windows Boot Manager, in Windows Vista and newer; or the Microsoft boot loader, NTLDR, in Windows Server 2003 and prior. Numerous graphical configuration tools are available, such as EasyBCD for the Windows Boot Manager and MSConfig for NTLDR. May boot to multiple operating systems through LILO or GRUB. With these, it is possible to choose between multiple installed kernel images at boottime. Graphical configuration tools for GRUB are available including KGRUBEditor[28] (KDE) and GrubConf [29] (GNOME). GRUB can also be configured at boottime via the GRUB prompt (this is a temporary one-time-configuration only). GRUB and LILO also support booting to non-Unix operating systems via chain loading; and thus for a Windows and Linux dual-boot System, it is easiest to install Windows first and then Linux.

Linux distributions were said to be difficult for the average user to install. However distributions like Ubuntu include graphical package managers which assist the user in searching for packages and installing them graphically (e.g., Adept Package Manager). By use of package managers the need of downloading software (open source) from official site saves time as there is no need of surfing web pages as the downloading, installing, resolving dependencies, conflicts are handled by the package manager.[30] Today, most distributions have simplified the installation and offer a “Live CD” 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, this enables a user to evaluate a distribution with no permanent modification to their computer.

The Windows install process and most general-use Linux distributions use 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 that of Windows XP”.[31]

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).[32] However, Microsoft continually pushes for consistency between releases with guidelines for interface design. The latest are Windows Vista User Experience guidelines.[33] Their focus is on consistency and usability, but with increased concern for safety in new versions. Third-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.[34][35] 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 notably different from KDE programs. 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. Certain graphical environments are also designed to be as resource-conservative as possible, so as to run on older machines.
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 generally highly user-customizable, 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 Windows provides extensive, well-documented programming interfaces that enable third parties to develop kernel software that extends and modifies system behavior. Microsoft provides its Windows Driver Kit at no cost, which includes thorough documentation, samples, and tools for building, testing, and deploying drivers. Windows driver programming interfaces are based on standards and specifications, often the product of a process involving leading players in the applicable industry.

While Windows drivers are compiled based on specifications, and are not tied to a specific version of Windows, source code for a specific version of Windows may, in theory, be purchased for modification in some circumstances (restrictive), or third-party tools may create modifications. In practice, the availability of Windows source code is generally heavily restricted or extremely expensive, if available at all. However, even where source is available, modification to the operating system can break the EULA, and in turn be prohibited or even illegal.

Few working specifications exist for Linux driver programming interfaces, and no model for consistent binary driver support exists. In fact, a compiled Linux driver is tied to the exact build of the kernel running on the machine where the driver was compiled. Having no specifications or consistent programming interfaces, and no way to develop and distribute system-neutral driver files, Linux driver developers are therefore limited to choosing a specific kernel version, examining its internals, and writing modules that interface with those internals. This process is facilitated by the fact that the kernel source code is available. However, historically, kernel internals typically change over time, and source code for modules must be periodically updated in order for it to continue to function. This also means that modifications that work on one machine will often fail to work on another machine if their kernel versions are different.
Accessibility Both Windows and Linux offer accessibility options,[36] such as high contrast displays and larger text/icon size, text to speech and magnifiers. However, Windows is limited to one language by default, whereas most Linux distributions come with dozens of languages and several dialects.

[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, such as Task Manager. The kernel technically 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, such as Ksysguard. Because Linux can use a text based system if the graphics system fails,[17][18] the graphics system can be easily restarted following a crash without a whole system reboot. Most Linux distributions also provide a Live Distro, which can be used to repair a completely unbootable OS. 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.

Since it is noted that a graphics system failure in Linux will drop to the textual OS level, Vista's graphical recovery abilities should also be noted. On Vista even if the Video system fails, from driver failure/crash to even video hardware failure, Vista can recover by restarting the graphical system, driver, or transfer the GUI to another video device if available, without closing applications running in the graphical system, giving the user a prompt that Vista recovered from a Display problem, without the user losing data or access to applications in the GUI. Even DirectX games running when a failure happens are often able to be recovered based on the DirectX version the game uses. So even though Vista is 'limited' to a graphical interface, the recovery of the Video subsystem is something not found in Linux or other OSes. However, Linux's graphics system rarely ever fails spontaneously,[citation needed] it is more likely to be after a config change and a reboot (or manual restart of the graphics system) than anything else.[citation needed] Additionally, some of the lighter window managers allow you to restart them, keeping all programs open if they crash, but any failure of the Linux graphics server or its drivers will result in closing all graphical programs without warning.

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[37] technology, designed to reduce downtimes. Linux itself needs to restart only for kernel updates.[38] 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. N.B. Ksplice allows the linux kernel to be patched without a reboot.
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. 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.[39][40]

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.[41]

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.
Hardware Abstraction Layer Available from Windows NT4, 2000, and later. Not present in the Windows 9x (95/98) line of Operating Systems. The Hardware Abstraction Layer serves as a buffer between the kernel of the operating system and the physical hardware. Available in most Linux distributions.

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.[42]

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.[43]

Linux kernel 2.6 once used a scheduling algorithm favoring interactive processes. Here "interactive" is defined as a process that 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,[44] when the CPU time accounting precision is low. However, 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.[45] 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.[46] 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 hard drive separate from the primary one.
Corrections Needed *Note - Vista no longer over utilizes pagefile as previous versions of NT, and can run without one. Also the pagefile on NT is not guaranteed to become fragmented, as the pagefile may or may not grow, can be set to a static size, and XP and Vista both have the ability to defrag the pagefile if it has dynamically allocated more space causing fragmentation. Even in major pagefile growth NT attempts to allocate contiguous space so this presents a situation where you have relatively few fragments in the pagefile. Having the pagefile on a separate physical hard drive than the OS will offer better performance, but moving the pagefile to a separate partition on the same physical hard drive is not recommended. Just creating a separate partition on the same hard drive will often create the partition in an area that the hard drive has lower read/write speed due to the design of hard drive varying in performance based on data location. *Note - Many newer hard drives do not allocate partitions in contiguous regions, so even a separate partition can be fragmented on drive provisioning. Also see note to the left, as partition location on the hard drive can reduce performance if put in a lower speed position.

[clarification needed]

[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.
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. Detailed documentation for specific commands, programs, functions, libraries, files, and file formats are available through the man pages, which are accessed through the command line, or through graphical viewers. 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 is taught in many computing university courses in programming and computer science[citation needed]. Linux diplomas and certificates are rarely offered. Courses for certifications are provided by Linux Professional Institute and some distributions, such as Red Hat and Ubuntu.
Third Party Documentation As Windows has the majority of the market share, most producers of software and hardware will give Windows specific instructions for the installation and operation of their programs and drivers. Most non-Linux-specific products give little to no instructions to install or use software on Linux. Indeed, some Linux laptops have shipped with superfluous Windows documentation[citation needed].

[edit] Programs

Windows Linux Notes
Binary Emulation, Alternative API 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. Linux distributions themselves are also typically unable to execute binaries compiled on any other distribution, or on a different version of the same distribution. 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. Some windows software may not run correctly since API implementation provided by these software packages is not complete. Wine and similar approaches often require less cpu power than Hardware emulation or Virtualization where whole Microsoft Windows operating system must be run. With binary emulation (or alternative API implementation) user is able to run software designed to run on different operating system or hardware platform.
Hardware emulation and Virtualization VMware, VirtualBox, Virtual PC, Virtual Server, Hyper-V (only available on 64-bit versions of Vista SP2, Windows 7, and Windows Server 2008), Parallels, QEMU on new hardware. VMware, VirtualBox, Xen, Parallels, Linux-VServer, QEMU, OpenVZ, Win4Lin, KVM. VirtualBox and QEMU can be used to run Microsoft Windows as guest operating system. With virtualization you may run an operating system within another operating system.
Operating systems run as application Several linux distributions can be run inside windows as userland application using Cooperative Linux as kernel and Xming as X server. There exist user-friendly easy to install software packages based on this approach (Andlinux , Portable Ubuntu). Linux distribution installed in this way is binary compatible with other x86 linux distributions, only difference is special kernel modified to run on top of windows. User-mode Linux allows user to run Linux kernel as userland application. Andlinux is simplest way of running linux software on windows.
Package management system Windows programs are not tied to specific library or kernel versions and the original developer of a program can therefore distribute a single package that can work on multiple versions of Windows. This obviates any problem comparable to what exists in the Linux ecosystem where it's necessary to maintain large repositories of packages compiled for exact versions of the operating system, and to manage complicated dependencies between different package versions and repository sources.

Modern versions of Windows rely on the Windows Installer to install and manage software. This registers what components are installed where on the user's system. Microsoft's guidelines strongly suggest that software vendors use the Windows Installer. However, many applications are still deployed with alternative installers. One example is NSIS. Applications are typically installed into the Program Files directory by an executable file.

Linux programs are normally dependent on exact kernel and library versions, and therefore on a specific version of a specific distribution. In order to manage the complicated dependencies that arise, 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. It is also possible to create a GUI installation package not depending on the distributions by using Autopackage. Software can also be compiled from source code, which does not require any kind of package-management system. However, compiling software from its source code can be time-consuming and difficult. Source code is also typically tied to specific library versions, and in many cases, source code can not be compiled without updating system libraries, which can disable existing installed software that is dependent on exact builds of those libraries. In some cases, conflicts arise where the latest version of one program depends on having an older version of a specific library, and another program will depend on having a newer version of the same library.

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.

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

In addition to website downloads, thousands of programs are available from repositories maintained by each distribution and are generally considered "trusted" and require review before new additions will be accepted. 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.[47] Third-party software rarely (if ever) contains adware/spyware/viruses, and does not require as much discretion in that regard.

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.
  • Windows security updates typically require a restart.
  • The Package manager handles updates for software that was installed via the package manager.
  • Generally, updates generally do not require a system restart, with the exception of kernel updates. However, there are multiple ways around this, and it is possible to load the kernel into memory, update it, and commit to memory Ksplice. Updates to X may require restarting X (for example, by logging out and back in again) to take effect.
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.[48]
Cross-platform (software)
  • A great many programs are written with Windows-specific frameworks due to its market dominance.
  • 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).
  • Few programs are written with Linux-specific frameworks. Those that are usually have a Windows port.
  • 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, such as Id software, make versions of their products to work on both Windows and Linux. These programs are generally not dependent on either framework. Instead, the installation is such that there is an "interpreter" layer and the actual program binary files. The interpreter layer runs on-the-fly to deliver the appropriate program experience to whichever platform is running. Using this method, software can be created independent of the platform, and only the interpreter layer needs to be configured for the OS.
Cross-platform (development)
  • Many Microsoft libraries have not been ported to other operating systems
  • Many of Microsoft's 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 that is written in cross-platform languages and frameworks are 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.[49]
  • The first version of Linux was developed for the i386.
Backwards Compatibility between releases

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

Programs that use Linux Standard Base functions will work for at least six years on any LSB-compliant distribution.[52] 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 compilers for sale such as PGI, Intel, and Absoft's Fortran compilers.[53][54] Multiple free IDEs and compilers, the most common of which are often included in distributions;[55] including the GNU Compiler Collection, Eclipse, NetBeans, Mono, MonoDevelop, Geany, Anjuta, KDevelop, Free Pascal, OpenLDev, Codeblocks

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

Microsoft has had a longstanding emphasis on backwards compatibility.[50] 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[57] ensure that compatibility with old applications remains very high.[58]

In the Linux world, the landscape differs. As most (if not all) parts of the operating system is open source and many Linux programs are open source, when a Linux distribution breaks backward compatibility, anyone willing might write a patch to the operating system or the program itself that would allow the older software to work. In reality though, since many popular Linux distributions uses software repository and all of the most popular programs exists in the repository, the programs provided in the repository is guaranteed to be compatible with (depends on the distros) the most recent version of the operating system.

[edit] Gaming

A major attraction of Windows is the large 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.[59]

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. In addition, games such as the Unreal Tournament series are written in 3 parts: The core 'engine' of the game, the graphical display system, and the actual game data itself. The first two, typically being compiled programs, require porting, however only the graphical display system will often require much work (Windows to X Window, DirectX to OpenGL, etc). The third part, the game data itself, is typically written in system-independent file formats and scripting languages. This allows the game developer to separate the actual game experience from platform compatibility. This also serves to reduce the cost of development in 2 ways.

  • There is no need to port the game data to another platform, which eliminates the need to compile and bug-fix the game data for each platform.
  • Future releases of the software can use the same "engine" and graphical display system. This allows game developers to focus more on the game experience, and less on compatibility issues.

Recently, virtual machines such as VMware Workstation 5.0 have added support for accelerated 3D graphics.

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

[edit] Security

Windows Linux Notes
Malware According to Kaspersky Lab, more than 11,000 malware programs for Windows were discovered just in the second half of 2005.[61] However, it is common for anti-malware software to have more than 100,000 signatures against which potentially malicious components can be compared. Botnets - networks of infected computers controlled by malicious persons - with more than one million computers have been witnessed.[62] Once malicious software is present on a Windows-based system, it can sometimes be incredibly difficult to remove. As such, users are advised to install and run anti-malware programs. As of 2006, more than 800 pieces of Linux malware have been discovered.[61] Some malware has propagated through the Internet.[63] However, in practice, reports of bonafide malware presence on Linux-based systems are extremely unheard of[citation needed]. Nonetheless, anti-malware tools (such as ClamAV and Panda Security's DesktopSecure for Linux do exist. These programs are mainly intended to filter Windows malware from emails and network traffic traveling through Linux-based servers[citation needed].
Open vs. Closed Claims its platform is more secure because of a comprehensive approach to security using the Security Development Lifecycle.[64][65]

However, because Windows is closed-source, only Microsoft-employed programmers (or licensed third-parties) 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).

Anyone with programming experience is free to fix bugs and submit them for inclusion in future releases.

Microsoft claims that Windows Vista is more secure than other operating systems.[66] However, security vulnerabilities have been found in Windows Vista.[67]

Security issues are also still being reported for Linux [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 (often within hours), 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. Processes that require administrator privileges can be run using the User Account Control framework. For standard users, this presents a credentials dialogue (example) that requires the password of a member of the administrators group (who are listed). For users who are already logged in an administrator, only confirmation (example) is necessary. The first user account created during the setup process is automatically a member of the administrators group. The majority of users did not change to an account type with fewer rights, meaning that, in Windows versions prior to the introduction of UAC, malicious programs would have full control over the system. Users typically run as limited accounts[citation needed], having created both administrator (commonly called the "superuser" and named "root") and at least one user account during install, preventing malicious programs from gaining total control of the system. Note that the user "root" is not the same thing as the root level of the filesystem, indicated by "/" alone. In most Linux distributions, there are commands (su, sudo) that will temporarily grant root/administrator privileges to processes that need it. In practice, the sudo command is generally far less of an annoyance, leading to its use over su in distrobutions like Ubuntu, in spite of the additional security risk. In addition, a user can log into the PC as the "root" or temporarily become root with su (normal console logout returns the user to normal permissions). No elevated permissions are needed for anything when logged in as root. In practice, this can be very dangerous, as a simple typo error at the command line can wipe a hard drive clean or clear the contents of system RAM. Unlike Vista's UAC, a privileged process has complete, unrestricted access to the system. For graphical programs containing thousands of lines of code, this create a larger opportunity for something to go wrong. New frameworks such as PolicyKit seek to rectify this problem by splitting the privileged program into two parts: A light daemon program with the privileges necessary to carry out the task and the GUI front-end that uses PolicyKit to communicate with the daemon. However, as of Feb. 2009, PolicyKit is not in widespread use. Other frameworks such as AppArmor and SELinux ensure that a program can only carry out specific tasks (for example, a web server is not allowed to change critical system files). A malicious program executed under a limited account in both Linux and Windows is limited to that user's data. The use of sudo on a Linux system asks for the user's password only once for a set amount of time (in Ubuntu, 10 minutes). During this time, the user is able to do anything root could do without entering a password and actually becoming root (assuming sudo is configured this way; the stated intent of sudo is to allow users to run select commands as root). The su command requires the root password every time, and is therefore more secure; malware(which can enter a system in a variety of ways, such as browser exploits) cannot exploit a passwordless period to hijack the system. User Access Controls in Windows only grants administrator privileges to the user for each process as a one-time-shot. Each process that needs elevated privileges spawns a new prompt to the user (often more than one) for the user to accept.

[edit] Filesystem Permissions

Both Windows NT-based systems and Linux-based systems support permissions on their default filesystems. Windows' original FAT filesystem, however, does not support permissions. This filesystem is available for use in both operating systems. Windows ME, Windows 98, Windows 95, and previous versions of Windows only operated on the FAT filesystem, and therefore do not support permissions natively.

[edit] Linux and Unix-like systems

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 and subsequent NT-based versions of Windows use 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 "Run As..." 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, starts 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] VLSI industry

The VLSI (Very Large Scale Integration, IC design & manufacturing technology) industry uses Linux instead of Windows. These companies usually have servers and Solaris/Linux installed on it. Most of the VLSI tools are designed for Linux and there are no ports available for Windows making Linux more popular in VLSI industry.

[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 the open nature of development allows volunteer based translations. 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. Many of the available applications for the Windows platform lack natural language support for many languages.

[edit] See also

[edit] References

  1. ^ The GNU Project (2007-07-29). "Free GNU/Linux distributions". Links to Other Free Software Sites. http://www.gnu.org/links/links.html#FreeGNULinuxDistributions. 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. http://www.itnews.com.au/News/71042,microsoft-sees-windows-gaining-server-market-share.aspx. 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. http://www.idc.com/getdoc.jsp?containerId=prUS21114208. 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. 2008-03-04. http://news.netcraft.com/archives/2008/03/04/tiscali_italia_is_the_most_reliable_hosting_company_in_february_2008.html. Retrieved on 2008-03-06. 
  6. ^ "Get the Facts", Microsoft's Website
  7. ^ 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
  8. ^ 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
  9. ^ Linux TCO edge: Lower labor costs, ZDNet, 3 January 2003
  10. ^ Microsoft's Linux ad 'misleading', BBC News website, 26 August 2004
  11. ^ http://www.osor.eu/news/de-foreign-ministry-cost-of-open-source-desktop-maintenance-is-by-far-the-lowest
  12. ^ a b "Operating System Market Share". Market share for browsers, operating systems and search engines. www.hitslink.com. September 2008. http://marketshare.hitslink.com/report.aspx?qprid=8&qpmr=100&qpdt=1&qpct=3&qptimeframe=M&qpsp=119&qpnp=1. Retrieved on 2009-01-06. 
  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. ^ ftp://ftp.suse.com/pub/people/trenn/ACPI_BIOS_on_Linux_guide/acpi_guideline_for_vendors.pdf
  17. ^ a b "NT vs. Linux". March 2000. http://windowsitpro.com/article/articleid/8143/nt-vs-linux.html. Retrieved on 2008-03-16. 
  18. ^ a b "Linux vs Windows (a comparison)". June 20, 2005. http://www.michaelhorowitz.com/Linux.vs.Windows.html#agui. Retrieved on 2008-03-16. 
  19. ^ "CLI magic: shell programming". Linux.com. March 15, 2004. http://www.linux.com/feature/113635. Retrieved on 2008-03-16. 
  20. ^ Clean Install Procedure with Illustrative Screen Captures, The Elder Geek
  21. ^ 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 2008-04-12 
  22. ^ http://madpenguin.org/cms/html/47/5937.html "switching to windows"
  23. ^ http://linux.blogweb.de/uploads/winVSubu.pdf "Windows vs. Ubuntu"
  24. ^ A comparison of Ubuntu 6.06 and Windows XP « 361degrees
  25. ^ "Windows Vista Imaging and Installation Performance". Microsoft Windows Vista team blog. http://windowsvistablog.com/blogs/windowsvista/archive/2006/10/02/Windows-Vista-Imaging-and-Installation-Performance.aspx. 
  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. ^ KGRUBEditor KDE-Apps.org
  29. ^ GrubConf - GRUB Graphical Configuration Editor
  30. ^ LUIGUI - Linux/UNIX Independent Group for Usability Information, Linux Journal, March 2000
  31. ^ Linux Usability Study Report, Relevantive AG, 13 August 2003
  32. ^ http://www.actsofvolition.com/archives/2001/december/windowsxprough XP inconsistencies
  33. ^ Windows Vista User Experience Guidelines
  34. ^ http://usability.kde.org/hig/ KDE human interface guidelines
  35. ^ http://developer.gnome.org/projects/gup/hig/ GNOME HIG
  36. ^ Microsoft Accessibility, KDE Accessibility, GNOME Accessibility
  37. ^ "Using Hotpatching Technology to Reduce Servicing Reboots". http://technet2.microsoft.com/WindowsServer/en/library/e55050fc-22c9-4984-9bae-b8b0527334721033.mspx?mfr=true. 
  38. ^ GeodSoft. "Linux, OpenBSD, Windows Server Comparison: Linux Stability". http://geodsoft.com/opinion/server_comp/reliability/linux.htm. 
  39. ^ "Windows-to-Linux roadmap: Part 1. Thinking in Linux". IBM developerWorks. November 11, 2003. http://www.ibm.com/developerworks/linux/library/l-roadmap1.html. Retrieved on 2008-03-17. 
  40. ^ Brian Hatch (April 9, 2003). "The Upgrade Process: Restarting vs Rebooting". http://www.hackinglinuxexposed.com/articles/20030409.html. Retrieved on 2008-03-17. 
  41. ^ List of Rescue and Repair LiveDistros
  42. ^ Windows NT Kernel Thread Scheduling
  43. ^ Inside the Windows Vista Kernel: Part 1, Microsoft Technet
  44. ^ Dan Tsafrir, Yoav Etsion, Dror G. Feitelson. "Secretly Monopolizing the CPU Without Superuser Privileges" (PDF). http://www.cs.huji.ac.il/~dants/papers/Cheat07Security.pdf. 
  45. ^ XP Myths: Moving the paging file
  46. ^ How to configure paging files for optimization and recovery in Windows XP, Microsoft Help and Support
  47. ^ "New OpenOffice for Ubuntu". http://user.services.openoffice.org/en/forum/viewtopic.php?f=16&t=68. 
  48. ^ "GoboLinux at a glance". GoboLinux. http://www.gobolinux.org/?page=at_a_glance. Retrieved on 2008-03-17. 
  49. ^ Compare “First steps” paragraph in http://www.gnu.org/gnu/thegnuproject.html
  50. ^ a b http://blogs.msdn.com/oldnewthing/archive/2003/10/15/55296.aspx Raymond Chen on Backward compatibility
  51. ^ McLaws, Robert (2006-09-27). "The Truth About Visual Studio Support on Windows Vista". Robert McLaws: Windows Vista Edition (www.windows-now.com). Archived from the original on 2006-09-27. http://web.archive.org/web/20070209172800/http://www.windows-now.com/blogs/robert/archive/2006/09/27/Visual-Studio-Support-in-Windows-Vista.aspx. Retrieved on 2008-04-12.  For example, Windows Vista is not compatible with pre-2005 versions of MS SQL Server
  52. ^ Application Compatibility - The Linux Foundation
  53. ^ The Portland Group
  54. ^ Polyhedron Software | Home
  55. ^ a b Number of Debian Packages
  56. ^ Debian Packages
  57. ^ http://blogs.techrepublic.com.com/Ou/?p=325 “Vista will ship with thousands of application shims to accommodate legacy applications”
  58. ^ Microsoft (April 2007). "Application Compatibility Cookbook". The Windows Vista Developer Story. Microsoft Developer Network. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnlong/html/AppComp.asp. Retrieved on 2008-04-12. 
  59. ^ Wine Wiki. "Benchmark tests for WINE". http://wiki.winehq.org/BenchMark-0.9.5. 
  60. ^ Debian. "List of Games for Debian". http://packages.debian.org/stable/games/. 
  61. ^ a b InternetNews Realtime IT News – Linux Malware On The Rise
  62. ^ Dutch Botnet Suspects Ran 1.5 Million Machines - Security Technology News by TechWeb
  63. ^ New worm targets Linux systems - CNET News.com
  64. ^ "How Do They Do It? A Look Inside the Security Development Lifecycle at Microsoft -- MSDN Magazine, November 2005". http://msdn.microsoft.com/msdnmag/issues/05/11/SDL/. 
  65. ^ "Compare Windows to Red Hat". http://www.microsoft.com/windowsserver/compare/compare_linux.mspx. 
  66. ^ "Microsoft issues Vista security scorecard, gives itself an A-plus". http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9014080&pageNumber=2. 
  67. ^ "Flaws Are Detected in Microsoft's Vista". http://www.nytimes.com/2006/12/25/technology/25vista.html?ex=1324702800&en=49a6ffcc2da87302&ei=5090. 
  68. ^ "The Bug". http://metasploit.com/users/hdm/tools/debian-openssl/. 
  69. ^ Forrester Research. "Forrester Report into relative security of Linux and Windows" (PDF). http://download.microsoft.com/download/9/c/7/9c793b76-9eec-4081-98ef-f1d0ebfffe9d/LinuxWindowsSecurity.pdf. 
  70. ^ "Claims Open Source offers a faster and more effective response to security issues". http://searchwinit.techtarget.com/columnItem/0,294698,sid1_gci1016130,00.html. 
  71. ^ The Register (2004-10-22). "Security Report: Windows vs Linux (Rebuttal to the Forrester Report)". http://www.theregister.co.uk/security/security_report_windows_vs_linux/. 
  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. http://technet.microsoft.com/en-us/library/bb457115.aspx. 
  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". http://weblogs.asp.net/kennykerr/archive/2006/09/29/Windows-Vista-for-Developers-_1320_-Part-4-_1320_-User-Account-Control.aspx. Retrieved on 2007-03-15. 
Personal tools