Skip to main content

Layers of Computing

Computers are built heavily around the concept of abstraction – or simplifying complex mechanisms in ways that allow you to build modular systems that are easier to understand and maintain. This creates a pipeline for independent modules – each completing a complex task – to communicate through a common technical language.


Abstraction

While you may need to have some knowledge about hardware specifications to build a computer, you don't need to understand the mechanical underpinnings of hardware engineering. You aren't required to know how to code just to use a software package.

The abstractions within these systems are defined along lines that denote architectures, standards, protocols and specifications. Whether created by a corporation or a committee, these systems allow them to be used interchangeably within compatible environments. While creating software, we can use a highly abstracted language like JavaScript, instead of writing machine code.

There are three levels to computing, each building on the previous to achieve the general-purpose operating systems that we have learned through using a computer. By building a system consisting of physical hardware parts and integrated firmware, we create a digital software space for performing tasks through applications.


Hardware

This is the physical side of computing, created using integrated circuits created from silica and rare earth metals. The name "hardware" is derived from its relatively rigid nature in respect to change.



Hardware includes the motherboard, which acts as a seat for all hardware parts within a computer and enables their communication. The CPU performs precise calculations, the GPU handles graphical manipulation, and the RAM is used to store data in use by software. Long-term data storage is accomplished through high-capacity platter disks or solid-state flash memory drives.

1000006807.jpg1000006807.jpg

Many motherboards contain an RTC (Real-Time Clock) that keep track of time even when the computer temporarily loses power. Other hardware components may include: network interface cards, sound cards, BlueTooth, and USB for connecting external devices.


Firmware

This low-level software enables the hardware to interact with higher level software, such as your operating system. Hardware components have low-level code embedded into them that enable your computer to configure it. Hardware abstraction provides an operating system with access to low-level functions on a hardware component without needing to know its low-level machine code. For example, requesting an idle hardware component go to sleep to conserve power.



Altering firmware may require replacing a physical module or flashing a reprogrammable memory chip. The name "firmware" reflects the amorphous blend of hardware and software components. Motherboards contain a reprogrammable firmware interface such as BIOS (Basic Input Output System) or UEFI (Unified Extensible Firmware Interface).

1000006146.webp1000006146.webp

These offer access to hardware-level configurations such as which storage device to boot from or which components to disable. RAID allows your computer to enable low-level storage drive duplication or consolidation.

When the hardware is first turn on, the BIOS or UEFI will execute the POST – or Power-On Self Test – to ensure all hardware is functional. After this, the firmware hands control to the software-based bootloader stored on the storage device and loads the operating system.


Software

The operating system offers a general-purpose interface for completing tasks, either using a command-line or graphical user interface.

These generally take up larger amounts of space and are stored on internal data drives. When necessary, drivers may be leveraged to expand on the functionality of hardware beyond what is offered by the firmware.

VirtualBox_Debian - GNOME_02_04_2025_12_03_25.pngVirtualBox_Debian - GNOME_02_04_2025_12_03_25.png

The operating system creates a user environment for running applications to perform specific tasks, such as opening a web browser. Server software enables your operating system to respond to requests from client computers accessing over the network.