Computer Science

Computer Science

In this section, we explore the world of programming, algorithms, networks, and infrastructure

ProgrammingAlgorithmsComputer NetworksTechnologyInfrastructureSoftware EngineeringHardware Engineering

Explore Sections

Computer Networks

Infrastructure, Systems, and Connectivity

View Section

Related Categories

Featured Articles

How Docker Overlay Networks Work: VXLAN Under the Hood

Overlay networks let containers on different hosts communicate as if they shared a single flat network, forming the backbone of most cloud-native microservices apps. This article covers how to build, encrypt, and test a Docker overlay network across a Swarm cluster, and explains the VXLAN tunneling technology powering it behind the scenes.

/article/how-docker-overlay-networks-work-vxlan-under-the-hood

Managing Persistent Data in Docker with Volumes

Containers get a temporary writable layer by default, which disappears the moment a container is deleted — fine for scratch data, but risky for anything worth keeping. This article explains how Docker volumes decouple persistent data from container lifecycles, and walks through creating, using, and sharing them safely.

/article/managing-persistent-data-in-docker-with-volumes

How Docker Uses Linux Security Technologies: Namespaces, Cgroups, and More

Docker's security model is built on layered defense, combining well-established Linux kernel technologies with sensible defaults out of the box. This article explains how namespaces, control groups, capabilities, mandatory access control, and seccomp work together to isolate and secure containers.

/article/how-docker-uses-linux-security-technologies-namespaces-cgroups-and-more

How Computers Turn Programs into Action: Core Ideas in Architecture

Every program a person writes eventually becomes electrical signals moving through silicon. This article explains what computer architecture actually studies, walks through the eight foundational ideas that shape modern processor design, and traces the journey a program takes from human-readable code down to the hardware that runs it.

/article/how-computers-turn-programs-into-action-core-ideas-in-architecture

Inside the Machine: Hardware Components, Chip Technology, and Measuring Speed

Opening up a computer reveals a small set of recurring building blocks that work together regardless of the device's size or purpose. This article walks through the core hardware components every system relies on, explains how those components are physically manufactured from raw silicon, and shows the correct way to measure and compare processor performance.

/article/inside-the-machine-hardware-components-chip-technology-and-measuring-speed

The Power Wall and the Shift to Multicore Processors

For decades, processors got faster mainly by running at higher clock speeds. That approach hit a physical limit tied to power consumption and heat, forcing the entire industry to change direction toward multiple processing cores instead. This article explains why the power wall happened, how the industry responded with multiprocessors, what real benchmark numbers reveal about performance claims, and common misconceptions to avoid when reasoning about hardware performance.

/article/the-power-wall-and-the-shift-to-multicore-processors

The Building Blocks of Machine Instructions: Operations and Operands

Every high-level statement a programmer writes eventually breaks down into a small, rigid set of hardware-level operations. This article explains why instruction sets are kept deliberately simple, walks through the core arithmetic and data-movement operations a processor supports, and explains how operands such as registers and memory locations are represented and accessed at the hardware level.

/article/the-building-blocks-of-machine-instructions-operations-and-operands

How Computers Represent Numbers and Encode Instructions in Binary

Underneath every value a program manipulates and every instruction a processor executes lies a fixed-width string of bits. This article explains how signed and unsigned numbers are represented and interpreted differently from the same binary pattern, and how machine instructions themselves are encoded into rigid binary fields that hardware can decode at high speed.

/article/how-computers-represent-numbers-and-encode-instructions-in-binary

Logical Operations and Decision-Making Instructions in RISC-V

Beyond arithmetic, processors need to manipulate individual bits and alter their execution path based on conditions. This article covers the core logical operations used for bit manipulation and explains how conditional branching and looping are built from a small set of comparison-based instructions.

/article/logical-operations-and-decision-making-instructions-in-risc-v

How Hardware Supports Function Calls and Character Data

Calling a function seems simple in high-level code, but at the hardware level it requires a careful protocol for saving return addresses, passing arguments, and preserving register values. This article explains how procedure calls are implemented using dedicated registers and a stack, then covers how processors represent human-readable text as sequences of encoded characters.

/article/how-hardware-supports-function-calls-and-character-data

Wide Address Handling and Synchronization in RISC-V

A 32-bit instruction cannot fit a large constant or a far-away memory address directly inside it, and multiple processors sharing memory cannot safely update the same data without coordination. This article explains how RISC-V builds large immediate values and addresses out of smaller pieces, and how atomic instructions allow parallel programs to synchronize safely.

/article/wide-address-handling-and-synchronization-in-risc-v

From Source Code to a Running Process: Translation and a Full Sort Example

Turning a C program into something the operating system can actually run involves several distinct translation stages, each producing a different intermediate file. This article walks through that full pipeline from compiler to loader, then applies the concepts from this chapter to a complete, realistic example: translating a C sorting routine into RISC-V assembly step by step.

/article/from-source-code-to-a-running-process-translation-and-a-full-sort-example