Programs make it possible to use a computer’s hardware components to perform the user’s digital operations.

A device’s software consists of several levels. This is necessary for compatibility among various kinds of programs and hardware components. It usually operates on three interrelated levels.

1. Low-level firmware (Firmware)

This is basic program code that is “burned” directly into the computer’s hardware components. It provides initial initialization and direct control of hardware (for example, the motherboard).

Firmware acts as the lowest level of abstraction: it prepares the equipment to hand control over to the operating system, or independently controls the entire operation if the device is simple and has no full-fledged OS (such as an electronic thermometer).

Examples:

  • mobile devices — Bootloader (usually closed and tightly bound to the components of a specific smartphone);
  • PCs and laptops — BIOS / UEFI and others.

2. Operating systems (OS)

An OS allocates device resources, manages memory, and creates an environment for running the programs you need as processes. Operating systems are always developed for a specific processor architecture (for example, x86_64 for computers or ARM64 for smartphones).

Which programs you can install — and which are available by default — depends on the chosen OS.

For PCs (x86_64 architecture)

  • Closed source: Windows, macOS (works only on Apple hardware).
  • Open source: various Linux and BSD distributions.

For mobile devices (ARM64 architecture)

  • Closed source: iOS (Apple only).
  • Open source (base): Android.

3. Application software — specialized programs and apps

Developed and optimized for a specific runtime environment (operating system). This allows developers to create programs for a wide range of devices that support the target OS — from Internet access and messaging to complex work with 3D graphics.

The main differences are defined by installation methods and distribution licenses.

Installation methods: program and app

Functionally they may not differ.

  • Programs — downloaded manually from official sites as installer files.
  • Apps — installed through centralized “stores” (App Store, Google Play) that are part of the operating system. This makes installation and updating centralized.

Distribution licenses: closed and open source

Closed source

Developed and funded by private companies. The code is hidden.

  • Free: Google Chrome browser.
  • Paid (purchase or subscription): Microsoft Office (documents), Adobe Photoshop (graphics), Autodesk Maya, SolidWorks (3D modeling).

Open source (Open Source)

Developed by communities of engineers and enthusiasts. The code is open to everyone; such programs are typically distributed free of charge. Development is funded by donations, commercial distribution licenses, or paid product support. Openness of the code allows the community to conduct its own security audits.

Examples: LibreWolf (browser), Keepass (password manager), LibreOffice (office tasks), GIMP (raster graphics), Blender and FreeCAD (3D modeling), VirtualBox (virtualization), MySQL (database), Busybox (system utilities), and others.