Comparison of Windows and Linux

From Seo Wiki - Search Engine Optimization and Programming Languages

Jump to: navigation, search

Comparisons between the Microsoft Windows and Linux computer operating systems are a common topic of discussion among their users. Currently Windows is by far the most popular proprietary personal computer operating system (in terms of desktop installations), while Linux is the most prominent free software operating system (note that some proprietary components, such as compiled, binary only drivers provided by hardware manufacturers, are included in many Linux distributions). Both operating systems not only compete for user base in the personal computer market but are also rivals in the server and embedded systems markets.

The comparisons below reflect three different families of Windows operating systems, each based on a different codebase and design. These families are: (1) Windows and Windows for Workgroups 3.1 (DOS-based), Windows 95, and Windows 98 and ME, legacy versions that are no longer sold today; (2) the NT family, including Windows 2000, XP, Vista, 7, and Servers 2003 and 2008. This family runs all Microsoft-supported desktop and server computers today; and (3) The Windows Embedded family, comprised of both scaled-down versions of other Windows versions and specialized operating systems such as Windows CE. The focus of these comparisons is mainly on the NT family.

Linux is available for many types of CPUs: IA-32 (i386 and later PC processors), x86-64 (64-bit PCs and most Mac computers with Intel processors), Itanium, MIPS, PowerPC, ARM, and others. However, current versions of the Windows NT kernel focus only on the first three. Because of the diversity of CPU types supported, Linux finds applications today in routers, set-top boxes, PDAs and mobile phones as well as in servers and desktops. Windows Embedded has a historically long market, starting with DOS on POS terminals. Today's Windows CE kernel runs in under a megabyte of memory, and it no longer solely targets hand-held computers.[1] Microsoft has based many embedded platforms on the core Windows CE operating system, including AutoPC, Windows Mobile, Mediaroom, Portable Media Center, and many industrial devices and embedded systems. Windows CE even powered select games for the Dreamcast.

Microsoft 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 (while not necessarily used).[citation needed] In server revenue market share, as of Q4 2007, Microsoft Windows had 36.3% and Linux had 12.7%.[2] As of June 2009, Linux powered 88.6% of the world's most powerful supercomputers.[3] In December 2008, Linux powered five of the ten most reliable internet hosting companies, compared to Windows' one.[4]

Linux and Microsoft Windows differ in philosophy, cost, ease of use, versatility and stability, with each seeking to improve in their perceived weaker areas. Comparisons of the two operating systems tend to reflect their origins, historic user bases and distribution models. Typical perceived weaknesses regularly cited have often included the poor “out-of-box” usability of the Linux desktop for the mass-market[citation needed], while Microsoft Windows' main drawback is susceptibility to viruses and malware due to its enormous market share and lack of security features that could thwart this.[5]

Proponents of free software argue that the key strength of Linux is the degree of freedom allowed to the users: "the freedom to run the program [such as Linux] study...and change it...the freedom to redistribute copies...[and] improve the program, and release your improvements."[6] Windows embedded devices are often configured without disk storage, and may be configured as a “closed” system that does not allow for end-user extension.


Total cost of ownership

In 2004, Microsoft launched a marketing campaign, "Get the Facts", to encourage users to switch from Linux to its 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, a variety of Linux supporters, companies, and organizations, notably Linux distributor Novell, who produces SUSE Enterprise Linux and tech news outlet The Register, dispute Microsoft's figures.[9] One argument supporting the cost-effectiveness of Linux is that although Linux administrators are usually paid somewhat higher salaries than Windows administrators, a competent Linux administrator can take care of more computers than the latter. A study conducted by Chad Robinson, senior research analyst at tech/business researcher Robert Frances Group (RFG), supports this view.[10][11]

In 2004, The UK's 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.[12]

Real world experience

The German Foreign Office said that the cost of open source desktop maintenance is by far the lowest it experienced.[13] The French Gendarmerie reported saving millions on license fees by switching to Linux desktops from Windows XP, following the success of roll-outs.[14][15]

Market share

The market share of Linux or Microsoft Windows is difficult to determine as users of the former are usually not required to register with any organization to use their copies; additionally, a large number of unlicensed (illegal) copies of Windows exist. The above desktop usage share data is estimated from web browser user agent strings, rather than actual sales information or detailed surveys. This is highly unreliable for many reasons including, but not limited to, web browsers that do not always provide accurate information to web servers, and selection bias: Different websites attract different audiences that may be more prone to using one OS or another. Also, desktop computers used for other tasks will be given a lower weight than computers mostly used for web-surfing. Microsoft's own numbers for Linux share are higher.[16] More estimates of the market shares are available at Usage share of desktop operating systems. According to a survey by the Eclipse Foundation (an open-source foundation) in 2009, Linux was the most popular deployment choice for developers. There is a shift from Microsoft Windows to Linux and Apple's Mac OS X for their desktop development operating system. 26.9% of the respondents cited Linux as their primary desktop operating system, representing a 7% increase from 2007. Though Windows was still the dominant development OS at 64%, it had decreased 10% from 2007. The most popular Linux variant of choice for development use was Ubuntu, which accounted for over half of Linux respondents. Mac OS X had increased to 6.9% from 3.5% in 2007.[17]

Windows Linux Notes
Estimated Desktop Usage Share 92.54%[18] 1.02%[18] October 2009
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.[19] Recently many more Linux-based low-end consumer laptops have been introduced.[20] Microsoft's agreement with vendors to sell only the Windows OS is being challenged in court by French consumer rights groups.[21] Such agreements by Microsoft were found illegal in the case United States v. Microsoft.
Server revenue market share 37.3%[2] 13.8%[2] First quarter, 2009
Top 500 supercomputer operating system family share 1.0% (absolute 5)[3] 88.6% (absolute 443), the 14 fastest supercomputers run Linux[3] June 2009

User interface

Windows Linux Notes
Graphical user interface

The Windows Shell. The window manager is 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. With Windows Server 2008 and later, there is also the option of running "Server Core" which replaces the standard window manager with the command prompt [22]. The graphics drivers, subsystem, and core widgets are included with all installations, including those used as servers.

File:KDE 4.png
The KDE Plasma Desktop

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 Xfce, LXDE, Enlightenment, Xmonad, Openbox, Fluxbox, etc. The X Window system runs in user-space and is optional.[23] 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

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 or MS's own Services for Unix provides a bash terminal for Windows.[citation needed] Posix subsystem is built in but not enabled by default. The Console can execute up to 4 kinds of environments, MSDOS scripts under NT or via runnung on NTVDM, NT shell scripts and OS/2 Console Scripts. Certainly NT3.1 to NT4.0 ran OS/2 console mode binaries also. Windows Script Host is included in Windows 98 and newer versions.

Linux is strongly integrated with the system console. The command line can be used to recover the system if the graphics subsystem fails.[24][25] 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,[26] 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 or terminal emulator window, 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.


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.[27] 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.[28]

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

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).

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. Recent version of 64-bit Windows force all drivers to be signed, giving Microsoft the sole ability to authorize drivers; this feature cannot be easily overridden by system administrators.[32][33] Linux kernels in most distributions include the majority of drivers available as modules, hardware is detected and drivers loaded at boot with usually little or no user interaction required. 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), and therefore do not require additional media or any user interaction. A few hardware manufactures (Broadcom, Nvidia) have proprietary drivers which require manual installation.

Prior to introduction of DKMS, third party kernel modules had to be manually updated when the kernel was upgraded.

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 are not allowed to use the WinPE installation environment. Almost all Linux distributions now have a live CD that may be used for testing, install or recovery.[34]
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. 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.[35]
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 can be of varying difficulty depending on which of many installer methods were used, components and registry entries may be left behind. 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. Not all Windows software uses the install manager.

A massive pool of free software and some proprietary software covering a wide range of use. A Microsoft employee wrote in an internal report in 1998 that "Most of the primary apps that people require when they move to Linux are already available for free."[36] Using free Windows-compatibility layers like Wine, some Windows software can also be run, often to a 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 the DEB format or the RPM (Red Hat Package Manager) format) which can be installed easily by the package manager. If no precompiled package exists, programs can be more or less automatically built from the source code. Most software is installed non-interactively to a default configuration. Linux distributions can not lawfully include MP3 or MPEG-4 file decoders in a majority of countries, as it would violate the Patent Cooperation Treaty. There is nothing preventing a user from installing these decoders, however the user assumes all liability for installing said pieces of software. Media players (such as Rhythmbox)) for free alternative audio/video formats are available in Linux, but these players are unable to decode patented formats, such as MP3, without installing additional plugin(s).[37] In particular with the MP3 file format, many companies claim patents relevant to the format. See Patent issues with MP3 for more information.
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. Most file systems support resizing partitions without losing data. LVM 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 (incomplete), JFS, XFS and others; many additional filesystems (most notably NTFS using NTFS-3g, and ZFS) 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 versions of Windows through the Windows Boot Manager in Windows Vista and newer; or the earlier boot loader NTLDR in Windows Server 2003 and prior. Graphical configuration tools are available for both, such as EasyBCD for the Windows Boot Manager and MSConfig for NTLDR, which can chain load multiple non-NT environments, including Linux, by referring to volume boot records from those environments saved on the Windows partition.[38] May boot to multiple operating systems through numerous bootloaders such as LILO and GRUB. With these, it is possible to choose among multiple installed kernel images at boot time. Graphical configuration tools for GRUB are available including KGRUBEditor[39] (KDE) and GrubConf [40] (GNOME). GRUB can also accept arbitrary, one-time configurations at boot time via the GRUB prompt. GRUB and LILO also support booting to non-Unix operating systems via chain loading; for a Windows and Linux dual-boot system, it is often easiest to install Windows first and then Linux because Linux installers such as Ubuntu's installer will easily and fully automatically detect and set up other operating systems for dual/multiple boot with Linux.[41]

Linux distributions were said to be difficult for the average user to install.[citation needed] However, easy-to-use installers were becoming common on the major distributions already by the beginning of the twenty-first century. The main Linux distributions include graphical package managers which assist the user in searching for packages and installing them graphically (e.g., Fedora's PackageKit, and Debian and Ubuntu's Synaptic Package Manager). When package managers are used the user saves time as there is no need of surfing to web pages, downloading the appropriate packages, and installing them; the package manager handles all downloading, installing, resolving of dependencies, and conflict resolution.[42]

Today, most distributions[citation needed] 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 for either software or hardware compatibility 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. Windows often comes pre-installed while a Linux distribution has to be chosen and installed, but one can argue that the installation of Linux nowadays is no more difficult than configuration of a pre-installed Windows.[citation needed]

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

Windows Linux
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 must follow the Vista guidelines, those of the newer system (IE7 and Windows Media Player 11 are examples of this).[citation needed] However, Microsoft continually pushes for consistency between releases with guidelines for interface design. The latest are Windows Vista User Experience guidelines.[44] 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.[45][46] 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 ranges from high to 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 By default, Windows only offers customization of size and color of the graphical elements, and it is typically not possible to change how the interface reacts to user input.

A few third-party programs allow some more extensive customization, like WindowBlinds or LiteStep, but radical changes are usually out of reach. It is not possible to customize the applications that do not use the default look-and-feel beyond the options the specific application offers.

Linux offers dozens of different user interfaces to choose from through numerous desktop environments and window managers. Different environment offers various levels of customizability, ranging from the basic colors and size to extreme customizability of user input, actions, and display.

It is possible to switch from one to another interface at any time, though graphic applications will generally need to be closed.

Accessibility Both Windows and Linux offer accessibility options,[47] such as high contrast displays and larger text/icon size, text to speech and magnifiers.


Windows Linux Notes
General stability Windows operating systems based on the NT kernel (including all currently supported versions of desktop Windows) are technically much more stable than some older versions (including Windows 3.1 and 95/98). Installing unsigned or beta drivers can lead to decreased system stability (see below). A Linux window manager, a key component of the X Window-based GUI system, can be highly stable or quite buggy,[citation needed] but the more common ones are stable. Mechanisms to terminate badly behaving applications exist at multiple levels, such as Ksysguard and the kill command. Because Linux can use a text based system if the graphics system fails,[24][25] 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, as Linux's graphics system is decoupled from the kernel and the system. Linux's graphics system can usually be restarted without affecting non-graphical programs and services running under other shells, and without restart.[48]
Device driver stability Device drivers are provided by Microsoft or written by the hardware manufacturer. Microsoft also runs a certification program, WHQL Testing, through which most drivers are digitally signed by Microsoft as compatible with the operating system, especially on 64-bit versions. This ensures a maximum level of stability. Some vendors contribute to free drivers (Intel, HP, etc.) or provide proprietary drivers (Nvidia, ATI, etc.). Unlike Windows, however, kernel developers and hobbyists write many or most device drivers; in these drivers, any developer is potentially able to fix stability issues and other bugs. Kernel developers do not support the use of drivers that are not open-source, since only the manufacturer can fix stability issues in closed-source drivers.[49] Crashes can be caused by hardware problems or poorly written device drivers. Both operating systems, utilizing aspects of monolithic kernel architecture, run drivers in the same address space as the kernel, leading to crashes or hangs resulting from buggy device drivers.
Downtime Reboots are usually required after system and driver updates. Microsoft has its hotpatching[50] technology, designed to reduce downtimes. Linux itself needs to restart only for kernel updates.[51] 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 a single hardware reboot, reducing downtime. For minor updates such as security fixes, Ksplice allows the linux kernel to be patched without a reboot. System libraries, services and applications can mostly be upgraded without restarting running software (old instances use the "replaced" versions)
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.

Should this fail, other third-party applications can also be used. However, if a badly behaving application hangs the entire GUI, it is difficult or impossible to recover without restarting the entire computer, since there is no text-based management console independent of the GUI to resort to.

All processes except for init and processes in D or Z state may be terminated from the command line. If the GUI hangs, on most distributions, CTRL+ALT+F1 takes the user to the terminal, where the process can be killed, and the GUI restored. Applications can also be closed via the GUI. The optional SysRQ allows low-level system manipulation and crash recovery. The entire graphical subsystem can be restarted without the need for a whole system shutdown. Reboots are seldom required.[52][53]

Additionally, Live CDs of Linux, if equipped with the correct tools, can work to repair a broken OS if the hard drive is mountable.[54]

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 halt the system 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 of 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. NT based Windows versions have no true 16-bit support; they contain legacy, 16-bit programs within an emulated sandbox that denies direct hardware access. The 64-bit versions even lack 16-bit support entirely.
  • 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.


Windows Linux Notes
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.[55]

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

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,[57] when the CPU time accounting precision is low. However, Completely Fair Scheduler, now the standard scheduler, addresses this problem.
Memory Management/ Disk Paging Windows NT family (including 2000, XP, Vista, Win7) most commonly employs 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 (if a variable size paging file is specified), which hampers the speed at which the objects can be brought back into memory when they are needed. Windows XP and later can defragment the pagefile, and on NTFS filesystems, intelligently allocate blocks to avoid this problem. Windows can be configured to place the pagefile on a separate disk or partition.[58] However, this is not default behavior, because if the pagefile is on a separate partition, then Windows cannot create a memory dump in the event of a Stop Error. On the NT family, executed programs become part of the paging system (to improve performance). Programs cannot normally access each others address space. It is possible to configure the OS to have no additional paging file.[clarification needed]

The Windows 3.1/95/98/ME family does not have true virtual memory and uses a simpler swapping scheme easily leading to needless swaps and disc fragmentation. Programs on this family can access each other's address space. [59]

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. Linux also allows to adjust "swappiness" e.g. the amount of data it needs to buffer (this is not equivalent to adjusting the virtual memory size). Windows does not support such features. The ideal solution performance-wise is to have the pagefile on its own hard drive, which eliminates both fragmentation and I/O issues.


Personal tools

Served in 2.417 secs.