What Is 'i686' in Linux/Unix?

The 'i686' label applies to a series of old Intel processors

The identifier i686 refers, broadly, to a kernel optimized to run an Intel processor using the P6 microarchitecture, commonly associated with the Pentium Pro- and Pentium M-class processors from 1995 and later. A Linux distribution for i686 supports most implementations that preceded it—for example, an i686 computer usually works just fine with i386-based distributions.

The i686 standard runs a 32-bit operating system. Specific distribution images for i686 machines prove increasingly rare after 2004.

Intel's Microarchitecture

Intel Core i7 processor
 4kodiak / Getty Images

Intel's consumer-grade processors have followed an *86 naming convention, dating back to the 8086 chip released in 1978. Later iterations included the 16-bit i286 in 1983, the 32-bit i386 in 1985, the 32-bit i486 in 1989, the i586 (the original Pentium chip) in 1993, the i686 (the Pentium Pro) in 1995, and the i786 (Pentium 4, or NetBurst) in 2000.

Since 2003, the x64 series of processors, supporting 64-bit operating systems, has grown to dominate the consumer market. The microarchitecture class names have not evolved beyond x64; Intel's present naming scheme focuses on the generation of the processor instead. Presently, for desktop-class computers, Intel's Core line uses the x86_64 Linux kernel.

Other Architectures

Besides i686, you'll likely encounter a few other processor-specific indicators:

  • x86_64: Supports Intel's 64-bit architecture
  • amd64: Supports AMD's 64-bit architecture
  • arm64: Supports 64-bit ARM chips

When Should I Use i686 Apps?

Your package manager will resolve the correct package for your kernel. As a rule, you'll always be able to install distribution images with kernels compiled for the i386 architecture—you'll get 32-bit performance, but for Intel processors, it'll generally always work. If you're using a modern computer with a 64-bit Intel processor, picking an x86_64 image makes more sense.

You'll find incremental value in picking i686 (if it's available!) if you're running an older computer with a Pentium Pro through Pentium 3 processor, or a Pentium M processor. The i686 kernel offers some additional features that Intel baked into the processor that aren't accessible to the base i386 kernel.

If you cannot find a relevant distribution image pre-compiled for the i686 standard, you're always free to compile your own kernel from scratch.

  • What is i686-PAE?

    PAE stands for Physical Address Extension. With an i686-PAE architecture, the operating system can access more than 4GB of RAM per process. While i686 is 32-bit, PAE allows for up to 36-bit performance, and the machine can access up to 64 GM of RAM.

  • What is the difference between i686 and x86_64?

    When you're installing Linux, you may be offered a choice between i686 and x86_64. In general terms, I686 is the 32-bit version while x86_64 is the 64-bit version of the OS. The 64-bit version is better for memory-intensive processes, but the 32-bit version is acceptable for most uses.

Was this page helpful?