Aaron Toponce put forth on 6/14/2010 10:02 AM: > On 6/12/2010 8:11 PM, Anand Sivaram wrote: >> On Fri, Jun 11, 2010 at 22:39, Aaron Toponce <aaron.topo...@gmail.com >> <mailto:aaron.topo...@gmail.com>> wrote: >> Other than the kernel, which is compiled for 686 instruction sets, and >> maybe a few core packages that would benefit from targeting the 686 >> architecture, Debian compiles the rest of the packages against 386. >> There is no 386 kernel available. Kernel starts from 486 only. > > I never mentioned there was a 386 kernel.
Disclaimer: my comments below intentionally exclude x86-64 capable CPUs There are different kernels for different models of the Intel x86 processor family and compatibles, but make no mistake, they all use the same instruction set introduced in the 80386. There is no i686 instruction set, nor an i586 or i486 instruction set. As a matter of fact, the latter of these aren't even models of Intel CPUs. What kernel programmers call i586 and i686 are actually classes or sets of features of Intel and compatible competitor CPUs from Cyrix, IBM, TI, and AMD. The original Intel 60/66 MHz Pentium model number is actually 80501. All Pentiums up to the MMX models were numbered 80502. The i686 kernel label describes the Pentium Pro, whose model number is 80521, and all other later 32 bit x86 CPUs to follow it. The differences in the kernels designed for (notice I did not say _compiled_ for) each of these CPU generations/models has nothing to do with different instruction sets (remember they all use the same ISA), but with specific features found in these various CPUs and/or features of the platform classes. For example, to use PCI devices and to map them into memory properly requires support in the kernel, as does mapping PCI IRQs. 80386/80486 systems don't have PCI buses but only ISA (and very rarely VESA) buses and thus don't require the kernel code to support PCI. Likewise, the 80[34]86 and the 80501 don't offer 36 bits of addressing nor PAE. The 80521 Pentium Pro and later CPUs do. PAE support requires kernel code to enable and use up to 64GB of physical memory. The main difference between the 80521 Pentium Pro and earlier CPUs, other than the software transparent decoupled CISC/RISC core, is in cache and memory management. The 80521 introduced the now ubiquitous dedicated L2 cache bus, called a "backside bus" and an L2 cache fully controlled by the CPU core MMU. All previous CPUs dating back to the 80486 had their L2 caches sitting on the main system bus which created a bottleneck. Moving the L2 cache to a dedicated bus required a more sophisticated on chip MMU. This also requires kernel support, and AFAIK is the main difference between "i686" kernels and the "i486 i586" kernels. The other significant difference is the 36 bit physical address bus of the PPro and Physical Address Extensions, or PAE. When using one of the i686-bigmem kernels, PAE is enabled and the kernel can directly access up to 64GB of installed RAM. Again, the differences in the various 32bit kernels have nothing to do with the instruction sets being different. They are identical. The differences in the kernels are due to underlying features of the processor models and features of their respective platforms, _not the instruction sets_. -- Stan -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4c17491f.1040...@hardwarefreak.com