Originally posted by xfcemint
View Post
Vista graphic ABI is not the same as Windows 11 graphics ABI. There have been quite a few changes in the middle.
There are quite a few changes in the middle. Big thing here is Microsoft is locking the compiler you use to make kernel drivers.
https://learn.microsoft.com/en-us/wi...-wdk-downloads
Windows 11, version 22H2 | Download the Windows Driver Kit (WDK) | | Download the Windows Driver Kit (WDK) |
Windows 11, version 21H2 | Windows 11, version 21H2 WDK | ||
Windows Server 2022 | WDK for Windows Server 2022 | ||
Windows 10, version 22H2 Windows 10, version 21H2 Windows 10, version 21H1 Windows 10, version 20H2 Windows 10, version 2004 |
WDK for Windows 10, version 2004 | ||
Windows 10, version 1909 Windows 10, version 1903 |
WDK for Windows 10, version 1903 | ||
Windows 10, version 1809 Windows Server 2019 |
WDK for Windows 10, version 1809 | ||
Windows 10, version 1803 | WDK for Windows 10, version 1803 | ||
Windows 10, version 1709 | WDK for Windows 10, version 1709 | ||
Windows 10, version 1703 | WDK for Windows 10, version 1703 | ||
Windows 10, version 1607 Windows 10, version 1511 Windows 10, version 1507 Windows Server 2016 |
WDK for Windows 10, version 1607 | ||
Windows 8.1 Update | WDK 8.1 Update (English only) - temporarily unavailable WDK 8.1 Update Test Pack (English only) - temporarily unavailable WDK 8.1 Samples |
||
Windows 8 | WDK 8 (English only) WDK 8 redistributable components (English only) WDK 8 Samples |
||
Windows 7 | WDK 7.1.0 |
Yes from Windows 7 to Windows 11 there 13 different driver development kits. A driver make with Windows 11 22H2 driver development kit will not work on Windows 11 21H2 system. Not all Windows 7 drivers as in one made with WDK 7.1.0 will work with Windows 8 let alone going forwards to Windows 11.
Yes a Windows Vista driver might load in windows 11 but that if you are lucky. Yes better chance than Linux kernel CONFIG_MODVERSIONS but its the same basic thing of check the version information in the driver and attempt to link it up right that going on inside windows with a little bit extra abstraction for known cases where its not going to work.
So Windows 7 to 11 you have 13 different compilers. That is 13 different compiler quirks to deal with and Microsoft still has failures because this is a big enough problem space to stuff you over. Now you look at Linux there are over 600 different Linux distributions in active development large number making their own kernels. Worse each kernel version they release could have used different compiler version and had distribution own unique patches added altering offsets of things. So you now have a many thousand wide problem of compiler quirks with upstream API/ABI changes as well..
xfcemint I guess I was not detail enough. The reality is if a driver from the prior version of windows works on current version of windows there is a lot of luck involved. Yes lot of cherry picking the times it successful and ignoring all the times it not for anyone claim it works. Now the reason why it does not work under Windows all the time big one is the differences between driver development kit compilers. Now you look at Linux distributions and start counting the compilers used its like darn I am stuffed. Lets take debian changes the compiler version used almost as often as they make a new kernel and of course ubuntu does not use the same compliers as debian in their builds then Redhat does not use the same compilers as everyone else.... Start seeing the level of doomed yet.
Now the fact that everyone using the Linux kernel is using different compilers with different quirks to build kernel means even attempting to make a high performance microkernel you are screwed because those compiler quirks are going to get you with alterations to memory alignments and other things as you attempt to use shared memory to improve performance..
There is a downside to freedom of open source for OS kernel be it microkernel or monolithic the lack of ablity to control the compiler that is being used to build it once enough independent parties get involved.
The reality people claim windows works for driver compatibility without looking at how Microsoft Windows is doing it and the failures it is suffering from. Linux is not the only thing with problem in this department. Linux problem space is worse and the ones that expand the problem space to hell is not the alone upstream kernel developers you need to include the downstream distribution makers who do not cooperate with each other..
Comment