Fundamentals 20 min read

Essential OS and Device Concepts Every Developer Should Know

This article provides concise definitions and explanations of 53 core operating‑system and hardware concepts—including block and character devices, controllers, DMA, scheduling algorithms, virtualization, and error handling—offering a quick reference for developers and students alike.

Liangxu Linux
Liangxu Linux
Liangxu Linux
Essential OS and Device Concepts Every Developer Should Know

Block devices

Block devices store data in fixed‑size blocks, sectors, or clusters and support reading and optionally writing data in these units. Typical block sizes range from 512 to 65536 bytes. Common examples are hard disks, Blu‑ray discs, and USB drives.

Character devices

Character devices transmit or receive a stream of characters without any block structure. They are non‑seekable and include printers, network adapters, mice, and most devices that are not disk‑based.

Device controller

A device controller processes signals sent to and from the CPU. Devices connect to the computer via plugs and sockets, which in turn connect to the controller.

ECC (Error‑Correcting Code)

Memory that can detect and correct errors using ECC technology.

I/O port

Memory addresses used by software to communicate with hardware I/O devices.

Memory‑mapped I/O (MMIO)

Uses the same address space for both memory and I/O devices, allowing them to share addresses.

Port‑mapped I/O (PMIO)

Assigns separate address spaces for memory and I/O devices, typically accessed via special CPU instructions.

DMA (Direct Memory Access)

Allows hardware to transfer data directly to or from memory without CPU involvement, freeing the CPU to perform other tasks during the transfer.

Cycle stealing

Some buses can operate in word‑by‑word or block mode; a DMA controller may “steal” a bus cycle from the CPU, causing a slight delay.

Burst mode

Devices repeatedly transfer data without performing a full transaction for each piece of data.

Interrupt vector table

Contains the entry addresses of interrupt service routines, allowing the CPU to locate the appropriate handler.

Precise interrupt

Program counter (PC) is saved at a known location.

All instructions before the PC have completed execution.

No instructions after the PC have been executed.

The execution state of the instruction at the PC is known.

Imprecise interrupt

Interrupts that do not meet the precise‑interrupt criteria, leading to uncertain instruction execution order.

Device independence

Applications can access any device without hard‑coding a specific device type, enabling the same code to read from a hard disk, DVD, or USB.

UNC (Uniform Naming Convention)

Standard for naming and accessing network resources such as shared drives, printers, or servers (e.g., \\computer\path on Windows, //computer/path on Unix/Linux).

Mounting

The OS makes directories and files on storage devices (hard disks, CD‑ROMs, etc.) accessible to users via the file system.

Error handling

Procedures for responding to and recovering from error conditions in software applications.

Synchronous (blocking)

The CPU must wait for the operation to complete before proceeding.

Asynchronous

Operations driven by interrupts, allowing the CPU to continue other work without waiting.

Buffering

Temporary memory storage designed to speed up access to frequently used data and instructions.

Programmed I/O (PIO)

Data transfer method between the CPU and peripheral devices (e.g., network adapters, ATA storage).

Polling

The process of actively checking each device for status updates.

Busy waiting

A process repeatedly tests a condition (e.g., a variable) until it changes, consuming CPU cycles.

Reentrant

Code that can be safely interrupted and called again by the OS without causing errors.

Major/minor device numbers

Every device has a major number (broad category like disk or I/O) and a minor number (specific instance).

Double buffering

Uses multiple buffers to hold parts of data blocks, allowing simultaneous reading and assembling of a complete block.

Circular buffer

A buffer whose end connects back to its beginning, commonly used for streaming data.

Spooling

Copies data between programs and slower peripheral devices (e.g., printers) as an intermediate step.

Daemon

Background process that runs without direct user interaction.

Logical Block Addressing (LBA)

Universal scheme for specifying the location of data blocks on storage devices.

RAID

Redundant Array of Inexpensive Disks; combines multiple physical disks into logical units for redundancy and performance.

Master Boot Record (MBR)

First sector of a disk containing information about OS placement and how to load it into memory.

FCFS (First‑Come, First‑Served)

Scheduling algorithm where the earliest arriving process receives service first.

SSF (Shortest Seek First)

Improved algorithm that reduces total arm movement, shortening average response time.

Stable storage

Storage technology ensuring atomicity of write operations.

Clocks

Timers that regulate timing and speed of all computer functions; a clock tick is the shortest executable interval.

QR Code

Quick Response matrix barcode used for fast scanning, e.g., on train tickets.

Video card

Hardware component that converts computer data into signals for display devices, enabling human‑machine interaction.

GDI (Graphics Device Interface)

Microsoft Windows API for representing graphics objects and transmitting them to output devices like monitors and printers.

Device context

Windows data structure containing graphic properties of a device; drawing calls use it to render lines, shapes, and text.

Bitmap

Mapping from a domain (e.g., integer range) to bits, also known as a bit array or bitmap index.

Resistive touchscreen

Works by pressure; composed of multiple layers that register touch when pressed.

Capacitive touchscreen

Detects conductive properties of an object (usually a finger) without pressure; more responsive for gestures.

Deadlock

A state where each member of a set waits for another member to act, causing a standstill.

Preemptable resource

Can be taken away from a process without side effects.

Non‑preemptable resource

If taken away, it may cause errors in the process or task.

System checkpoint

A snapshot of the operating system at a specific point in time, representing a launchable instance.

Two‑phase locking (2PL)

Database concurrency control method with an expansion phase (locks acquired, none released) and a shrinking phase (locks released, no new locks).

Expansion phase: continuously acquire locks, none released.

Shrinking phase: locks are released, no new locks are taken.

Livelock

Similar to deadlock, but processes keep changing state without progress; e.g., two people repeatedly moving aside in a narrow hallway.

Starvation

When a process never obtains needed resources, often due to scheduling policies.

Sandboxing

Software strategy that isolates applications from critical system resources and other programs for security.

VMM (Virtual Machine Monitor)

Also called a hypervisor; creates multiple virtual machines on a single physical host.

Virtualization

Resource‑management technique that abstracts physical resources (CPU, memory, storage, network) into configurable virtual environments.

Cloud

Current popular implementation of virtualization for providing scalable computing resources.

Interpreter

Program that executes source code line‑by‑line, translating each line on the fly, typically slower than compiled code.

Paravirtualization

Provides a software interface similar to hardware but not identical, aiming for efficient virtualization.

Full virtualization

Allows unmodified operating systems to run in isolated virtual machines, mapping hardware features to the VM.

Guest operating system

An OS installed inside a virtual machine, either as part of a partition or VM setup.

Host operating system

The primary OS installed on the physical machine’s hard drive.

hardwareoperating-systemdevice
Liangxu Linux
Written by

Liangxu Linux

Liangxu, a self‑taught IT professional now working as a Linux development engineer at a Fortune 500 multinational, shares extensive Linux knowledge—fundamentals, applications, tools, plus Git, databases, Raspberry Pi, etc. (Reply “Linux” to receive essential resources.)

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.