Windows 11 24H2 goes from “unsupported” to “unbootable” on some older PCs

malor

Ars Legatus Legionis
16,093
these are not PCs that will run Windows 10, Windows 11, or any modern apps particularly well.

Windows 10 LTSC is very lightweight, and typically runs at about the same speed as Windows 7 on the same hardware, although you'll probably be happier with 8 gigs than 4. And the IoT edition will get security patches through 2032.

It's buying a legit copy that's the difficult part. It's super easy to pirate, but wow, Microsoft really doesn't want to sell it to you.
 
Upvote
141 (142 / -1)

metalliqaz

Ars Scholae Palatinae
980
It's unclear why POPCNT has become the load-bearing CPU instruction for a whole bunch of Windows components
It's certainly possible they made a decision to start using that instruction but of course it is much more likely that they simply stared using either a new compiler or a new set of compiler switches during the OS compile. Likely to get some other benefit and what we see here is just a side-effect.
 
Upvote
213 (214 / -1)
Post content hidden for low score. Show…
Post content hidden for low score. Show…

L0neW0lf

Ars Tribunus Militum
2,194
Subscriptor++
1. This seems like a nothingburger story that every tech news site has rushed to embrace lest someone else "scoop" them. SSE 4.2 is available on almost anything you'd want to run Windows 11 on.

2. I can't imagine why I'd run Windows 10 or 11 on a system this old having discovered Linux Mint with Cinnamon (and while I'm mostly a Windows user, I've found Mint with Cinnamon to be a great alternative) unless you're gaming, in which case it's probably retro-gaming and should run a different OS than Win10 or Win11 as well.
 
Upvote
71 (88 / -17)
I will continue my journey of avoiding Windows 11 for as long as I possibly can, which is hopefully forever.
I recently picked up a mid-range Asus laptop for a really good price from a big-box office supply store that is closing. I was planning to replace Windows 11 Home with Linux, but the software for my wife’s new computerized embroidery machine only runs on Windows. So I dug in and made Windows 11 as good as Windows 11 can be. The result isn’t bad. It’s not great, but not bad either.
 
Upvote
24 (27 / -3)
Post content hidden for low score. Show…
2. I can't imagine why I'd run Windows 10 or 11 on a system this old having discovered Linux Mint with Cinnamon (and while I'm mostly a Windows user, I've found Mint with Cinnamon to be a great alternative) unless you're gaming, in which case it's probably retro-gaming and should run a different OS than Win10 or Win11 as well.

Windows 10 on Core 2 quad cores is definitely viable still, and there's a bunch of software that really prefers Windows. Upgrading the computers to something more modern cost next to nothing now sure, but I can imagine some edge cases where keeping something from that era around and on Windows is important.
 
Upvote
14 (20 / -6)

Fatesrider

Ars Legatus Legionis
24,977
Subscriptor
I will continue my journey of avoiding Windows 11 for as long as I possibly can, which is hopefully forever.
Try Linux. After 25 years on Windows I put that behind me last year. Linux does everything my Windows machine did, even using many of the same Windows-only programs. My gaming is pretty tame, but it installed and runs all the games I played.

If you're not intimidated by a CLI, can do online research, and aren't married to any Microsoft programs (though I believe most Office programs can be coaxed to run on Linux, though I haven't had a need to try), then it may be what you need.
 
Upvote
-11 (40 / -51)

fafalone

Ars Scholae Palatinae
817
Kernels and drivers are generally still written in assembly, so targeting specific instructions is almost always on purpose.

In the case of POPCNT, it can provide significant performance gains, because a single numeric value (e.g. word, dword, or quadword) can behave like an array. A normal array is made up of words, dwords, or quadwords, and is significantly larger, thus leading to larger code that may exceed CPU caches.

It could be an artifact of newer toolchains that target newer CPUs, or it could be a deliberate choice to improve performance.

The kernel and some drivers typically use small bits of assembly. They're predominantly in C.

Fun fact: You can write drivers entirely in VB6 (yes, kernel mode drivers).
 
Upvote
82 (83 / -1)

Emmanuel Deloget

Wise, Aged Ars Veteran
136
Subscriptor
Kernels and drivers are generally still written in assembly, so targeting specific instructions is almost always on purpose.

In the case of POPCNT, it can provide significant performance gains, because a single numeric value (e.g. word, dword, or quadword) can behave like an array. A normal array is made up of words, dwords, or quadwords, and is significantly larger, thus leading to larger code that may exceed CPU caches.

It could be an artifact of newer toolchains that target newer CPUs, or it could be a deliberate choice to improve performance.
No no no.

Kernel and drivers are mostly written in high level languages (most probably C for Windows, with bits of C++ in some drivers).

I concur with others here: this is very likely an upgrade in the tooling.

But Im not sure you'll see any benefit from this: counting bits is not a frequent operation, meaning that the gain is very limited.
 
Upvote
67 (72 / -5)

nicholas.lecompte

Smack-Fu Master, in training
51
Windows 10 LTSC is very lightweight, and typically runs at about the same speed as Windows 7 on the same hardware, although you'll probably be happier with 8 gigs than 4. And the IoT edition will get security patches through 2032.

It's buying a legit copy that's the difficult part. It's super easy to pirate, but wow, Microsoft really doesn't want to sell it to you.
I believe the issue is that MSFT doesn't want to offer long-term enterprise support to people wandering in off the internet. Windows 10 LTSC is for corporate customers, so it's the kind of thing you'd only purchase if you had a relationship with Microsoft's vendors.

I doubt Microsoft makes enough money off one-time ISO purchases to care about piracy - pirates can't complain to Microsoft when a security update crashes their server, so why worry? It's a drop in the bucket compared to the corporate customers with legal copies of Windows 10 LTSC running Office, Active Directory, VS Studio, etc.
 
Last edited:
Upvote
56 (56 / 0)

Carewolf

Ars Legatus Legionis
10,364
Hmm.. that is indeed an old instruction, but on the other hand also one easily replaced by executing 5 others.

Edit: Ah no, it takes 5 steps, but each step takes at least two instructions and maybe three (depending on the existance of the right combo instructions), and that is for 32bit, 64bit takes 6 steps. So it takes at least 12 instructions, possibly 18 to replace a 64bit popcnt instruction.
 
Last edited:
Upvote
18 (18 / 0)

UserIDAlreadyInUse

Ars Tribunus Angusticlavius
7,431
Subscriptor
The kernel and some drivers typically use small bits of assembly. They're predominantly in C.

Fun fact: You can write drivers entirely in VB6 (yes, kernel mode drivers).
Oh, Lord and Lady. Writing a kernel mode driver in Visual Basic sounds like designing a stage one rocket to run on Mentos and Diet Coke. Technically possible, but what sins in a life deserve that?
 
Upvote
87 (87 / 0)
Post content hidden for low score. Show…

Frodo Douchebaggins

Ars Legatus Legionis
11,995
Subscriptor
Try Linux. After 25 years on Windows I put that behind me last year. Linux does everything my Windows machine did, even using many of the same Windows-only programs. My gaming is pretty tame, but it installed and runs all the games I played.

If you're not intimidated by a CLI, can do online research, and aren't married to any Microsoft programs (though I believe most Office programs can be coaxed to run on Linux, though I haven't had a need to try), then it may be what you need.


Alas, the only reason I have a machine that runs WIndows is for games, and the main game I play is very much a "juice isn't worth the squeeze" situation in terms of how much work it would be to play on Linux.

I do run Mac and Linux for my other purposes, though.
 
Last edited:
Upvote
17 (24 / -7)

nicholas.lecompte

Smack-Fu Master, in training
51
No no no.

Kernel and drivers are mostly written in high level languages (most probably C for Windows, with bits of C++ in some drivers).

I concur with others here: this is very likely an upgrade in the tooling.

But Im not sure you'll see any benefit from this: counting bits is not a frequent operation, meaning that the gain is very limited.
popcnt gets used a lot in modern cryptography, which often is implemented in low-level assembly for both speed and correctness - sometimes you can't rely on the C compiler to make the correct optimization decision. In fact I think Intel added popcnt specifically at the NSA's request because security on x86 was slow and therefore often ignored. Other processors have had popcnt for decades.

But it also gets used in low-level linear algebra: the popcnt of a byte and the dot product of two 8-bit vectors are basically the same thing.
 
Upvote
63 (66 / -3)

im.thatoneguy

Smack-Fu Master, in training
70
Windows 10 LTSC is an for corporate customers, so it's the kind of thing you'd only purchase if you had a relationship with Microsoft's vendors.
Speaking of which, Good God, have you ever tried to buy Windows Server? Even that mainstream product is almost impossible to buy as not-OEM license (you can't use OEM yourself you have to sell the server to someone).

It's finally in the windows store... But it's marked up like 60% over MSRP and took like a year to be added and you can't buy extra cores etc.

You have to go through a reseller and it took me almost a year to find one that could sell me a license and send an invoice etc for just 2 licenses. Most would respond "sorry too small of a sale" or string me along trying to put together an invoice and then forget about me... Then get fired and then the new guy apologize say he'll look into it and then disappear before being fired etc.

They even have an Admin Portal with a web store connected to your account license page. It would be trivial to just add windows server to the list with MS365, etc. so dumb.

I had no guilt pirating (using past the 6 month trial) because they wouldn't take my money!
 
Last edited:
Upvote
35 (39 / -4)

WilhelmDux

Smack-Fu Master, in training
49
But Im not sure you'll see any benefit from this: counting bits is not a frequent operation, meaning that the gain is very limited.

As a C developer, POPCNT is also my cut-off point. CPUs without support for POPCNT are not really worth developing high performance software for.

In contrast to many of the other SSE/MMX extensions, POPCNT provides a basis for seriously performant code that generally deals with arrays of bits or booleans. Without POPCNT you need to deal with boolean arrays by:
  1. Representing each boolean as a byte instead of a bit - resulting in factor 8 more memory usage and less cache hits
  2. Encode/Decode bit-sized booleans packed in bytes - resulting in roughly 10 times more instructions per boolean
So that little innocent POPCNT instruction actually plays an important part in high performance software that deals with arrays of booleans or bits.
 
Upvote
117 (118 / -1)

JonimusPrime

Smack-Fu Master, in training
53
Windows 7 and 8 were definitely 100% usable on Core 2 Duo era machines with 8GB of ram and SSDs and I would be surprised if Win 10 was much worse.

These systems could definitely still be usable if there was the motivation to do so.

I don't blame anyone for using this instruction as a cutoff based on the perf improvements it gives but to imply these systems are too old to be usable is just not really the case.

The thing that would hurt them the most would be modern video codecs but if you could easily force youtube etc to give you h264 etc in trade for taking more bandwidth such that most of them will have at least some hardware decode support it would be more than usable on the modern web.
 
Upvote
11 (15 / -4)

0/0

Wise, Aged Ars Veteran
161
In storage I have an old system I did the core2duo to Quad Core Xeon E5450 sticker mod on years ago. Out of curiosity, I looked it up and it gets obliterated by the 6 watt N100 you see in those $99 AliExpress PCs.

You'd make up the cost in electricity savings alone if you're actually still running something that old.


https://www.cpubenchmark.net/compare/5157vs1236/Intel-N100-vs-Intel-Xeon-E5450
 
Upvote
45 (45 / 0)
Post content hidden for low score. Show…

keltor

Ars Praefectus
5,719
Subscriptor
MSVC 17.8 has a POPCNT "bug" (not clear if it's a bug or not really), but my guess is this was compiled with that. It starts to really aggressively use POPCNT all over the place. (For performance reasons.)

We only found out because someone still had a C2D laptop for some god awful reason and the update of our internal job scheduling utility failed to run the new build.
 
Upvote
23 (23 / 0)

DanNeely

Ars Legatus Legionis
16,036
Subscriptor
popcnt gets used a lot in modern cryptography, which often is implemented in low-level assembly for both speed and correctness - sometimes you can't rely on the C compiler to make the correct optimization decision. In fact I think Intel added popcnt specifically at the NSA's request because security on x86 was slow and therefore often ignored. Other processors have had popcnt for decades.

But it also gets used in low-level linear algebra: the popcnt of a byte and the dot product of two 8-bit vectors are basically the same thing.

I think it's worth saying why this is the case explicitly. With Cryptography the issue isn't the compiler being wrong in general; it's that a lot of the things you normally want code to be optimized to do are actively harmful for cryptographic security.

Normally you want your code to run as quickly and with as little memory/etc used as possible. In crypto you generally need it to run in the exact same amount of time and with the exact same resource consumption for all inputs because doing otherwise creates side channels that attackers can use to break the system. It's much safer to just write in assembly and not have to worry that some well meaning person might decide to make things better by turning on compiler optimizations or a compiler bug might result in optimizations running even when they're theoretically switched off.
 
Upvote
69 (69 / 0)

keltor

Ars Praefectus
5,719
Subscriptor
And Linux continues to run on virtually anything and doesn't play these stupid Microsoft games
Linux has no issues with cutting off hardware as it's not a "thing" to start with. And instruction issues on older devices happens regularly, funny enough the ones with the issues are POPCNT and PCMPESTRI, both are SSE 4.2/4a commands, PCMPESTRI is a string comparison optimization. Both show up when things got compiled with -mnative on newer processors since especially POPCNT is super useful.
 
Upvote
46 (48 / -2)

MidnightHacker

Ars Centurion
352
Subscriptor
1. This seems like a nothingburger story that every tech news site has rushed to embrace lest someone else "scoop" them. SSE 4.2 is available on almost anything you'd want to run Windows 11 on.

2. I can't imagine why I'd run Windows 10 or 11 on a system this old having discovered Linux Mint with Cinnamon (and while I'm mostly a Windows user, I've found Mint with Cinnamon to be a great alternative) unless you're gaming, in which case it's probably retro-gaming and should run a different OS than Win10 or Win11 as well.
My old iMac runs Win11 pretty fantastically for normal computing. No complaints here. And it looks like it will continue to work as the CPU is listed as having the instruction set. That being said, I'll just move it over to Linux when the time comes. I suspect this is why Microsoft put up all the fake barriers. To not be committed to supporting the old hardware when the time came when they actually had a good reason to not support it.

Thst being said, Microsoft could handle things better. If a computer still boots and is relatively fast, a company like Microsoft (or Apple or Google for that matter) could continue to make their operating systems work on many old systems and not really feel an impact to their bottom line. Why push folks with these systems away from you? I'm sure a company like Microsoft can more than cover their costs with what they make off of all of the telemetry data they vacuum up as well as OneDrive subscriptions, etc.. It just feels so wasteful.
 
Upvote
-14 (9 / -23)

fafalone

Ars Scholae Palatinae
817
Oh, Lord and Lady. Writing a kernel mode driver in Visual Basic sounds like designing a stage one rocket to run on Mentos and Diet Coke. Technically possible, but what sins in a life deserve that?

It's just a fun hack. The exact opposite of what the language was meant for, with all sorts of barriers to it. Your APIs have to go in a type library, because that's the only way they get put in the IAT instead of called with LoadModule/GetProcAddress. You have to use undocumented switches to modify the linking procedure to override the entry point. Then you have to strip out the reference to the runtime DLL and cleverly avoid the huge portion of language features that rely on it or use API calls in the background. It wasn't until 17 years after VB6 came out someone finally figured out how to do it.

There's a backwards compatible successor to VB6 now that can compile it for 64bit Windows too.

For anyone curious about this exercise in masochism, it was a fun project.
 
Upvote
44 (44 / 0)

Rosyna

Ars Tribunus Angusticlavius
6,966
Most likely, they just changed the compiler target. The compiler tries to use the most efficient instruction available.

Before POPCNT, the compiler probably used a combination of less efficient instructions.
Let’s see if they ever switch the minimum to Haswell or Broadwell…
 
Upvote
6 (9 / -3)