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...
Intel and AMD CPUs
- AlfaOmega08
- Member
- Posts: 226
- Joined: Wed Nov 07, 2007 12:15 pm
- Location: Italy
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.
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.
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
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
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.
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.