Intel and AMD CPUs

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
Post Reply
User avatar
AlfaOmega08
Member
Member
Posts: 226
Joined: Wed Nov 07, 2007 12:15 pm
Location: Italy

Intel and AMD CPUs

Post by AlfaOmega08 »

While windows can run on Intel and AMD processors, Linux needs to be reconfigured and recompiled to run on that specific processor. So my question is:
What are the differences between Intel and AMD processors?
In both there are GDT, IDT, paging etc?
I know AMD's supports the 3DMax Intruction set. Any other difference.

I'd like to have my os ready for both processors...
Korona
Member
Member
Posts: 1000
Joined: Thu May 17, 2007 1:27 pm
Contact:

Post by Korona »

Linux does not require recompilation. It has a optimized kernel for various AMD processors, but the generic kernel runs fine on all x86 CPUs.
AMD does not have IVT (Intel Virtualization Technology) but has its own virtualization technology. There are a few other differences but basically both processors are compatible.
User avatar
AJ
Member
Member
Posts: 2646
Joined: Sun Oct 22, 2006 7:01 am
Location: Devon, UK
Contact:

Post by AJ »

Hi,

From what I know (and I'm sure someone else will expand in more detail), it's mainly a matter of optimisations and both vendors have, in the past, tended to follow suit eventually. For example, MMX was an Intel thing - but now you expect AMD and Intel CPU's to contain MMX instructions. AMD introduced AMD64, but Intel CPU's now support this too.

One difference I can think of that affects OS devvers is whether you go for SYSENTER/SYSEXIT or SYSCALL/SYSRET instructions.

Certainly basic stuff, like GDT's IDT's, paging and so on all work in the same way. I suggest you obtain the optimisation reference manuals from each vendor - that's where you'll find the biggest differences.

Cheers,
Adam
Osbios
Member
Member
Posts: 116
Joined: Fri Jun 10, 2005 11:00 pm

Post by Osbios »

At fist I know that at last NT used different Kernels for different Processors.

On today Linux you often have a Kernel for 686 or higher. There are also optimized Kernels for Intel/AMD/other vendors. The reason for this is that the same x86 commands have different effects on the pipeline and performance.

There is a Option for "Generic x86 support". I'm not sure about this, but I think if you disable it and chose optimisation for e.g. Athlon (K7). The Processor to run the kernel needs at last the same extensions (in this case MMX, SSE, 3DNow, 3DNow2)

But AMD given up on 3DNow. Now AMD and INTEL widen the same extension SSE. But there is SSE, SSE2, SSE3, SSE4, SSE4a, SSE5. You get the picture. ;)

The other posters already told the rest.
Post Reply