1.6 Operating Systems

Operating systems are software systems that make using computers more convenient for users, application developers and system administrators. They provide services that allow each application to execute safely, efficiently and concurrently with other applications. The software that contains the core components of the operating system is called the kernel. Linux, Windows and macOS are popular desktop computer operating systems—you can use any of these with this book. The most popular mobile operating systems used in smartphones and tablets are Google’s Android and Apple’s iOS.

Windows—A Proprietary Operating System

In the mid-1980s, Microsoft developed the Windows operating system, consisting of a graphical user interface built on top of DOS (Disk Operating System)—an enormously popular personal-computer operating system that users interacted with by typing commands. Windows 10 is Microsoft’s latest operating system—it includes the Cortana personal assistant for voice interactions. Windows is a proprietary operating system—it’s controlled by Microsoft exclusively. Windows is by far the world’s most widely used desktop operating system.

Linux—An Open-Source Operating System

The Linux operating system is among the greatest successes of the open-source movement. Open-source software departs from the proprietary software development style that dominated software’s early years. With open-source development, individuals and companies contribute their efforts in developing, maintaining and evolving software in exchange for the right to use that software for their own purposes, typically at no charge. Open-source code is often scrutinized by a much larger audience than proprietary software, so errors often get removed faster. Open source also encourages innovation.

There are many organizations in the open-source community. Some key ones are:

  • Python Software Foundation (responsible for Python).

  • GitHub (provides tools for managing open-source projects—it has millions of them under development).

  • The Apache Software Foundation (originally the creators of the Apache web server, they now oversee 350 open-source projects, including several big data infrastructure technologies we present in Chapter 17.

  • The Eclipse Foundation (the Eclipse Integrated Development Environment helps programmers conveniently develop software)

  • The Mozilla Foundation (creators of the Firefox web browser)

  • OpenML (which focuses on open-source tools and data for machine learning—you’ll explore machine learning in Chapter 15).

  • OpenAI (which does research on artificial intelligence and publishes open-source tools used in AI reinforcement-learning research).

  • OpenCV (which focuses on open-source computer-vision tools that can be used across a range of operating systems and programming languages—you’ll study computer-vision applications in Chapter 16).

Rapid improvements to computing and communications, decreasing costs and open-source software have made it much easier and more economical to create software-based businesses now than just a decade ago. A great example is Facebook, which was launched from a college dorm room and built with open-source software.

The Linux kernel is the core of the most popular open-source, freely distributed, full-featured operating system. It’s developed by a loosely organized team of volunteers and is popular in servers, personal computers and embedded systems (such as the computer systems at the heart of smartphones, smart TVs and automobile systems). Unlike that of proprietary operating systems like Microsoft’s Windows and Apple’s macOS, Linux source code (the program code) is available to the public for examination and modification and is free to download and install. As a result, Linux users benefit from a huge community of developers actively debugging and improving the kernel, and the ability to customize the operating system to meet specific needs.

Apple’s macOS and Apple’s iOS for iPhone® and iPad® Devices

Apple, founded in 1976 by Steve Jobs and Steve Wozniak, quickly became a leader in personal computing. In 1979, Jobs and several Apple employees visited Xerox PARC (Palo Alto Research Center) to learn about Xerox’s desktop computer that featured a graphical user interface (GUI). That GUI served as the inspiration for the Apple Macintosh, launched in 1984.

The Objective-C programming language, created by Stepstone in the early 1980s, added capabilities for object-oriented programming (OOP) to the C programming language. Steve Jobs left Apple in 1985 and founded NeXT Inc. In 1988, NeXT licensed Objective-C from Stepstone and developed an Objective-C compiler and libraries which were used as the platform for the NeXTSTEP operating system’s user interface, and Interface Builder—used to construct graphical user interfaces.

Jobs returned to Apple in 1996 when they bought NeXT. Apple’s macOS operating system is a descendant of NeXTSTEP. Apple’s proprietary operating system, iOS, is derived from macOS and is used in the iPhone, iPad, Apple Watch and Apple TV devices. In 2014, Apple introduced its new Swift programming language, which became open source in 2015. The iOS app-development community has largely shifted from Objective-C to Swift.

Google’s Android

Android—the fastest growing mobile and smartphone operating system—is based on the Linux kernel and the Java programming language. Android is open source and free.

According to idc.com, as of 2018, Android had 86.8% of the global smartphone market share, compared to 13.2% for Apple.7 The Android operating system is used in numerous smartphones, e-reader devices, tablets, in-store touch-screen kiosks, cars, robots, multimedia players and more.

Billions of Devices

In use today are Billions of personal computers and an even larger number of mobile devices. The following table lists many computerized devices. The explosive growth of mobile phones, tablets and other devices is creating significant opportunities for programming mobile apps. There are now various tools that enable you to use Python for Android and iOS app development, including BeeWare, Kivy, PyMob, Pythonista and others. Many are cross-platform, meaning that you can use them to develop apps that will run portably on Android, iOS and other platforms (like the web).

Computerized devices
Access control systems Airplane systems ATMs
Automobiles Blu-ray Disc™ players Building controls
Cable boxes Copiers Credit cards
CT scanners Desktop computers e-Readers
Game consoles GPS navigation systems Home appliances
Home security systems Internet-of-Things gateways Light switches
Logic controllers Lottery systems Medical devices
Mobile phones MRIs Network switches
Optical sensors Parking meters Personal computers
Point-of-sale terminals Printers Robots
Routers Servers Smartcards
Smart meters Smartpens Smartphones
Tablets Televisions Thermostats
Transportation passes TV set-top boxes Vehicle diagnostic systems

Self Check for Section 1.6

  1. (Fill-In) Windows is a(n)       operating system—it’s controlled by Microsoft exclusively.
    Answer: proprietary.

  2. (True/False) Proprietary code is often scrutinized by a much larger audience than open-source software, so errors often get removed faster.
    Answer: False. Open-source code is often scrutinized by a much larger audience than proprietary software, so errors often get removed faster.

  3. (True/False) iOS dominates the global smartphone market over Android.
    Answer: False. Android currently controls 88% of the smartphone market.