History of IBM i : Part 5 – SLIC (System Licensed Internal Code) in IBM Power Systems
The System Licensed Internal Code (SLIC), also known as Licensed Internal Code (LIC) in broader IBM contexts, is a critical, proprietary layer in the IBM i operating system architecture running on IBM Power Systems. It serves as the hardware-dependent kernel-like component that bridges the abstract, hardware-independent layers of IBM i with the underlying POWER processor hardware.
SLIC is essentially the “secret sauce” that enables IBM i’s legendary hardware independence, extreme backward compatibility, and integrated features like the built-in Db2 database.
Table of Contents
Architectural Position and Layers
IBM i’s architecture is layered, with SLIC occupying the lowest software layer above the hardware:
Hardware: IBM POWER processors (POWER8, POWER9, POWER10, etc.) and associated components.
SLIC (System Licensed Internal Code): Hardware-dependent layer; one instance per physical server.
Higher Layers: IBM i OS (including user applications, Db2 for i, etc.), hardware-independent.
This structure isolates applications from hardware changes. SLIC implements the TIMI on the specific POWER architecture, translating TIMI bytecode into native POWER instructions.
In virtualized environments with Logical Partitions (LPARs), there is one SLIC instance per physical Power server, shared across all IBM i LPARs. SLIC handles translation and resource management for all partitions, enforcing isolation while allocating CPU, memory, and I/O.
Key Functions of SLIC
SLIC performs a wide range of low-level and integrated functions:
TIMI Translation: Converts TIMI intermediate code (bytecode) from compiled programs into optimized native POWER machine code. This ahead-of-time translation occurs on program load or hardware change, with results cached for performance.
Kernel-Like Operations: Manages memory (including single-level store), process scheduling, I/O, interrupts, and exception handling.
Single-Level Store Implementation: Treats all storage (RAM and disk) as a unified 64-bit (or larger) virtual address space, automatically handling paging and persistence.
Object-Based Model: Enforces IBM i’s object-oriented design, where everything (files, programs, libraries) is an encapsulated object with strict access controls.
Integrated Database (Db2 for i): Much of the relational database engine is embedded directly in SLIC, providing seamless, high-performance data access without separate server processes.
Security and Isolation: Prevents direct hardware access by applications, reducing vulnerabilities (e.g., no buffer overflows reaching hardware).
Virtualization Support: Works with PowerVM hypervisor for LPAR management, resource allocation, and shared hardware access.
SLIC is closed-source and licensed (not owned outright by customers), allowing IBM to evolve it freely for new hardware without breaking compatibility.
Historical Evolution
Pre-1995 (CISC Era): Early AS/400 used Horizontal Licensed Internal Code (HLIC) for emulation and Vertical Licensed Internal Code (VLIC) for higher functions.
1995 Transition to PowerPC RISC: IBM rewrote the lower layers in C++ (over 2 million lines), consolidating into a single SLIC layer. This enabled the seamless shift from 48-bit IMPI CISC to 64-bit PowerPC without recompiling applications.
Ongoing: SLIC has evolved with each POWER generation, incorporating optimizations for new features (e.g., NVMe support, AI acceleration) while maintaining TIMI compatibility.
Chief architect Frank Soltis designed much of this structure to ensure “technology independence.”
Benefits and Implications
Backward Compatibility — Applications from 1988 run on 2025 POWER hardware.
Performance — Native execution after translation; automatic optimization for new CPUs.
Reliability/Security — Integrated features reduce failure points; abstraction prevents many exploits.
Ease of Upgrades — Hardware migrations are non-disruptive—no code changes needed.
SLIC updates (part of IBM i PTFs or resaves) are applied via IPLs or slip installs.
Final Thoughts
SLIC is the foundational, hardware-adapting layer that makes IBM i on Power Systems uniquely resilient and future-proof. By handling translation, core OS functions, and integrated capabilities below the TIMI boundary, it allows IBM to innovate hardware aggressively while preserving decades of software investments.
Software layers between the system hardware and operating systems (IBM Redbooks)
As of late 2025, SLIC continues to support the latest POWER processors, ensuring IBM i’s relevance in enterprise computing.
https://en.wikipedia.org/wiki/IBM_i Comprehensive overview of IBM i architecture, detailing SLIC as the hardware-dependent layer below TIMI, its role in translating TIMI bytecode, implementing single-level store and the integrated Db2 database, and its evolution during the 1995 CISC-to-RISC transition (replacing HLIC/VLIC with over 2 million lines of C++ code).
https://en.wikipedia.org/wiki/IBM_AS/400 Explanation of SLIC’s creation during the PowerPC transition, its function in hardware abstraction, and integration with TIMI for backward compatibility.
https://www.ibm.com/docs/en/i/7.5?topic=system-recovering-licensed-internal-code (and similar for other versions) Official IBM documentation describing Licensed Internal Code (SLIC) as the layer just above hardware, with recovery procedures. Inside the AS/400 and Fortress Rochester: The Inside Story of the IBM iSeries by Frank G. Soltis Books by IBM i chief architect Frank Soltis providing foundational insights into SLIC’s design, its role in technology independence, single-level store, and processor migrations.
https://handwiki.org/wiki/Software:IBM_i In-depth technical summary of SLIC’s implementation in C++, its replacement of earlier microcode layers, and functions like query optimizers and database integration.