Operating Systems - What Are They And Where Do We Find Them?
the software we never know exists
- What is an Operating System?
- What’s in an OS?
- Desktop Operating Systems
- Mobile Operating Systems
- Interacting With The OS
- Conclusions
What is an Operating System?
Overview
An operating system is the invisible software that most users don’t even realize is present and running on their computers. It is the low-level software that allows application software to function on the given computer’s hardware.
Overview (continued)
We often speak of computers as being composed of hardware and software.
-
Hardware describes the physical components of the computer that you could touch, e.g. the processors, memory chips, circuit boards, storage devices, wires, microphones, speakers, trackpads, monitors, keyboards, etc.
-
Software describes the programs, i.e. instructions for sequences of operations that the hardware will perform.
Hardware
In order for hardware devices to be controlled by and integrated with software, device drivers are required. Drivers are software parts of the operating system that ensure that electronic signals emitted by the software are formatted correctly for the hardware, and that electronic signals emitted by the hardware are formatted correctly for the software.
-
For example, a printer driver is software that allows a processor running a program to send signals to a printer and have that printer correctly interpret the data so it can print a document.
-
The same concept applies to all hardware devices.
Software
Software can be further divided into application software and system software.
-
System software is the software that manages the hardware and provides a consistent platform for running application software. The operating system is a coherent bundle of many different pieces of system software that are designed to work together to support application software.
-
Application software, a.k.a. “apps” is the software that users typically interact with directly to perform tasks. For example, web browsers, games, messenger apps, social media apps, camera apps, spreadsheet software, word processing software.
System software
The most fundamental system software in an operating system is called the kernel.
-
The kernel incorporates any device drivers to control and organize the hardware with no other layers of software between it and the hardware.
-
The kernel controls and organizes the hardware, sends/receives messages to/from the hardware, passes messages between programs, and allocates available resources (memory, processor time, network bandwidth, etc).
All other system software depends upon the kernel.
Application software
Application programs require certain common operations, such as access to the input and output devices, access to the processor, random-access memory (RAM), storage devices, and other hardware.
-
The operating system provides a consistent set of basic services that all applications can depend upon.
-
Since each type of operating system provides a specific set of services that must be accessed in a specific way, application software is typically designed to work on only one type of operating system.
-
On most personal computers, the operating system includes a windowing system that allows applications to graphically display their output in consistently-designed windows on the screen.
Software begets software
While it’s technically possible to write programs directly to a computer’s memory without using application software to help, the tools used by almost all software developers to create software, such as code editors and compilers/interpreters are themselves application software.
-
As machine learning and artificial intelligence become more prevalent and useful, we might reasonably expect more software to be created autonomously by existing software without human intervention.
-
Humans have experimented with self-propagating and self-modifying software for many decades, even prior to the recent popularization of machine learning. For example, with genetic algorithms and neural networks.
Embedded systems software
While users interact with application software, some software serves users’ needs but is designed to run without direct user interaction.
-
For example, applications that run within thermostats, spy cameras, drones, refrigerators, cars, industrial robotics, etc.
-
Popular “hobbyist” electronics platforms like the Raspberry Pi and Arduino are designed to be easily programmed by users to run embedded systems software and easily integrate with a wide variety of hardware sensors and actuators.
What’s In An OS
Overview
Operating systems are software. They typically include:
- File system
- Hardware interfacing
- Resource management
- Some basic application software
- Command line interface
Additionally, operating systems often include:
- Graphical User Interface (GUI)
File system
A file system where data is stored using the paper paradigm and metaphor of a filing cabinet:
- files
- folders
- shortcuts
- applications that allow you to easily browse the file system
- Mac Finder
- Windows Explorer
- any GUIs for UNIX/Linux will come with their own file system browsing application
Graphical User Interface
Graphical user interfaces (GUIs) based on the metaphor of a desktop
- the monitor is the top of your desk (i.e. your desktop)
- documents and folders sit on top of your desk (i.e. files and folders)
- documents can be opened up on your desk (i.e. windows)
- typical office accessories can be placed on your desk (i.e. application shortcuts)
- the desktop metaphor falls apart:
- a trash can sits on top of the desk (i.e. trash and recycling bin)
- filing cabinets sit on top of your desk (i.e. hard drives, networked drives, etc)
- menus, task bars, and most applications don’t really fit into the desktop metaphor very well.
- UNIX/Linux do not generally include a GUI
- users can choose which GUI to install or use
- X Windows is the most popular Linux GUI framework with multiple implementations available
Hardware interfacing
OS’s take care of the most common computing tasks
Interfacing with hardware
- monitors
- mice
- trackpads
- keyboards
- cameras
- microphones
- speakers
- network connections
- any plugged-in external devices
Resource management
Process management
- multitasking
- keeping track of all running applications
- scheduling applications so they share the processor nicely
Memory management
- storing data in the computer’s memory
- caching data
- making sure the computer doesn’t run out of memory
- retrieving data from hard drives
Desktop Operating Systems
Overview
Popular operating systems for desktop/laptop computers:
- Microsoft Windows
- Mac OS X
- UNIX
- GNU/Linux
- ChromeOS
Windows
- owned by Microsoft, Inc.
- not “free software”
- closed source
OS X
- owned by Apple, Inc.
- based on the UNIX operating system
- not “free software”
- closed source
UNIX
- the first ‘modern’ operating system - multiple user accounts, multiple concurrent processes, simple command line interface, etc
- begun by AT&T in the 1960’s
- was until recently completely proprietary closed-source software… now some variants are open source and “free software”
- learn basic UNIX/Linux commands before it’s too late
GNU/Linux
- began as a free clone of UNIX for people who wanted free software and freedom from closed-source code
- the kernel is called Linux, after its creator, Linus Torvalds. The rest of the operating system is more properly called GNU, as it is the product of the GNU project.
- not owned by anybody in the traditional sense
- “free software”
- open source
ChromeOS
- a distribution of Linux
- owned by Google, Inc.
- not “free software”
- partially open source, partially closed source
Mobile Operating Systems
Overview
Popular operating systems for mobile/tablet computers:
- iOS
- Android
iOS
- owned by Apple, Inc.
- the mobile version of OS X
- based on UNIX
- closed source
- not “free software”
Android
- owned by Google, Inc.
- based on GNU/Linux
- nominally open source - several critical parts are closed source
- not “free software”
GNU/Linux
While there are some “free software” open source GNU/Linux distributions targeted for mobile devices, none at the time of this writing are in common use
-
this is due, in part, to mobile phone device manufacturers blocking independent developers and not wanting to release the source code for their device drivers
-
the Librem 5 and PinePhone are valiant attempts at hardware phones designed explicitly to run GNU/Linux. However, they do not offer the same level of user-friendliness and reliability required by “regular” people.
Interacting With the Operating System
Command line
Command line (continued)
The command line is a text-based system that allows a user to interact with a computer. Command line interfaces today are generally modeled after the computer terminals of yesteryear - devices that allowed input into a computer and displayed output from a computer via a keyboard and monitor, but were separate from the computer itself, which was often very large and located elsewhere.
- MS DOS prompt in Windows
- Terminal in Mac OS
- a variety of shell programs in UNIX and GNU/Linux
Graphical User Interface
The Graphical User Interface (GUI) is a visual display of options and controls that allows a user to interact with a computer. This is how most “normal” people interact with a computer.
- most (but not all) GUIs are based on the concept of the desktop metaphor.
Graphical User Interface (continued)
The most popular operating systems for personal computers each come with a GUI included:
- Microsoft Windows
- Apple OS X
- Google ChromeOS
Graphical User Interface (continued again)
UNIX & GNU/Linux operating systems can sometimes be bundled with GUIs, although many distributions do not come with any at all.
Some popular GUIs for UNIX/Linux include:
- X Windows - the most popular “windowing framework” for UNIX-like operating systems, providing the primitives from which a variety of GUIs can be made
- GNOME - A user-friendly desktop GUI environment built on top of the X Windows framework.
- XFCE - A lightweight and fast desktop GUI environment designed for low resource usage while maintaining a visually appealing interface.
- KDE Plasma - A powerful and flexible desktop GUI environment known for its configurability and extensive features.
Graphical User Interface (continued once more)
Operating systems for mobile devices usually come with a GUI included:
- Google Android
- Apple iOS
Conclusions
You now are somewhat familiar with what an operating system and what’s included.
- Thank you. Bye.