Comparison of Windows and Linux 916759 225921781 2008-07-16T00:57:53Z Simxp 403937 See Also is for other relevent Wikipedia articles, not OS evanglist advocacy sites masquerading as comparisons... {{for|a broader comparison of closed source and Open Source software|Comparison of open source and closed source}} {{wikify|date=July 2008}} {{Cleanup|date=October 2007}} [[Image:May2008OSchart.png‎|thumb|300px|]] '''Comparison of the [[Microsoft Windows]] and [[Linux]] [[operating system]]''' is a common topic of discussion among their users. Windows is the most prominent [[proprietary software|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.<ref name="FreeGNULinuxDistributions">{{cite web |url = http://www.gnu.org/links/links.html#FreeGNULinuxDistributions |title = Free GNU/Linux distributions |accessdate = 2007-08-07 |author = The GNU Project |authorlink = GNU Project |date= [[2007-07-29]] |work = Links to Other Free Software Sites |quote = 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.}}</ref>) 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 system]]s. Windows [[Market dominance|dominates]] in the [[desktop computer|desktop]] and personal computer markets with about 90% of the desktop market share, and in 2007 accounted for about 66% of all servers sold.<ref>{{cite web | title = Microsoft sees Windows gaining server market share | url = http://www.itnews.com.au/News/71042,microsoft-sees-windows-gaining-server-market-share.aspx | publisher = iTnews | date = [[February 28]] [[2008]] | accessdate = 2008-03-16 }} </ref> In server revenue market share (2007Q4) Windows achieved 36.3% and Linux achieved 12.7%.<ref>{{ cite web | title = Worldwide Server Market Experiences Modest Growth in Fourth Quarter as Market Revenues Reach Seven-Year High in 2007, According to IDC | url = http://www.idc.com/getdoc.jsp?containerId=prUS21114208 | publisher = [[International Data Corporation|IDC]] | date = [[February 27]], [[2008]] | accessdate = 2008-03-08 }}</ref> As of November 2007, Linux powered 85% of the world's most powerful [[supercomputer]]s, compared to Windows' 1.2% <ref>[http://www.top500.org/stats/list/30/osfam Operating system Family share for 11/2007]</ref>. In February 2008, Linux powered five of the ten most reliable internet hosting companies, compared to Windows' two.<ref>{{ cite web | title = Tiscali Italia is the Most Reliable Hosting Company in February 2008 |url=http://news.netcraft.com/archives/2008/03/04/tiscali_italia_is_the_most_reliable_hosting_company_in_february_2008.html | publisher = Netcraft | date = [[March 4]] [[2008]] | accessdate = 2008-03-06 }}</ref> Linux and Windows differ in philosophy, cost, ease of use, versatility, and stability, with each seeking to improve in their perceived weak areas. Comparisons of the two tend to reflect the origins, historic user base and distribution model of each. Typically, some major areas of perceived weaknesses regularly cited have included the poor “out-of-box” usability of the Linux desktop for the mass-market and poor system stability for Windows. Both are areas of rapid development in both fields. [[Free software community|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. == Difficulties in comparing Windows and Linux == Several factors can make it difficult to compare Windows and Linux. * The term “[[Linux]]” can have different meanings. In some cases, it refers only to the [[Kernel (computer science)|system kernel]]; whereas in many other cases, “Linux” refers to a complete graphical desktop [[Linux distribution]]. * Both come in different editions, each with different functionalities (e.g. [[Desktop]], [[Server]], [[Embedded]], [[Multimedia]] Editions). Linux, in particular, has a vast number of distributions, including many that are highly specialized for specific job tasks. There are also vastly differing versions of "Windows". One can say "Windows runs on old computers" ([[Windows 95]]), "Windows has modern multimedia capabilities" ([[Windows Vista]]) and "Windows is a server operating system" ([[Windows Server 2008]]), but whether questionable or not, these assertions don't necessarily apply to the ''same version'' of Windows, thus making it much more difficult to make a "Windows vs. Linux" comparison. * Price and support for both systems differ based on editions, distributors, and OEM products.<ref>{{cite web |url=http://download.microsoft.com/download/f/4/6/f4662425-098f-414b-8052-9f2de33f3b90/G34899_PROC_WLG.PDF |title=Windows Licensing Guide |format=pdf |author=[[Microsoft]]}}</ref> * Major [[Original equipment manufacturer|OEM]] vendors of new computers may also choose to bundle additional useful software in addition to the installed operating system. Additionally, some OEMs receive payment from the vendors of this software, which they may use to reduce the overall price to the buyer. * There are conflicting claims about each operating system from the marketing and research done on the topic. * Microsoft sells copies of Windows under many different licenses (usually in a [[closed source]] fashion, but occasionally in different levels of [[shared source]]). Likewise, most Linux distributions contain some proprietary software when necessary (for example for some [[device drivers]]).<ref name="FreeGNULinuxDistributions" /> == Total cost of ownership == {{see also|Studies related to Microsoft}} <!-- This table needs a little more information before being shown to the world. {{Expand-section|date=February 2007}} {{globalize}} {| class="wikitable" |- valign="top" ! ! Windows ! Linux ! Notes |- valign="top" !Initial purchase |From $45 to $450 per license depending on edition |From $0 to $350 per license depending on distribution and edition | |- valign="top" !Support |From $199 to $7,999 per year<ref>http://www.microsoft.com/windowsserver2003/howtobuy/licensing/pricing.mspx Microsoft Support cost</ref> {{Fact|date=March 2008}} |From $0 to $3,702<ref>Red Hat product support https://www.redhat.com/apps/commerce/</ref> | |- valign="top" !Anti-virus software |From $0 to $100/year per computer. According to an FBI survey, major businesses lose $12 million annually dealing with virus incidents<ref>FBI estimates major companies lose $12 mil annually from viruses. http://www.chattanoogan.com/articles/article_100752.asp</ref> |Not required{{Fact|date=February 2007}} | |} --> In 2004, Microsoft launched a marketing campaign named "[[Get the Facts]]" to encourage users to switch from Linux to [[Windows Server System]].<ref>"[http://www.microsoft.com/windowsserver/facts/default.mspx Get the Facts]", [[Microsoft]]'s Website</ref> 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.<ref name="MS_Whitepaper"> ''[http://www.microsoft.com/windowsserver/facts/analyses/tco.mspx 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 </ref> However, Microsoft's figures are disputed by a variety of organisations, notably [[Novell]] and ''[[The Register]]''.<ref>''[http://www.theregister.co.uk/2004/10/22/linux_v_windows_security/ Windows v Linux security: the real facts]'', [[The Register]], ''[[22 October]] [[2004]]''<br/>''[http://www.levanta.com/linuxstudy/ EMA Study: Get the Truth on Linux Management]'', [[Levanta]] / [[OSDL]], ''February 2006''<br/>''[http://www.novell.com/linux/truth/ Unbending the Truth], [[Novell|Novell, Inc.]]<br/>''[http://www.redhat.com/truthhappens/ Truth Happens]'', [[Red Hat]]</ref> Some websites suggest that some common inaccuracies in Microsoft's figures stem from including figures for the [[Unix]] and [[Solaris (operating system)|Solaris]] operating systems with figures for Linux.<ref name="ZDNet_rebuttal">''[http://techupdate.zdnet.com/techupdate/stories/main/0,14179,2907876,00.html Linux TCO edge: Lower labor costs]'', [[ZDNet]], ''[[3 January]] [[2003]]''</ref> In 2004, The [[United Kingdom|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.<ref>''[http://news.bbc.co.uk/1/hi/technology/3600724.stm Microsoft's Linux ad 'misleading']'', [[BBC News]] website, ''[[26 August]] [[2004]]''</ref> Perhaps the most complete discussion of TCO and other issues comparing Windows and Linux is "Why Open Source Software / Free Software (OSS/FS)? Look at the Numbers!" by David A. Wheeler. [http://www.dwheeler.com/oss_fs_why.html] This is a thorough, 105 pgs. report with 300+ links to source information and studies comparing OSS/FS with proprietary OSes and software, especially Windows. == Desktop == {| class="wikitable" |- valign=top ! width="10%" | ! width="35%" | Windows ! width="35%" | Linux ! width="20%" | Notes |- valign=top !Estimated Desktop Usage Share |As of February 2008, 91.58%<ref name="netapplications">{{cite web |title=Operating System Market Share |work=Market share for browsers, operating systems and search engines |publisher=www.hitslink.com |year=2008 |month=February |url= http://marketshare.hitslink.com/report.aspx?qprid=8&qpmr=100&qpdt=1&qpct=3&qptimeframe=M&qpsp=109&qpnp=1 |accessdate=2008-04-12}}</ref> |As of February 2008, 0.65%<ref name="netapplications" /> |According to Market Share data from [http://marketshare.hitslink.com/ Net Applications] |- valign=top !Pre-installation |Pre-installed by default on almost all new [[personal computer|desktop PCs]] |Pre-installed by default on very few new [[personal computer|desktop PCs]]. However, [[Ubuntu (operating system)|Ubuntu]] is now available on all [[System76]] computers, some [[Dell]] computers. [[SUSE Linux Enterprise Desktop]] is available on some [[Lenovo]] [[ThinkPad]]s,<ref>[http://arstechnica.com/news.ars/post/20070806-lenovo-novell-partner-to-offer-linux-on-the-thinkpad.html Lenovo, Novell partner to offer Linux on the ThinkPad<!-- Bot generated title -->]</ref> and Sears offers PCs with Linspire installed. Recently many more Linux-based low-end consumer laptops have been introduced.<ref>[http://www.informationweek.com/news/showArticle.jhtml?articleID=205604334 Linux PC Models Multiply As Vista Struggles - Linux - InformationWeek<!-- Bot generated title -->]</ref> {{seealso|Comparison of Subnotebooks}} |Microsoft's agreement with vendors to sell only the Windows operating system is being challenged in court by French consumer rights groups.<ref>[http://www.quechoisir.org/Article.jsp;jsessionid=093230D0654272F5243C760F64903592.tomcat-1?id=Ressources:Articles:3FD1BFB60B1DD4C6C125727A005A6785&catcss=IMA201&categorie=NoeudPClassement:EEBD39FA924319E6C1256F0100349092 Logiciels préinstallés Les fabricants en accusation : IMAGE-SON-INFORMATIQUE INFORMATIQUE Logiciel - UFC Que Choisir<!-- Bot generated title -->]</ref> |- valign="top" !Window Managers/[[Desktop environment|Desktop Environment]]s |One available WM per release, parts of which may be modified; system file patching (uxtheme.dll) or third party software such as [[WindowBlinds]] is required for some modification. WM is critically required to operate the system (graphics system failure will render the system unusable);<ref name="NTvsLinux" /><ref name="Comp">{{cite web | title = Linux vs Windows (a comparison) | url = http://www.michaelhorowitz.com/Linux.vs.Windows.html#agui | date = [[June 20]], [[2005]] | accessdate = 2008-03-16}}</ref> remote control not part of original architecture.<ref name="NTvsLinux">{{cite web | title = NT vs. Linux | url = http://windowsitpro.com/article/articleid/8143/nt-vs-linux.html | date = March 2000 | accessdate = 2008-03-16 }}</ref> |[[GNOME]], [[KDE]], [[Enlightenment (X window manager)|Enlightenment]], [[Xfce]], [[Openbox]], [[Fluxbox]], etc. Can be enhanced with [[Beryl (window manager)|Beryl]] or [[Compiz]] or the newer [[Compiz Fusion]] (merge of Compiz/Beryl forks). WM not critical for system operation (reverts to command line operation in case of failure);<ref name="NTvsLinux" /><ref name="Comp" /> remote control implicit in design and protocol.<ref name="NTvsLinux" /> |Different Window managers provide users with a uniquely different method of interacting with the computer, though sometimes at the cost of compatibility. |- valign="top" ![[System console]]s/[[Command line interface]] |The Command Prompt exists for power users. The command line can be used to recover the system if the graphics subsystem fails. A [[Microsoft .NET|.NET]]-based command line environment called [[Windows PowerShell]] has been developed. Its functionality is similar to that provided in Unix-like operating systems. [[Cygwin]] provides a UNIX-like terminal for Windows. |Strongly integrated with system console. Many applications can be scripted through the shell,<ref>{{cite web | title = CLI magic: shell programming | url = http://www.linux.com/feature/113635 | publisher = Linux.com | date = [[March 15]], [[2004]] | accessdate = 2008-03-16}}</ref> there are a lot of [[coreutils|small and specialized utilities]] meant to work together and to integrate with other programs. This is called the toolbox principle. The command line can be used to recover the system if the graphics subsystem fails.<ref name="NTvsLinux" /><ref name="Comp" /> | |} It is very difficult to properly gauge the number of Linux or Windows users as the former are mostly not required to register their copies; additionally, a large number of 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. (Of course, most servers are unlikely to be included in this measurement due to their traditional role as dedicated machines). More estimates are available at [[Usage share of desktop operating systems]]. Both Windows and Linux include [[Shell (computing)|command line interpreter]]s. A command line interpreter, typically displayed in a [[system console]], allows users to tell the computer to perform tasks ranging from the simple (for example, [[Computer file management|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 [[pipe (computing)|piping]], or [[Scripting language|scripting]]. ==Installation== {{Original research|date=May 2008}} {| class="wikitable" |- valign=top |- valign=top ! width="10%" | ! width="35%" | Windows ! width="35%" | Linux ! width="20%" | Notes |- valign=top ! Ease of Install | On Windows Server 2003 and prior, the installation is divided into two stages; the first text-mode, the second graphical.<ref>[http://www.theeldergeek.com/xp_pro_install_-_graphic.htm Clean Install Procedure with Illustrative Screen Captures], The Elder Geek</ref> 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.<ref>{{Citation |last1=Sjouwerman |first1=Stu |last2=Tittel |first2=Ed |author2-link=Ed Tittel |title=Windows NT and Hardware |work=Windows NT Power Toolkit |publication-date=September 1999 |publisher=[[Pearson Education]] (web outtake: [[Microsoft TechNet]]) |ISBN=978-0-73-570922-5 |url=http://www.microsoft.com/technet/archive/ntwrkstn/maintain/operate/hardware.mspx |accessdate=2008-04-12}}</ref> | Varies greatly by distribution. General purpose oriented distributions offer a live CD or GUI installer ([[SuSE]],[[Debian]],[[Pardus (operating system)|Pardus]], [[PCLinuxOS|Pclinuxos]], [[Mandriva Linux|Mandriva]], [[Ubuntu (operating system)|Ubuntu]], [[Fedora (Linux distribution)|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 Linux|Gentoo]]). The system can also be built completely from scratch, directly from source code ([[Linux from Scratch]]). |<ref>http://madpenguin.org/cms/html/47/5937.html "switching to windows"</ref><ref> http://linux.blogweb.de/uploads/winVSubu.pdf "Windows vs. Ubuntu"</ref><ref>[http://361degrees.wordpress.com/2006/06/27/a-comparison-of-ubuntu-606-and-windows-xp/ A comparison of Ubuntu 6.06 and Windows XP « 361degrees<!-- Bot generated title -->]</ref> |- valign="top" ! 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.<ref> In my personal experience as a refurbisher, I have yet to find any version of Windows that will install in under two to four hours. [http://rhosgobel.blogspot.com/2006/06/installing-ubuntu-comparison-of-ubuntu.html Rhosgobel: Radagast's home<!-- Bot generated title -->]</ref><ref> {{cite web |url=http://windowsvistablog.com/blogs/windowsvista/archive/2006/10/02/Windows-Vista-Imaging-and-Installation-Performance.aspx|title=Windows Vista Imaging and Installation Performance|publisher=Microsoft Windows Vista team blog}}</ref> Additional time may be required to install OS updates and drivers. | Differs heavily depending on distribution. Is generally around 20-40 minutes for general-use distributions like Ubuntu.{{Fact|date=March 2008}} Additional time may be required to install OS updates and drivers. However, distributions like Ubuntu, Fedora and many others, once installed, already has most of hardware drivers, as well as the basic software (such as Office, GIMP) the user needs. In case of source based distributions installation may take up days; the result of this is perfectly custom software. | 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. |- valign="top" ![[Device driver|Drivers]] |Often drivers must be installed separately. If not included in install media they must be provided by manufacturer. Most common drivers are available in the Windows install or after a quick Internet update. The process of installing drivers is mostly automated. |Most free drivers available are included in most distributions or can be found in online archives. Some devices (e.g. graphics cards, wireless adapters) do not have open-source drivers available due to licensing issues, but proprietary drivers are available for download from manufacturers or special archives. Some devices allow using Windows drivers. For some devices no usable drivers are available. Most special-purpose drivers must be compiled by the user manually. Time has been invested in centralizing and automating some driver installation through a package manager. | |- valign="top" ! Installation via Live Environments |May be installed through [[WinPE]] and [[BartPE]]. However, only the former is endorsed by Microsoft. |Almost all Linux distributions now have a [[live CD]] that may be used for install.<ref>“The Live CD List” http://www.frozentech.com/content/livecd.php</ref> | |- valign="top" ! Pre-installed software |Some multimedia and home use software ([[Internet Explorer|IE]], [[Windows Media Player|Media Player]], [[Notepad]], [[WordPad]], [[Paint (software)|Paint]]…) plus [[Original equipment manufacturer|OEM]] bundled software. Windows Vista Includes [[IE7]], [[Windows Mail]], [[Windows Media Center]], etc. depending on which edition is purchased. It does not include Office suites or advanced multimedia software. |All main distributions contain numerous programs: multimedia, graphics, internet, office suites, games, system utilities and alternative desktop environments. Some distributions specialise in education, games, or security. Most distributions give users the choice of which bundled programs to install, if any. |Microsoft's methods of bundling software were deemed illegal in the case [[United States v. Microsoft]].<ref>Official court document outlining illegal behavior in Microsoft's practice of bundling software http://www.usdoj.gov/atr/cases/f1700/1763.htm</ref> |- valign="top" !Not pre-installed software |A large pool of both [[proprietary software]] (including [[shareware]] and [[freeware]]) and [[free software]]. The programs usually come with the required libraries and are normally installed easily. Most programs must be individually installed. Deinstallation is equally easy, but components and registry entries can be left behind if a program has been equipped with an older uninstaller. |A large pool of free software and some proprietary software. [[Porting|Ports]] of proprietary Windows software also exist. Using free Windows compatibility layers like [[Wine (software)|Wine]], a large number of Windows software can also be run on Linux. Distribution-included programs may be very easily installed in large batches with dependencies to shared libraries being taken care of. Packaging systems allow easy installation of common/supported programs. Other programs can be installed, but require users to be familiar with the UNIX shell. | |- valign="top" ! Partitioning |Expanding NTFS partitions is possible without problems, and on Vista it is possible to shrink partitions as well. [[Logical Disk Manager|Dynamic Disks]] provide dynamic partitioning. Third party tools are available that have more features than the built-in partitioning tools. |Some file system support resizing partitions without losing data. [[Logical Volume Manager (Linux)|LVM]] and [[Enterprise Volume Management System|EVMS]] provide dynamic partitioning. All Linux distributions have bundled partitioning software such as [[fdisk]] or [[gparted]] | |- valign="top" ! File systems |Natively supported: [[NTFS]], [[File Allocation Table|FAT]] [[ISO 9660]], [[Universal Disk Format|UDF]], and others; 3rd-party drivers available for [[ext2]], [[ext3]], [[reiserfs]], [[HFS]], and others |Natively supported: [[ext2]], [[ext3]], [[ext4]], [[ReiserFS]], [[File Allocation Table|FAT]], [[ISO 9660]], [[Universal Disk Format|UDF]], [[Network File System (protocol)|NFS]], and others; many additional filesystems (including [[NTFS]] using [[NTFS-3g]]) are available using [[Filesystem in Userspace|FUSE]] |Windows can read and write with Ext2 and Ext3 file systems with third-party drivers such as [http://www.fs-driver.org FS-driver] or [http://sourceforge.net/projects/ext2fsd ext2fsd]; and ReiserFS through [http://p-nand-q.com/download/rfstool.html rfstool] and related programs. |- valign="top" !Boot Loader |May boot to multiple operating systems through the [[Windows Vista startup process|Windows Boot Manager]], in Windows Vista and newer; or the Microsoft boot loader, [[NTLDR]], in Windows Server 2003 and prior. Graphical configurations tools are available, such as [[EasyBCD]] for the Windows Boot Manager and [[MSConfig]] for NTLDR. |May boot to multiple operating systems through [[LILO (boot loader)|LILO]] or [[GNU GRUB|GRUB]]. With these, it is possible to choose between multiple installed [[Kernel (computer science)|kernel images]] at boottime. Graphical configuration tools for GRUB are available including KGRUBEditor<ref>[http://www.kde-apps.org/content/show.php?content=75442 KGRUBEditor KDE-Apps.org<!-- Bot generated title -->]</ref> ([[KDE]]) and GrubConf <ref>[http://grubconf.sourceforge.net/ GrubConf - GRUB Graphical Configuration Editor<!-- Bot generated title -->]</ref> ([[GNOME]]). GRUB can also be configured at boottime via the GRUB prompt. |GRUB and LILO also support booting to non-*nix 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. Numerous third-party [[boot manager]]s are available for Windows. |- valign="top" |} Linux distributions were said to be difficult for the average user to install. However distributions like [[ubuntu]] includes graphical package manager which lets you to search for packages and install them graphically([[Adept Package Manager]]). By use of package managers the need of downloading softwares (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.<ref>''[http://www2.linuxjournal.com/article/3604 LUIGUI - Linux/UNIX Independent Group for Usability Information]'', [[Linux Journal]], March 2000</ref> Today, most distributions have simplified the installation and offer a “[[LiveDistro]]” system allowing users to boot fully functional Linux systems directly from a CD or DVD with the option of installing them on the hard drive. The Windows install process, like most general-use Linux distributions, uses a [[wizard (software)|wizard]] to guide users through the install process. == Accessibility and usability == A study released in 2003 by Relevantive AG indicates that “The usability of Linux as a desktop system was judged to be nearly equal to Windows XP”.<ref>''[http://www.linux-usability.de/download/linux_usability_report_en.pdf Linux Usability Study Report]'', Relevantive AG, ''[[13 August]] [[2003]]''</ref> {| class="wikitable" |- valign="top" ! width="10%" | ! width="35%" | Windows ! width="35%" | Linux ! width="20%" | Notes |- valign="top" ! 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).<ref>http://www.actsofvolition.com/archives/2001/december/windowsxprough XP inconsistencies</ref> However, Microsoft continually pushes for consistency between releases with guidelines for interface design. The latest are Windows Vista User Experience guidelines.<ref>[http://msdn2.microsoft.com/en-us/library/aa511258.aspx Windows Vista User Experience Guidelines<!-- Bot generated title -->]</ref> Their focus is on consistency and usability, but with increased concern for safety in new versions. 3rd party applications may or may not follow these guidelines, may have their own guidelines, or may not follow any rules for interface design. |The quality of graphical design varies between desktop environments and distributions. The two biggest desktop environments ([[GNOME]] and [[KDE]]) have clearly defined interface guidelines, which tend to be followed consistently and clearly.<ref>http://usability.kde.org/hig/ KDE human interface guidelines</ref><ref>http://developer.gnome.org/projects/gup/hig/ GNOME HIG</ref> These provide consistency and a high grade of customizability in order to adapt to the needs of the user. Distributions such as [[Ubuntu (operating system)|Ubuntu]], [[SuSE]], [[Fedora (Linux distribution)|Fedora]] or [[Mandriva]] take this one step further, combining well-functioning usability and safety. However, inconsistencies may appear, since GNOME-based programs, following different guidelines, look somewhat different from [[KDE]] programs. 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 (window manager)|Enlightenment/E17]], [[Xfce]]). Some graphical environments are targeted to mouse users only (Fluxbox), others to keyboard users only ([[Ratpoison]]), others to either. |- valign="top" ! Consistency between versions |User interaction with software is usually consistent between versions, releases, and editions. |Consistency can be poor between distributions, versions, window managers/desktop environments, and programs. Software is highly user-customizable, however, and the user may keep the customizations between versions. | |- valign="top" ! 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 toolkit]]s). |Though Windows' [[Graphics Device Interface|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. |- valign="top" ! Customization |Source code may be purchased for modification in ''some'' circumstances (restrictive), or third party tools may create modifications. |All of the kernel source code is freely available for modification. Most other software is free software, too. | |- valign="top" ! Accessibility |colspan="3"| Both Windows and Linux offer accessibility options,<ref>''[http://www.microsoft.com/enable/ Microsoft Accessibility]'', ''[http://accessibility.kde.org/ KDE Accessibility]'', ''[http://developer.gnome.org/projects/gap/ GNOME Accessibility]''</ref> such as [[Contrast (vision)|high contrast]] displays and larger text/icon size, [[text to speech]] and magnifiers. |} == Stability == {| class="wikitable" |- valign="top" ! width="10%" | ! width="35%" | Windows ! width="35%" | Linux ! width="20%" | Notes |- valign="top" ! General stability |Windows variants based on the NT [[Kernel (computer science)|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. <!-- Versions of Windows 2000 or later (2000, XP, 2003, Vista) will only crash completely if there is a hardware or driver issue. In rare cases the desktop GUI subsystem, "explorer.exe" may crash, but after a crash it will restart itself without affecting your running applications. [Blanket generalization known to be false from personal experience. Please reference a statistic to make a claim like this. //This is NOT true. WindowsNT features no instruments to prevent chained code injection, and has multiple options to render system unusable. Explorer is NOT run in separate memory space by default. Windows core - the task manager - can be easily prevented from accessing, thus leaving only restart as option.--> |The kernel inherits the stability of UNIX due to its modular architecture (acknowledged to be stable). Linux terminal emulators and frontend “Window Managers” stabilities vary widely, but are generally stable. Mechanisms to terminate badly behaving applications exist at multiple levels. Because Linux can use a text based system if the graphics system fails,<ref name="NTvsLinux" /><ref name="Comp" /> the graphics system can be easily restarted following a crash without a whole system reboot. |Instability can be caused by poorly written programs, aside from intrinsic OS stability. Software crashes, however, can usually be recovered without restarting the entire operating system, and losing data from other applications. |- valign="top" ! 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]], [[Hewlett-Packard|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. |- valign="top" ! [[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.<!-- Standart program can be easily shutdown or unlocked with unlocker(free)--> Microsoft has its hotpatching<ref>{{cite web |url=http://technet2.microsoft.com/WindowsServer/en/library/e55050fc-22c9-4984-9bae-b8b0527334721033.mspx?mfr=true |title=Using Hotpatching Technology to Reduce Servicing Reboots }}</ref> technology, designed to reduce downtimes. |Linux itself only needs to restart for kernel updates.<ref>{{cite web |url=http://geodsoft.com/opinion/server_comp/reliability/linux.htm |title=Linux, OpenBSD, Windows Server Comparison: Linux Stability |author=GeodSoft }}</ref> 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. "[http://web.mit.edu/ksplice/ Ksplice]" allows the linux kernel to be patched without a reboot | |- valign="top" ! Recovery |In modern, [[Windows NT|NT]]-based versions of Windows, programs that crash may be forcibly ended through the task manager by pressing CTRL+SHIFT+ESC or CTRL+ALT+DEL or through the command line in professional SKUs. Reboots were often required in [[Windows 9x|pre-NT versions (Windows 9x)]]. |All processes except for init and processes in D or Z state may be terminated from the command line. In KDE applications can be closed using CTRL+ALT+ESC or by KSystemGuard by pressing CTRL+ESC. [[Magic SysRq key|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.<ref>{{cite web | title = Windows-to-Linux roadmap: Part 1. Thinking in Linux | url = http://www.ibm.com/developerworks/linux/library/l-roadmap1.html | publisher = IBM developerWorks | date = [[November 11]], [[2003]] | accessdate = 2008-03-17}}</ref><ref>{{cite web | title = The Upgrade Process: Restarting vs Rebooting | url = http://www.hackinglinuxexposed.com/articles/20030409.html | author = Brian Hatch | date = [[April 9]], [[2003]] | accessdate = 2008-03-17}}</ref> 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.<ref>[[List_of_LiveDistros#Rescue_and_Repair_LiveDistros|List of Rescue and Repair LiveDistros]]</ref> |- valign="top" ! 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.<!-- Well-known exploit in RPC service, used by Sasser/Blaster worm, forced NT to automatically shutdown because of this.--> |The Unix equivalent of the Windows blue screen is known as a [[kernel panic]]. The kernel routines that handle panics are usually designed to output an error message to the console, create a memory dump, and then either wait for the system to be restarted or restart automatically. |} For an operating system to be subjectively “stable”, numerous components must operate synchronously. Not all of these components are under the control of OS vendor; while Linux and Windows kernels may be stable, poorly written applications and drivers can hamstring both. Much of stability, then, is the extent to which the operating system is structured to thwart the consequences of bad behavior by third party installations. Much of the reputation Windows has for instability can be traced to Windows 95, 98, and ME, which were notorious for displaying the [[blue screen of death]] (BSOD) upon crashing. Three weaknesses with these particular Windows versions increased the likelihood such a crash would occur: * Full 16-bit compatibility. When memory management of the DOS subsystem failed, it would often prompt a BSOD. Windows NT has no true 16-bit support; it emulates it in a virtual sandbox. The 64 bit versions even lack this emulation. * Direct hardware access. Unlike Windows NT, Windows 9x had no hardware abstraction layer. A program or driver that attempted to access protected memory, or interfaced poorly with the hardware, could cause a BSOD. * Poor [[Dynamically linked library|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. == Performance == {| class="wikitable" |- ! ! Windows ! Linux <!-- Notes --> |- valign="top" ! 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.<ref> http://www.808multimedia.com/winnt/kernel.htm</ref> 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.<ref> [http://technet.microsoft.com/en-us/magazine/cc162494.aspx Inside the Windows Vista Kernel: Part 1], Microsoft Technet</ref> | Linux kernel 2.6 once used a scheduling algorithm favoring interactive processes. Here "interactive" is defined as a process has short bursts of CPU usage rather than long ones. It is said that a process without root privilege can take advantage of this to monopolize the CPU,<ref>{{cite web |url=http://www.cs.huji.ac.il/~dants/papers/Cheat07Security.pdf |title=Secretly Monopolizing the CPU Without Superuser Privileges |author=Dan Tsafrir, Yoav Etsion, Dror G. Feitelson }}</ref> when the CPU time accounting precision is low. However, the new CFS, the completely fair scheduler, addresses this problem. |- valign="top" ! 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.<ref>[http://home.comcast.net/~SupportCD/XPMyths.html XP Myths: Moving the paging file]</ref> 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.<ref>[http://support.microsoft.com/kb/314482/ How to configure paging files for optimization and recovery in Windows XP], Microsoft Help and Support</ref> The ideal solution performance-wise is to have the pagefile on a separate hard drive to the primary one, which eliminates both defragmentation and I/O issues. | Most hard drive installations of Linux utilize a "swap partition", where the disk space allocated for paging is separate from general data, and is used strictly for paging operations. This reduces slowdown due to disk fragmentation from general use. As with Windows, for best performance the swap partition should be placed on a separate hard drive to the primary one. |} == Support == {{Expand|date=March 2007}} {| class="wikitable" |- valign="top" ! width="10%" | ! width="35%" | Windows ! width="35%" | Linux ! width="20%" | Notes |- valign="top" ! 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. |- valign="top" ! Phone support |By Microsoft or OEM. |Red Hat, Canonical, Novell and other major distributors have support available as well. Extensive help and assistance is available in online guides, and in the form of books. | |- valign="top" ! Documentation |A Wealth of information is available free online, or in books, as well as on Microsoft's own support page. |Most documentation is available online, either in FAQ form or Wiki pages on developers websites. Some major distributions have books written by 3rd party authors, mainly for server admins, or application development. |- ! Training |Many [[Information Technology|IT]] courses are written for participants to learn how to use and manage Windows systems and networks. Most computer assistance experts have Windows training and qualifications. | Linux strongly dominates many computing university courses in programming and computer science. Linux diplomas and certificates, however, are rarely offered. Courses for certifications are provided only by some distributions, such as [[Red Hat]] and [[Ubuntu]]. | |- ! Third Party Documentation | As Windows has the majority of the market share, virtually all producers of software and hardware will give Windows specific instructions for the installation and operation of their programs and drivers. | Virtually all products ignore the Linux platform, giving no instructions to install or use software. Indeed, some Linux laptops have shipped with Windows documentation. | |} == Programs == {{Refimprovesect|date=December 2007}} {| class="wikitable" |- valign="top" ! width="10%" | ! width=";35%" | Windows ! width="35%" | Linux ! width="20%" | Notes |- valign="top" ![[Emulation]] |[[Cygwin]] or [[Interix]] and its successor SUA may be used to compile programs dependent on Linux libraries, but neither can be used to run Linux binaries. Whether full [[Application binary interface|ABI]] compatibility for open-source software is actually needed, however, is debatable. | [[Cedega]], [[CrossOver]], and [[Wine (software)|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. | |- valign=top ![[Virtualization]] |[[VMware]], [[VirtualBox]], [[Virtual PC]], [[Virtual Server]], [[Hyper-V]] (only available on [[Windows Server 2008]]), [[Parallels Workstation|Parallels]], [[QEMU]] on new hardware |[[VMware]], [[VirtualBox]], [[Xen]], [[Parallels Workstation|Parallels]], [[Linux-VServer]], [[QEMU]], [[User-mode Linux]], [[OpenVZ]], [[Win4Lin]], [[KVM]] |With virtualization you may run an operating system within another operating system. |- valign=top ![[Package management system]] | Modern versions of Windows rely on the [[Windows Installer]] as their package manager. This registers what components are installed where on the user's system. The Windows package management system depends on software vendors following certain guidelines. However, many applications are still deployed with custom-written or old installers and some install systems didn't yet catch up using the [[Windows Installer]], most popular and notably here [[NSIS]]. Applications are typically installed into the Program Files directory by an executable file. | Most distributions have a package manager, often based upon [[RPM Package Manager|RPM]], [[Advanced Packaging Tool|APT]], or [[Gentoo Linux|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 (program)|aptitude]], [[Synaptic]], [[Portage (software)|Portage]], [[Yet Another Setup Tool|YaST]] and [[Yellow dog Updater, Modified|YUM]]. Though rare, some distributions create their own formats e.g. [[PISI#PiSi package management|Pardus PiSi]] or [[Pacman (package manager)|Pacman]]. Most package managers have a form of package signing usually based on [[Pretty Good Privacy|PGP]] e.g. [[Pretty Good Privacy#OpenPGP|OpenPGP]] for Debian packages. It is also possible to create a GUI installation package not depending of the distributions by using [[Autopackage|Autopackage]] |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. |- valign="top" ! Adding New Programs | Thousands of programs are available for download from many websites and for purchase on CD/DVD in retail shops. Care must be taken to avoid programs that include adware, viruses, and spyware. Programs must be downloaded (or purchased on CD/DVD) and installed individually. | In additions to website downloads, thousands of programs are available from repositories maintained by each distribution and that are free of viruses. Access to the repositories is usually without cost. The package manager automatically handles download and installation of selected packages, and automatically upgrades or patches software when a newer version appears in the repository. For some distributions, however, it's normal not to update the applications released together with the distribution to new versions. In these cases, only security updates are provided.<ref>{{cite web|url=http://user.services.openoffice.org/en/forum/viewtopic.php?f=16&t=68|title=New OpenOffice for Ubuntu}}</ref> | |- valign="top" ! Updates | * Windows Update handles only updates to Microsoft software and can deploy driver updates if present on Windows update site * Some third party software has its own separate update manager * Windows Installer (See Package management system above) does not manage updates | * The Package manager handles updates for software that was installed via the package manager. * Updates generally don't require a system restart |[[Gentoo Linux|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.<ref>{{cite web | title = GoboLinux at a glance | url = http://www.gobolinux.org/?page=at_a_glance | publisher = GoboLinux | accessdate = 2008-03-17}}</ref> |- valign="top" ![[Cross-platform]] (software) | * Many programs are written with Windows specific frameworks. * Source compatibility with some UNIX programs is done via POSIX subsystem (Windows NT and 2000), or Subsystem for UNIX applications (formerly Interix) (2000, XP, 2003, Vista) | * Some programs are written with Linux specific frameworks. * Compatibility between Unix-like operating systems (such as [[BSD Unix]], [[Solaris (operating system)|Solaris]], and [[Mac OS X]]) through various standards, such as the [[POSIX]] thread standard. * [[Wine (software)|Wine]] allows some Windows programs to run on Linux, including graphic-heavy games like "Elder Scrolls IV : Oblivion", although sometimes with some glitches. |Some companies make versions of their products to work on both Windows and Linux. |- valign="top" !Cross-platform (development) | * Many Microsoft libraries have not been ported to other operating systems * Many of Microsofts frameworks can be replaced by counterparts in other operating systems | * The [[GNU toolchain]] has been [[porting|ported]] on Windows, as well as [[GTK]], [[Qt]] and many other libraries. * Many projects already have Windows builds |Software written in cross-platform languages and frameworks is usually easily ported. |- valign="top" ![[Cross-platform]] (hardware) |Windows client and server OS comes both in [[x86]] and [[x64]] editions. [[ARM architecture|ARM]], [[MIPS architecture|MIPS]], [[x86-64]], [[SuperH]] are the target platforms for Windows CE / Windows XP Embedded. [[Personal digital assistant|PDAs]] are the target platform for Windows Mobile. | [[i386]], [[x86-64]], [[PowerPC]] 32/64, [[SPARC]], [[DEC Alpha]], [[ARM architecture|ARM]], [[MIPS architecture|MIPS]], [[PA-RISC family|PA-RISC]], [[IBM eServer zSeries|S390]], [[IA-64]], [[SuperH]] and [[m68k]], and many [[Personal digital assistant|PDAs]] and [[embedded system]]s. | * Historically, [[GNU]] began working on 68000 but always had a strong multiplatform vocation.<ref>Compare “First steps” paragraph in http://www.gnu.org/gnu/thegnuproject.html</ref> * The first version of [[Linux kernel|Linux]]<!-- the kernel --> was developed for the i386. |- valign="top" ! Backwards Compatibility between releases | Has historically been a very high priority.<ref>http://blogs.msdn.com/oldnewthing/archive/2003/10/15/55296.aspx Raymond Chen on Backward compatibility</ref> However, exceptions do exist, even within Microsoft's own applications (particularly with respect to Windows Vista).<ref>{{cite news |last=McLaws |first=Robert |title=The Truth About Visual Studio Support on Windows Vista |work=Robert McLaws: Windows Vista Edition |publisher=www.windows-now.com |date=2006-09-27 |url= http://www.windows-now.com/blogs/robert/archive/2006/09/27/Visual-Studio-Support-in-Windows-Vista.aspx |archiveurl= http://web.archive.org/web/20070209172800/http://www.windows-now.com/blogs/robert/archive/2006/09/27/Visual-Studio-Support-in-Windows-Vista.aspx |archivedate=2006-09-27 |accessdate=2008-04-12}} For example, Windows Vista is not compatible with pre-2005 versions of MS SQL Server</ref> |Programs that use [[Linux Standard Base]] functions will work for at least six years on any LSB-compliant distribution.<ref>[http://www.linux-foundation.org/en/Application_Compatibility Application Compatibility - The Linux Foundation<!-- Bot generated title -->]</ref> Non-LSB frameworks and libraries have other compatibility policies |This refers to the backwards compatibility of the operating system between releases. |- valign="top" ![[Integrated development environment|IDEs]] & [[Compiler]]s |Several commercial IDEs for sale, such as Microsoft's Visual Studio. Multiple free IDEs and compilers, including the [[GNU Compiler Collection]], [[Eclipse (software)|Eclipse]], [[NetBeans]], [[Pelles C]], [[Local C compiler|lcc32]], [[Borland C++]], [[Microsoft Visual Studio Express|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.<ref>http://www.pgroup.com/gindex.htm</ref><ref>[http://www.polyhedron.com/compare0html Polyhedron Software | Home<!-- Bot generated title -->]</ref> Multiple free IDEs and compilers, the most common of which are often included in [[Linux distribution|distribution]]s<ref>''[http://www.debian.org/doc/FAQ/ch-software.en.html Number of Debian Packages]''</ref>; including the [[GNU Compiler Collection]], [[Eclipse (software)|Eclipse]], [[NetBeans]], [[Mono (software)|Mono]], [[MonoDevelop]], [[Geany]], [[Anjuta]], [[KDevelop]], [[Free Pascal]], [[OpenLDev]] |} Linux distributions come with a great deal of software which can be installed for free, with an especially large collection of [[computer programming]] software.<ref>''[http://packages.debian.org Debian Packages]''</ref> [[Debian]] comes with more than 18,000 software packages.<ref>''[http://www.debian.org/doc/FAQ/ch-software.en.html Number of Debian Packages]''</ref> Microsoft has had a longstanding emphasis on backwards compatibility.<ref>http://blogs.msdn.com/oldnewthing/archive/2003/10/15/55296.aspx Raymond Chen on Backward compatibility</ref> In general, the [[Win32|Windows API]] is consistent over time{{Fact|date=February 2007}}; 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<ref>http://blogs.techrepublic.com.com/Ou/?p=325 “Vista will ship with thousands of application shims to accommodate legacy applications”</ref> ensure that compatibility with old applications remains very high.<ref>{{Cite web |author=Microsoft |authorlink=Microsoft |title=Application Compatibility Cookbook |work=The Windows Vista Developer Story |publisher=[[Microsoft Developer Network]] |year=2007 |month=April |url= http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnlong/html/AppComp.asp |accessdate=2008-04-12}}</ref> === Gaming === A major attraction of Windows is the library of [[Computer and video games|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 (software)|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.{{Fact|date=December 2007}} 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.<ref>{{cite web |url=http://wiki.winehq.org/BenchMark-0.9.5 |title=Benchmark tests for WINE |author=[[Wine (software)|Wine]] Wiki }}</ref> There are notable exceptions, such as [[id Software]]'s ''[[Doom (video game)|Doom]]'' and [[Quake (series)|''Quake'' series]]. When a developer chooses to write graphics code in OpenGL instead of DirectX, Linux ports become much easier. Recently, [[virtual machine]]s such as [[VMware]] Workstation 5.0 have added support for accelerated 3D graphics. <!--"This allows games to run more stably than a [[compatibility layer]], but at the cost of performance." - this is bullshit! --> This provides much higher framerates at no performance cost. There are also numerous Open Source games designed first for Linux.<ref>{{cite web |url=http://packages.debian.org/stable/games/ |title=List of Games for Debian |author=[[Debian]] }}</ref> While most of these are small games like ''[[Kolf (computer game)|Kolf]]'' or ''[[Pingus (video game)|Pingus]]'', there are also bigger games, such as [[Nexuiz]] and [[Freeciv]]. Many have been [[Porting|ported]] to work on Windows as well. == Security == To determine what constitutes secure software, working backwards from insecurity is illuminative. The ideal software to encourage the creation of malware has several characteristics. It should be: * Widely used, to maximize the number of those who could be infected, and the likelihood that infected systems will contact others able to be infected * Slowly patched, to maximize the time the malware remains effective, and minimize development effort for new malware * Monolithic with no compartmentalization of components, to maximize the damage malware can do To discourage the creation of malware and reduce its impact, software should therefore have a small user base, rapid updates to neutralize new threats, and a compartmentalized structure that isolates damaged sections. Compartmentalization is achieved by separating user and root privileges. Prior to Windows Vista, almost all Windows users were given a root account by default because lesser accounts were overly restrictive for most users. Linux user account tiers have historically allowed greater control, precluding the need for all users to have root access. Without root, it becomes much more difficult for malware to spread. {| class="wikitable" |- valign="top" ! width="10%" | ! width="30%" | Windows ! width="30%" | Linux ! width="30%" | Notes |- valign="top" ! [[Malware]] |According to [[Kaspersky Lab]], more than 11,000 malware programs for Windows were discovered in the second half of 2005.<ref name="Kaspersky2005MalwareReport">[http://www.internetnews.com/dev-news/article.php/3601946 InternetNews Realtime IT News – Linux Malware On The Rise<!-- Bot generated title -->]</ref> [[Botnets]] - networks of infected computers controlled by malicious persons - with more than one million computers have been witnessed.<ref>[http://www.techweb.com/wire/security/172303160 Dutch Botnet Suspects Ran 1.5 Million Machines - Security Technology News by TechWeb<!-- Bot generated title -->]</ref> Users are advised to install and run anti-malware programs. |More than 800 pieces of [[Linux malware]] have been discovered.<ref name="Kaspersky2005MalwareReport"/> Some malware has propagated through the Internet.<ref>[http://www.news.com/New-worm-targets-Linux-systems/2100-7349_3-5938475.html New worm targets Linux systems - CNET News.com<!-- Bot generated title -->]</ref> | |- valign="top" ! Open vs. Closed |Claims its platform is more secure because of a comprehensive approach to security using the [[Trustworthy Computing Security Development Lifecycle|Security Development Lifecycle]].<ref>{{cite web |url=http://msdn.microsoft.com/msdnmag/issues/05/11/SDL/ |title=How Do They Do It? A Look Inside the Security Development Lifecycle at Microsoft -- MSDN Magazine, November 2005 }}</ref><ref>{{cite web |url=http://www.microsoft.com/windowsserver/compare/compare_linux.mspx |title=Compare Windows to Red Hat }}</ref> However, due to the nature of closed source, only company programmers can fix bugs. |Claims its platform is more secure because all of its code is reviewed by so many people that bugs are detected (referred to as [[Linus's law]]). |Microsoft claims that Windows Vista is more secure than other operating systems.<ref>{{cite web |url=http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9014080&pageNumber=2 |title=Microsoft issues Vista security scorecard, gives itself an A-plus }}</ref> However, security vulnerabilities have been found in Windows Vista.<ref>{{cite web |url=http://www.nytimes.com/2006/12/25/technology/25vista.html?ex=1324702800&en=49a6ffcc2da87302&ei=5090 |title=Flaws Are Detected in Microsoft's Vista }}</ref> |- valign="top" ! Response speed |Claims closed source offers a faster and more effective response to security issues,<ref>{{cite web |url=http://download.microsoft.com/download/9/c/7/9c793b76-9eec-4081-98ef-f1d0ebfffe9d/LinuxWindowsSecurity.pdf |title=Forrester Report into relative security of Linux and Windows |author=[[Forrester Research]] }}</ref> though critical bug fixes are only released once a month after extensive programming and testing<ref>{{cite web |url=http://searchwinit.techtarget.com/columnItem/0,294698,sid1_gci1016130,00.html |title=Claims Open Source offers a faster and more effective response to security issues}}</ref><ref>{{cite web |url=http://www.theregister.co.uk/security/security_report_windows_vs_linux/ |title=Security Report: Windows vs Linux (Rebuttal to the Forrester Report) |author=[[The Register]] |date=[[2004-10-22]] }}</ref> and certain bugs have been known to go unpatched for months. |Bugs can be fixed and rolled out within a day of being reported, though usually it takes a few weeks before the patch is available on all distributions. |- valign="top" ! User Accounts |In [[Windows Vista]], all logged in sessions (even for those of "administrator" users) run with standard user permissions, preventing malicious programs from gaining total control of the system. Prior versions of Windows would assign administrator status to the first user account created during the setup process. The majority of users did not change to an account type with fewer rights{{Fact|date=March 2008}}, meaning that malicious programs would have full control over the system. |Users typically run as limited accounts{{Fact|date=March 2008}}, having created both administrator and user accounts during install, preventing malicious programs from gaining total control of the system. |A malicious program executed under a limited account in both Linux and Windows is limited to the users' data. |} === Permissions === Both [[Windows NT]]-based systems and [[Linux]] support permissions on their [[filesystem]]s, except for [[File Allocation Table|FAT]] which has no permission support. ==== Linux and Unix-like systems ==== [[Image:Bash Properties.png|thumb|right|[[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.<ref name="LinuxFilesystemPermissions">[http://students.cs.byu.edu/~cs235ta/fall2005/help/security.php Security on a Linux file system], retrieved [[January 19]], [[2007]].</ref> [[Access Control List]]s are available on some filesystems, which extends the traditional Unix-like permissions system. Security patches like [[SELinux]] and [[PaX]] add [[Role-Based Access Control]]s, which add even finer-grained controls over which users and programs can access certain resources or perform certain operations. Some distributions, such as [[Fedora Core|Fedora]], [[CentOS]], and [[Red Hat Enterprise Linux|Red Hat]] use SELinux out of the box, although most do not.<ref>Red Hat discusses RHEL's inclusion of SELinux: [http://www.redhat.com/magazine/006apr05/features/selinux/] A wiki devoted to SELinux in Fedora:[http://fedoraproject.org/wiki/SELinux] A review of CentOS hosted at linux.com: [http://distrocenter.linux.com/article.pl?sid=05/05/03/1548207&tid=127]</ref> Most Linux distributions provide different user accounts for the various [[daemon (computer software)|daemons]].<ref>For instance see this paragraph in [[Debian]] Policy [http://www.debian.org/doc/debian-policy/ch-files.html#s10.9] (a better citation is welcome)</ref> 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 [[Superuser|root]] account, using tools such as [[su (Unix)|su]] and [[sudo]]. ==== Windows ==== [[Image:NTPermissions.png|thumb|right|[[File system permissions]] on a [[Windows Vista]] system.]] Windows NT uses [[NTFS]]-based [[Access Control List]]s to administer permissions, using [[Token (Windows NT architecture)|tokens]].<ref>{{cite web |url=http://technet.microsoft.com/en-us/library/bb457115.aspx |publisher=Microsoft Technet |title=Managing Authorization and Access Control}}</ref> On [[Windows XP]] and prior versions, most home users still ran all of their software with [[Superuser#Windows NT|Administrator accounts]], as this is the default setup upon installation. The existence of software that would not run under limited accounts and the cumbersome runas mechanism forced many users to use administrative accounts. This gives users full read and write access to all [[Computer file|file]]s on the filesystem. [[Windows Vista]] changes this<ref>Microsoft describes in detail the steps taken to combat this in a TechNet bulletin. [http://technet.microsoft.com/en-us/windowsvista/aa905073.aspx]</ref> 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 (Windows NT architecture)|token]] containing only the most basic privileges is assigned. In this way, the new logon session is incapable of making changes that would affect the entire system. When logging in as a user in the Administrators group, two separate tokens are assigned. The first token contains all privileges typically awarded to an administrator, and the second is a restricted token similar to what a standard user would receive. User applications, including the [[Windows Shell]], are then started with the restricted token, resulting in a reduced privilege environment even under an Administrator account. When an application requests higher privileges or "Run as administrator" is clicked, UAC will prompt for confirmation and, if consent is given, start the process using the unrestricted token.<ref name="kennykerr">{{cite web |url=http://weblogs.asp.net/kennykerr/archive/2006/09/29/Windows-Vista-for-Developers-_1320_-Part-4-_1320_-User-Account-Control.aspx |title=Windows Vista for Developers – Part 4 – User Account Control |date=2006-09-29 |accessdate=2007-03-15 |author=Kenny Kerr }}</ref> For more information on the differences between the Linux [[su (Unix)|su]]/[[sudo]] approach and Vista's [[User Account Control]], see [[Comparison of privilege authorization features]]. ==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. == See also == {{portal|Free software|Free Software Portal Logo.svg}} {{Portal|Microsoft}} * [[Comparison of open source and closed source]] * [[Comparison of operating systems]] * [[Comparison of computer shells]] ==References== {{reflist|2}} {{Linux}} [[Category:Linux]] [[Category:Microsoft Windows]] [[es:Comparación de Windows y Linux]] [[it:Comparazione tra Microsoft Windows e GNU/Linux]] [[pl:Porównanie Windows i Linux]] [[ru:Сравнение Microsoft Windows и GNU/Linux]] [[zh:微軟視窗與Linux的比較]]