Kernel Question Intel vs AMD


  1. Posts : 37
    Win 10 Pro x64
       #1

    Kernel Question Intel vs AMD


    Good Afternoon All,

    I have been on W10 since it's beginning. I came from 14 years in the Linux world. In Linux, we were able to build kernels specifically for an Intel or an AMD CPU to take advantage of all the hardware features of a given CPU family.

    Now we don't build kernels for Windows - but - does W10 use a different kernel if it is installed on an AMD CPU vs an Intel CPU?

    Or is the entire W10 kernel a generic x86_64 build without CPU specific optimizations? Or something else? I am ignorant on how W10's kernel takes advantage of a given CPU's hardware features, and would like to replace my ignorance with knowledge.

    Google is not coming up with any answers.

    Thanks!


    Dave
      My Computer


  2. Posts : 19,518
    W11+W11 Developer Insider + Linux
       #2

    I don't think so, I changed disks with same windows installation form AMD to Intel and other way round so many times and it mostly worked if drivers were available.
      My Computers


  3. Posts : 809
    Win10
       #3

    I don't know exactly how the Windows kernel components are built but I'm assuming that they are compiled with Microsoft's own compiler.

    Most likely they use generic optimizations for all CPUs. Any performance-dependent code, of which I don't know if there's any in the kernel itself, could use runtime detection of the CPU.

    /favor:blend
    (x86 and x64) produces the code that is optimized for the specifics of micro-architectures in the AMD and the Intel architectures. While /favor:blend may not give the best performance possible on a specific processor, it is designed to give the best performance across a broad range of x86 and x64 processors. By default, /favor:blend is in effect.

    /favor:ATOM
    (x86 and x64) produces the code that is optimized for the specifics of the Intel Atom processor and Intel Centrino Atom Processor Technology. Code that is generated by using /favor:ATOM may also produce Intel SSSE3, SSE3, SSE2, and SSE instructions for Intel processors.
    /favor:AMD64
    (x64 only) optimizes the generated code for the AMD Opteron, and Athlon processors that support 64-bit extensions. The optimized code can run on all x64 compatible platforms. Code that is generated by using /favor:AMD64 might cause worse performance on Intel processors that support Intel64.
    /favor:INTEL64
    (x64 only) optimizes the generated code for Intel processors that support Intel64, which typically yields better performance for that platform. The resulting code can run on any x64 platform. Code that is generated with /favor:INTEL64 might cause worse performance on AMD Opteron, and Athlon processors that support 64-bit extensions.
      My Computer


  4. Posts : 37
    Win 10 Pro x64
    Thread Starter
       #4

    Thank You for the info.

    Dave
      My Computer


  5. Posts : 1,255
    Windows 10 Pro
       #5

    I very much doubt there is a separate kernel for Intel and AMD processors. Maintaining multiple versions of the kernel introduces complications that developers would prefer to avoid.

    This is not to say that the kernel is unaware of the differences between Intel and AMD or the special features each has to offer. They are very compatible at the application level but are far from being clones of each other. There are significant differences which must be handled differently.

    When the system boots the kernel detects whether the CPU is Intel or AMD and the special features of each. Modern CPUs provide extensive facilities for this purpose. Even within Intel and AMD there are important details such as the number of cores, whether or not Hyperthreading is enabled, and much more. As far as possible the differences would be confined to the portions of the kernel where these differences matter. This allows most of the kernel to be identical for the different CPUs. I have noticed that in Windows 7 there are amdppm.sys and intelppm files that are loaded as appropriate.

    Prior to Vista there was a separate kernel for single and multicore CPUs. The multicore kernel would work with a single core but the single core kernel was optimized for this. But by the time Vista was released the differences had largely disappeared and single core systems were much less common so the single core kernel was dropped.

    Do understand that some this is guesses based on what I have read over the years. Don't expect to see much official documentation regarding this. Some things are best left undocumented. Once something is documented developers will take advantage of it and that makes it very difficult to make changes without breaking compatibility.
      My Computer


  6. Posts : 37
    Win 10 Pro x64
    Thread Starter
       #6

    @LMiller7,

    THANK YOU!


    I understand. Linux and Windows are worlds apart - and considering that Linux is devolving (from my perspective as a 61 year old sys admin), I just got tired of fighting with it - especially since SystemD screwed myself, and a bunch of my clients servers - who are now running Windows server 2012 R2.

    W10 is being good to me, after I remove the juvenile junk from it that is. It does what I need it to do and I don't have to fight with it.

    Thank You very much for your post.

    Best,

    Dave
      My Computer


  7. Posts : 19,518
    W11+W11 Developer Insider + Linux
       #7

    There must be separate kernel for phones and other portable devices though.
      My Computers


  8. Posts : 4,224
    Windows 10
       #8

    My go-to reference for this kind of stuff comes from Mark Russinovich and a rotating passel of co-authors -- namely, Windows Internals (Part 1, 7th edition, in this case). Here's a diagram of what it calls a simplified Windows architecture that shows the kernel. None of the attendant discussion or other sources I can find talk about creating different kernel versions. All that stuff is handled by the HAL and Device Drivers, as far as I can tell.
    HTH,
    --Ed--
    Kernel Question Intel vs AMD-simp-win-arch.jpg
      My Computers


  9. Posts : 11,247
    Windows / Linux : Arch Linux
       #9

    dcbdbis said:
    @LMiller7,

    THANK YOU!


    I understand. Linux and Windows are worlds apart - and considering that Linux is devolving (from my perspective as a 61 year old sys admin), I just got tired of fighting with it - especially since SystemD screwed myself, and a bunch of my clients servers - who are now running Windows server 2012 R2.

    W10 is being good to me, after I remove the juvenile junk from it that is. It does what I need it to do and I don't have to fight with it.

    Thank You very much for your post.

    Best,

    Dave
    Hi there

    actually if you stick to the 3 major Linux distros used by professional Internet providers and cloud servers used over the world you'll probably find 3 incredibly stable versions where networking runs just fine and maintenance is considerably easier than any Windows system I've ever laid my hands on including W10 ---they are READ HAT (nr 1) with its CENTOS open source off shoot, SUSE with its off shoot OPENSUSE and UBUNTU / debian derivatives. These work 100% for enterprises and if you don't want latest and greatest newest stuff then all are fine and current releases of all 3 have long term support until around 2022.

    They work fine on Desktop or home as Nas server OS'es too. Things like Linux Mint etc are great for testing new hardware / software but with any bleeding edge technology you will come up against problems - but great strength of Linux is the open source nature so literally 100,000;s of developers / hobbyists from around the world can work on problems -- of course this is not without risk which is why businesses go for the "big 3". Even Ms cloud services uses Red Hat infrastructure and it has people in its own service sector who work on this -- not everybody in Ms works on Windows. !!

    That said Windows is still fantastic for desktops -- just think of all the different hardware and software thrown at it that just works --- I'll bet there's a few Linux admins around when trying to sort out a piece of hardware plug it into windows to see what it says -- C'mon guys be honest !!!!. Windows Networking though IMO was and still is a dog -- but you can't have everything.

    main difference is that Linux kernel is highly modular where modules can be dynamically inserted / removed (depmod etc etc) so can easily be compiled for different hardware - whereas windows is a bit more integrated.

    What I suspect is that some sort of "meta code" is designed to design the OS in Windows and then this is re-compiled to take specific advantage of the particular items of hardware being used. Linux has another advantage over windows in that a user can't run any privileged code - sudo or root user only can do that whereas in Windows even if a user can'r execute certain commands you can (if you know how) cause "privileged" programs to run which can wreak all sorts of havoc. Also Windows programs can (although they shouldn't) directly access hardware without using published api's (application interfaces) and can access memory too which is often where hacks start from..

    Cheers
    jimbo.
      My Computer


  10. Posts : 37
    Win 10 Pro x64
    Thread Starter
       #10

    @jimbo45,

    Thank you for your post. I do appreciate it.

    I've done a lot of custom kernels for proprietary hardware to include device drivers I wrote. I am very familiar with Linux/FreeBSD kernels - and the CPU optimizations I can pass to GCC/CLANG. I am not familiar with Windows - thus my post.

    SystemD caused my clients too many issues, and caused me too much time remedying issues that SystemD caused. For technical reasons all over the web that I will not rehash here - I will not use it.

    Until SystemD goes away, I will not install Linux on a clients machine again. I am so finished with it. It caused me way too much frustration. I do not appreciate an "init" system shutting down a daemon that I launched without warning. I don't like alarm calls @ 03:00 in the AM.

    Linux - Nope - I am done with it.

    Regards,

    Dave
      My Computer


 

  Related Discussions
Our Sites
Site Links
About Us
Windows 10 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 10" and related materials are trademarks of Microsoft Corp.

© Designer Media Ltd
All times are GMT -5. The time now is 10:37.
Find Us




Windows 10 Forums