Free and open source software (FOSS) is ubiquitous nowadays, with the GNU/Linux operating system making particularly big strides. This article makes some observations and speculations about the reasons that FOSS is increasingly preferred over proprietary systems such as Windows.
A few statistics to establish the situation I’ll be commenting on:
- Android (based on Linux) has surpassed Windows as the world’s most popular operating system as of April 2023. This achievement is attributed to the popularity of mobile devices, although Windows still dominates desktop and laptop systems. Android itself is open source, although Google strictly controls development for Google-based mobile devices.
- Linux is also the most popular guest operating system in the cloud. (Cloud hardware runs host operating systems, on which clients run their systems as guests.) Four years ago, tech journalist Steven Vaughan-Nichols reported that even Microsoft’s own Azure cloud service was running more Linux guests than Windows guests.
- The embedded space is even more lopsided. Here, Windows and macOS systems are not even considered because of their heavy desktop-suited footprints. For embedded systems, Linux competes with a few dedicated embedded operating systems, many of which are also open source.
- Vaughan-Nichols also reports that by 2015, 96.3% of the top one million web servers were running Linux.
- All of the world’s top 500 supercomputers run Linux.
Therefore, the spread of Linux is truly impressive. It rules the smallest footprints (embedded systems, although Linux demands more resources than some dedicated embedded operating systems) and the largest (supercomputers). Now let’s think about why.
Operating systems are complex nuts to crack
A modern operating system has a lot to do, and the conflicting demands on it make it one of the most complex pieces of software we have.
Ideally, the system would handle small jobs quickly while allowing big, batch jobs to run without interruption. The system would recognize different types of hardware interrupts and react quickly to interrupts that call for a fast response, whether they’re user keyclicks or alerts from overheating factory equipment.
The system must direct inputs from tens or thousands of network connections to the right processes, which may start up and shut down unexpectedly. It must juggle four, eight, or more hardware cores, figuring out when to replace a process with another and clear the cache.
As operating systems get older, they have to deal with the legacies of earlier versions. For instance, Microsoft’s NT version of Windows (at least for a time) had to handle programs written to an obsolete Intel architecture. In the case of Linux, developers have to honor POSIX standards and maintain many old system calls from Unix and BSD.
I could go on, but instead I’ll direct you to sites such as LWN.net that discuss kernel development in mind-numbing detail.
Linux is an unusually tunable operating system. Administrators don’t have to alter its code (although they could, of course, because it’s free software); instead they can set hundreds of configuration variables to alter the kinds of parameters, and remove services and libraries to improve security and reduce the operating systems’ footprint. This flexibility endears Linux to administrators of data centers.
There’s no money in operating systems anymore, largely because of the success of Linux. So Apple, Microsoft, and all the companies that used to market their own versions of Unix (a few still do) would love to save their money for sexier investments, which nowadays include generative AI, cloud offerings, quantum computing, collaboration, and security.
Apple has already taken advantage of the open source dividend, by basing their proprietary operating systems for both macOS and iOS on versions of the BSD operating system. Microsoft is sticking with Windows for now, but contributes enormous amounts of money and research time to Linux.
True, Windows is still the most popular operating system on personal computers, but most desktop and laptop applications run over the web. As we’ve seen, the most popular operating system for mobile devices is the Linux-based Android.
Many observers predict that the time is not far off when supporting Windows will be too expensive for Microsoft to find it worthwhile. The leading minds at Microsoft focus more on cloud offerings, refining AI for their Bing search engine, and supporting professional collaboration with applications that revolve around Microsoft Teams.
Get ahead of the starting line as a developer
The days are fading when Windows was the system to develop on first and foremost. As mentioned in the previous section, developers will continue to target Windows for applications that run natively on PCs. But in the areas of greatest growth—web, mobile, commercial, scientific, and embedded development—you’ll generally find GNU/Linux.
On the Web, you worry very little about the operating system (in fact, you have to abstract away from the OS as much as you can). The JavaScript and PHP languages take up your attention.
For mobile devices, you concentrate on Kotlin for Android (perhaps with some attention to old Java programs) and on Swift for iOS.
Embedded systems also often run on Linux, because it can be stripped down to a lightweight kernel with minimal supporting libraries and programs. Devices for which Linux is still too heavyweight use a variety of competing operating systems developed specifically for embedded use.
Commercial and scientific applications run in data centers that, as we have seen, increasingly run on Linux. Python is the preferred programming language in science.
The developers who work on tools and applications for managing data centers are familiar with Linux, and often run Linux on their personal systems so that they can switch smoothly between their personal environment and the corporate data center. There is even progress on providing video games for Linux, partly supported by the Linux-based SteamOS operating system.
Thus, popular tools and languages are developed on Linux and then ported to other operating systems. It follows that these operating systems lag behind Linux in supporting new versions and getting bug fixes.
Developers also tend to like Apple computers, and some use Windows PCs. But Apples and Windows systems introduce an extra level of friction when trying to develop programs for commercial or scientific purposes, because the target operating system is likely to be Linux.
No struggle with licenses
Proprietary operating systems include a great deal of technical and logistical overhead to ensure that the operating system vendor gets paid. This overhead is a drag on system use, from installation through long-term maintenance. Vendors nowadays have special licensing for virtual machines, but these still add cost and overhead.
I won’t focus here on the cost of licensing a proprietary operating system, because it is a small part of most computing expenses and because companies who use open source software still have associated expenses such as support. In other words, free software is not cost-free. So I’ll focus instead on the logistical burden of proprietary licenses.
Anyone who has installed proprietary software on their personal systems knows the frustration of entering twenty or thirty random characters to assure the installation process that they have a valid license.
When you want to install a new version of the software or re-install the software on a new computer, you might have to twist yourself into contortions to remove the old version or make sure only one version is running at a time.
Institutions with group licenses have to run a dedicated licensing server to monitor all the systems (a potential risk to privacy and corporate secrets) and ensure that staff use of the software matches what the license allows.
In short, proprietary software creates a pain in a sensitive part of the body for users and administrators, above and beyond the educational and logistical requirements of the software itself.
Linux, in contrast, makes it easy to scale up and down, add new users or systems, and orchestrate the start-up and shut-down of virtual systems. The lack of intrusive licensing makes it the first choice for data centers.
The advantages of Linux make it more attractive over time
In this article, I’ve touched on many trends in modern computing: cloud offerings, expanded data centers, the move of applications to the Web or to mobile and embedded devices, and more. All these trends reduce the appeal of proprietary operating systems over time and increase the appeal of Linux.
Although the progress of GNU/Linux on the desktop is slow, the dominance of this operating system in other contexts will drive developers to use Linux and write applications for it, more and more. If you work for a large company with a data center or infrastructure in the cloud, it’s already in your interest to become familiar with Linux. Even if you’re an individual computer user, this is also a good time to take a look at it.
Source: lpi.org
0 comments:
Post a Comment