Linux vs. Windows: What’s the Difference?
Traducciones al EspañolEstamos traduciendo nuestros guías y tutoriales al Español. Es posible que usted esté viendo una traducción generada automáticamente. Estamos trabajando con traductores profesionales para verificar las traducciones de nuestro sitio web. Este proyecto es un trabajo en curso.
Users, system administrators, developers, and system architects debate the question of whether Windows or Linux is better for any given purpose. The answers are well-reasoned, full of prejudice, and usually arrive from practical experience. This guide covers the differences between Linux and Windows operating systems and servers. It primarily focuses on the areas of differences between desktops, licensing models, web service technology, developer support, and more.
A History of Windows and Linux
The difference between Linux and Windows begins with their history and evolution. At one time, Windows was the dominant desktop operating system, in an era where the desktop was the context to most computing. The advent of Local area networks (LANs), the Internet, and the World Wide Web influenced the evolution of Windows.
Rather than being an MS-DOS application, Microsoft Windows 95/98/ME eventually became an operating system when Windows NT arrived. Windows was molded from a desktop operating system into a server operating system, which led to a high degree of common codebase for desktop and server versions.
Linus Torvalds, in contrast, developed Linux as an experiment based on Minix. Minix was a variant of the server operating system, Unix.
Torvalds paired his operating system kernel together with free and open source software (FOSS) provided by the volunteers behind the GNU software utilities. Each distribution of Linux was differentiated by their software contents. Linux later added more user-focused applications, graphical user interfaces, and a branch of Linux, named Android. Android now dominates the smartphone world.
Windows moved away from the DOS command line use of MS-DOS, and Linux slowly added a graphical user interface (GUI), usually as an option presented in various distributions. Windows gained considerable ground for desktop users as the Windows GUI and the number of applications built for it grew and gained acceptance. Windows Desktop versions still statistically dominate world desktop computing.
Windows vs. Linux: Desktops
Today, Microsoft Windows dominates business desktop and laptop computing, with Apple close behind, and Linux lagging in third place. Microsoft has widespread corporate/business use market share based on historical dominance coupled with varied business systems administration software and office applications. These applications and their administration are turning towards cloud infrastructure, largely dependent on Microsoft’s own Azure cloud.
Linux desktops permit cloud use, and are focused on client-side computing resources. Popular applications that look and feel like Office, do not need hosting or licensing costs, and retain large compatibility with dominant Microsoft offerings.
Business use of Linux on the desktop can authenticate to Microsoft directory structure resources (Active Directory authentication via SAMBA). Linux lacks variety in specific areas of application support, but only rarely is there no FOSS-equivalent to a popular genre of Microsoft desktop application.
Microsoft also ties security to a Trusted Platform Module (TPM) hardware module and the Prism chipset that serves as a core moderator of cryptography and elements of security authentication. Numerous encryption and authorization features must have the TPM hardware available in desktop and notebook resources.
Linux desktops use alternative encryption methods for files, and a variety of security authentication schemes. Frequently, they use multi-factor authentication devices, like the OAUTH and FIDO2 devices, such as Yubikeys from Yubico.
Licensing Differences Between Linux and Windows
When it comes to licensing and comparing Linux vs Windows, Linux wins for simplicity and zero cost, although support is additional. Licensing in Linux is vastly simpler– it’s free, subject to the terms of the GNU General Public License (GPL). By contrast, Windows licensing can be complex. Each version also has gradients of feature locks and a purchase gradient tied to its Edition. Edition variants include Starter, Home, Pro, Enterprise, and Educational in both generic and OEM-specific licensing schemes. The cost of each license is buried into the cost of an OEM license through purchase or lease of a desktop, notebook, or device.
For decades, most desktops arrived with a Windows license, but only recently has Linux been an available option on desktop and notebook hardware. It’s now offered by the top-tier desktop manufacturers, and is supported and issued with Linux and apps onboard.
Microsoft Windows does not publish the source to the operating system kernel, or most of its utilities, and accompanying apps. Modifying them must be done at the machine code level, or they must be attached via Microsoft’s published application programming interfaces (APIs). Where feasible, API compatibility is offered for communications tasks like web browsing, reading email, transferring files, and Internet tasks.
Evolving GUIs: Linux vs. Microsoft
Most GUIs find their origin in the Smalltalk programming language, along with Windows GUI, macOS, and XWindows roots. In the race between Windows and Linux, Windows continues to improve its GUI software, and developers are familiar with Windows GUI programming. Microsoft makes up for scripting and macro execution by adapting its PowerShell language and APIs to match the rich scripting infrastructure in Unix variants, in this case, Linux.
Linux functions on 32-64 bit platforms and is less captive to different hardware platforms, providing consistency in GUI and compatibility across a wide variety of desktop hardware, including Intel, AMD, ARM, RISC-V, and other families. Older Linux versions lack many of the applications that made Windows popular. This is a problem now largely solved. Graphics, video editing, CAD, and other applications can be found on Linux using various GUIs.
Today, it’s unusual to find a desktop or server platform that can’t run either Windows or a Linux distribution, interchangeably, although Microsoft deprecates system compatibility far more frequently than Linux distributions.
Linux does not have a hardware compatibility mandate for drivers, and until recently, few hardware manufacturers felt the need to develop hardware drivers for a small population of Linux desktop users. Random hardware incompatibility issues dogged Linux on the desktop until the late 2010s. Peripherals vendors initially wrote drivers for their hardware for Windows and perhaps macOS, with Linux as an afterthought, but this trend no longer continues.
Linux is a kernel and set of apps in a distribution, and there is no central command or business initiative that drives hardware compatibility. Instead, several Linux distribution makers and vendors, use Red Hat or Debian kernel stream versions of Linux to build desktop compatibility, and spearhead driver development for the desktop market. These include Fedora, Alma, and SUSE. Distributions built atop Debian, include Ubuntu, Linux Mint, and several others.
Although Linux users have been waiting for the “Year of the Linux Desktop”, Microsoft continues to dominate with Windows, despite the licensing costs, foibles, and emblematic failures.
Web Server Technologies: Windows vs. Linux
Linux dominates Windows when it comes to web services, thanks to the success of the Apache web server, the Docker container runtime, the Kubernetes container orchestration system, and WordPress publishing platform.
Web hosting and other internet services are changing. Microsoft server editions, which can be expensive, host both non-Microsoft web server products as well as its own products. Microsoft attempts to make its offerings including client-side browsers, browser support, web services programming, and hosting models, highly proprietary.
Linux dominates web services partially because of the LAMP stack (Linux, Apache, MySQL, and Perl/PHP). Today, the LAMP stack and variants are a systematic, highly-deployed, go-to development stack. Many of the word’s web applications use variants of the LAMP stack to server their content to the Internet.
Both Apache and [NGINX web servers] dominate the world-wide web, far eclipsing Microsoft’s Internet Information Server/IIS. Both Apache and NGINX FOSS web servers run freely on Windows Server platform, and do so at a highly-scalable and license-cost-free model.
When compared to Linux’s web services, Microsoft’s does not effectively compete. Depending on the licensing situation with Microsoft, web services hosting is often done on FOSS platforms, principally but not exclusively, on Linux for its nominal cost. Although code is free, support is contracted or self-sourced. Microsoft attempts to compete with this trend with its own cloud hosting platform capable of using its Active Directory services.
When considering Linux vs Windows in the domain of web services and development, Linux wins. Linux statistically has a dominant number of hosted web installations utilizing Apache or NGINX web servers.
Developers: Linux vs. Windows
There is an aphorism that Windows is a developer’s day job, and at night, moonlighting combines Linux and FOSS development. Microsoft now supports Linux development environments with Virtual Machines and desktop guest services.
Microsoft developer services target platforms for developers including desktops, servers, mainframes, IoT, smartphones, and tablets. Although ports to certain ARM configurations exist, Microsoft Windows primarily ports to numerous IoT platforms and families, as well as OEM service platforms. These are statistically a small amount and often captive to AMD and Intel CPU families and chipsets.
By contrast, Linux supports kernel ports to IBM Mainframes, RISC-V, updates over long lifecycles to older Intel/AMD platforms. It also ports to SCADA platforms, and industrial configurations.
Microsoft’s developer network is huge. It supports many aging developer frameworks, subject to current hardware compatibility with the Windows current OS version. The number of APIs in support has meant that Microsoft inadvertently breaks code during updates, patches, and fixes that cannot be tested across the numerous platforms that it supports.
Microsoft’s internationalization of language support is strong, but because Linux has worldwide development support, porting to target language families through character set support has been part of the Linux experience longer than it has been for Microsoft.
The most popular Linux distributions have strong documentation to support developers and provide internationalization and multilingual support. Leading Linux distributions, use unique patch, fix, and update software models, which are largely interoperable between distributions.These distributions include Red Hat, SUSE, and Ubuntu. Microsoft provides limited Ubuntu support. Ubuntu can live inside a Windows sandbox, and is progressively interactive with Windows resources.
Linux vs Windows programming language comparison finds Linux leading across multiple languages and language frameworks. Programming language support in Microsoft’s Visual Studio traditionally supported only Windows hosts as targets until recently. Visual Studio is now ported to Linux, and native Linux language support is gaining wide acceptance. Because of its lightweight OS payload, Linux is also a strong choice fro virtualized hosting and cloud development. Many language and development frameworks are offered on Linux environments, because so much web application development takes place on Linux, rather than Windows.
In the cloud, there are two camps. The first camp uses Microsoft and Azure where Windows and Linux support is strong. The second camp uses Linux-based hosting. Microsoft Windows hosting is rarer primarily because of the Windows OS payload size, and its cost.
Windows and Linux Process Sandboxing
Keeping processes from interfering with each other, or breaking security models is important. In early days, application sandboxing chiefly took place on Solaris, before the concepts were ported to Linux. Linux now leads Windows in process sandboxing methods.
Virtual Machines (VMs), which are multiple concurrent instantiations of an OS within a single server, evolved to help partition Windows applications. This was costly, and a branch of server computing emerged where server farms containing virtual machine instances became popular for efficiency, but costly for licensing.
Windows servers were once tied one-to-a-physical server, but OS virtualization enabled numerous discrete licenses to be hosted within a single server hardware host platform. VMware and others found methods to optimize server licenses and applications instances to squeeze the maximum amount of work from hardware platforms to suit changing needs. Microsoft developed its own virtualization methods.
Application security and resource controls, or application containers advanced very quickly under first Solaris, then BSD and Linux. Containers, or the sandboxing of application services platforms, is popular for its ability to package and rapidly scale workflows, especially using web-based technologies. The success is mostly due to Docker, a packaging and communications resource allocation methodology. Microsoft ported the concept to Windows server, where it didn’t take hold.
Highly extensible farms of Docker-packaged applications are managed by orchestration, and the Google model of Kubernetes is extremely popular as an orchestration platform for services packaging, deployment, and life-cycle management. When considering Linux vs Windows, Linux wins the battle of rapid, low-cost extensibility. Containers on Linux are not as expensive as discrete instances of virtualized Windows licenses, and their larger, expensive payloads.
Similarities Between Windows and Linux
Both platforms have powerful command line utilities to control desktops, servers, networking, storage, and file systems. These utilities can be executed individually, or through batch or shell-scripting languages.
Microsoft does little to support external operating system connectivity except through browsers, and only offers the barest Unix or Mac support. Linux is the reverse of this policy. Linux can connect to Windows proprietary extensions of directory services, its Active Directory, through FOSS support from the SAMBA project. As both Linux and macOS are branches of the Unix tree, Linux support for macOS and vice-versa is strong. Microsoft and Linux connectivity today are comparatively equal although Microsoft’s halting support of other platforms caused a loss in the battle between Linux vs Windows.
Microsoft has finally enabled both Linux and macOS to use its proprietary filesystem, NTFS. Both Linux and macOS use a variety of host and target-based filesystems. macOS is free, but its features are largely dedicated to Apple-specific hardware. Linux distributions take pride in working across a wide variety of platforms, without the proprietary chipset support required by Microsoft Windows.
Linux vs Windows: Which One is Better?
Microsoft’s closed-source model means that its source code cannot be scrutinized or modified by outside developers. While Linux’s open source model means that developers can review and improve a distributions source code. Linux possesses a significant advantage over Windows because of its open source code. Microsoft is growing in its support of open models, but it’s still largely based on proprietary licensing, closed source, and closed model licensing.
Linux’s use cases and connectivity options are publicly published. So are its applications, with few exceptions. Linux distributions remain free of cost, and like Windows code, is patched/updated/fixed on an ongoing basis. Some are patched on a rolling basis, rather than every thirty days, similarly to Microsoft’s policy. There are, of course, paid Linux support options too. Many Windows users fear the monthly Patch Tuesday for its unknown consequences when updates are applied.
Many eyes on code increases code quality, the rapidness of bug fixes, security patches, and the ability to mate applications together safely. This is an aspect of Linux operating systems. However, like most things related to computing and web services, the best option between Windows and Linux largely depends on your particular use case and the type of IT resources that you have available.
This page was originally published on