Should anyone really want to use Win11?
There were many heated discussions regarding Windows 11, especially as it included a limited set of supported CPUs (post-2017, basically) and it seems to mandate either TPM 2.0 or 1.2 (I’m not sure they made up their minds). This is not an attempt to a serious analysis of the situation, but only a rather jocular reflection on Microsoft Windows and its future.
Stoopid sheeple
There is a global chip crisis. Taiwan chipmakers keep workers ‘imprisoned’ in factories to keep up with global pandemic demand. Windows 11 will leave millions of PCs behind (hundreds of millions would be more accurate)… or maybe not: Microsoft is letting OEMs ship Windows 11 PCs without any TPM chip. But this will change in 2025, the retirement date of Win10 Home and Pro. Microsoft is anything but “green”!
Most of the opinions of the sheeple on the social networks are favorable, though: why, Windows 10 is beautiful! Even some macOS people liked it. Who cares Windows is a spying machine, and that Federal law enforcement agencies secretly seek the data of Microsoft customers thousands of times a year, according to congressional testimony Wednesday by a senior executive at the technology company? Not even the press: I couldn’t find any other article on the routine spying by Microsoft!
The sheeple also wants it for some other reasons: they’re stupid enough to fall for the “all-in-one” concept: look, ma, Windows can run Linux (WSL2)! Look, ma, Windows will be able to run (some) Android apps!
Look, ma, what a nice gift!
The security argument: a fallacy
This is a fake argument, for two reasons:
- Secure Boot and TPM were not designed to curb the malware and increase the security, but to prevent people from installing anything else but Microsoft Windows.
- Despite the wave of ransomware attacks, and despite what the corrupt pundits are saying, the solution is not Secure Boot.
Fact: since August 2020, I don’t use any antivirus on Windows 7 (yes, seven), and I really disabled all the security features of the OS; it runs much faster this way. My wife’s old Win7 laptop doesn’t have any active AV either (Kaspersky changed from decent to pure crap). Only her new HP PC which runs Win10 has Microsoft’s own security features enabled, but I disabled Secure Boot (a bit painfully) to be able to test a few Linux distros using USB flash drives.
If ransomware owns you, you’re either an idiot, or you’re running unpatched server software.
Also, the major security issue nowadays is the dis-invention of the jumper.
In such a world, there are idiots who designed NAS devices able to reset to factory via the Internet, leading to grotesque situations:
- The Verge, June 24, 2021: Unplug your WD My Book Live, or you might find your drive’s data wiped. The company says malicious software appears to be erasing data.
- Ars Technica, June 25, 2021: “I’m totally screwed.” WD My Book Live users wake up to find their data deleted. Storage-device maker advises customers to unplug My Book Lives from the Internet ASAP.
- Krebs on Security, July 2, 2021: Another 0-Day Looms for Many Western Digital Users
The proof that hardware and software designers, and electrical engineers are predominantly stupid can be found e.g. in the comments on Hacker News that follow this one:
I want hardware switches for:
1. firmware updating
2. write-enable for disk contents
3. turning the microphone on
4. turning the camera on
As I said, there’s nothing Secure Boot and TPM would or will fix. Nada. It’s engineers and their bosses who nid a fix. Like, being sent to Siberia, in the Gulag.
Let’s not forget that this Windows 11 is based on the same Windows 10 as the one Microsoft routinely fails to patch properly, even when they release patches: Microsoft Tries, Fails to Patch Critical Windows Vulnerability. Chaos Ensues.
Not everyone was happy, though
Dedoimedo, as a true mole, fell for Windows 11 (never trust anyone, they say). But some people made fun of Microsoft’s absurd requirements:
我的PC不能升级Windows11了😭 pic.twitter.com/jFIspciaEA
— 日向花和 Hanawa Hinata (@hanawa_hinata) June 28, 2021
我的也是😭 pic.twitter.com/mxea0R2fnM
— Jancgk (@jancgk) June 28, 2021
Since they were all using Visual Basic, I thought I would too. pic.twitter.com/CpGIWHPIE4
— Kawa, touch starved and tired (@NoxicoDev) July 1, 2021
Oh no…I guess my trusty old PC is reaching the point of retirement too. How sad. pic.twitter.com/s2763RIPJP
— GitHub Copilot STOP IT (@RigoLigoRLC) June 28, 2021
It gets worse, buddy. pic.twitter.com/tbWdNugQVB
— Percy The Prinplup (@PPrinplup2) July 1, 2021
What’s really ridiculous is another “feature” of Windows
Does anyone know whether Windows 11 is able to create and delete files with names such as AUX.H, PRN.TXT, CON.JPG and the like?
It is 2018 and this error message is a mistake from 1974.
This limitation, which is still found in the very latest Windows 10, dates back to BEFORE STAR WARS. This bug is as old as Watergate. pic.twitter.com/pPbkZiE57t— foone (@Foone) November 3, 2018
So, why does this happen? So Unix (which was only 5 years old at this point) had the good idea of “everything is a file” which mean you could do things like write to sockets, pipes, the console, etc with the same commands and instructions.
— foone (@Foone) November 3, 2018
This idea was brought into CP/M by Gary Kiddal in 1974.
You could do neat things with it like copy data off the serial port into a text file, or print a textfile right from the command line!— foone (@Foone) November 3, 2018
This is done in unix by having special files existing in special folders, like /dev/tty for the console or /dev/lp0 for the first printer.
You can get infinite zeros from /dev/zero, random bytes from /dev/random, etc!— foone (@Foone) November 3, 2018
but here’s the problem: CP/M is designed for 8-bit computers with very little memory, and no hard drives. At best you’ve got an 8″ floppy drive.
So directories? you don’t need ’em. Instead of directories, you just use different disks.— foone (@Foone) November 3, 2018
but without directories you can’t put all your special files over in a /dev/ directory.
So they’re just “everywhere”, effectively.
So if you have FOO.TXT and need to print it, you can do “PIP LST:=FOO.TXT” which copies foo.txt to the “file” LST, which is the printer.— foone (@Foone) November 3, 2018
and it works where ever you are, because there are no directories! it’s simple.
but what about extensions? Here’s the problem: programs like to name their files with the right extension.
— foone (@Foone) November 3, 2018
so if you’re running a program and it goes “ENTER FILENAME TO SAVE LISTING TO” you could tell it LST to print it or PTP to punch it out to tape (cause it’s 1974, remember?)
but the program might try to put .TXT on the end of your filename! LST.TXT isn’t the printer, right?— foone (@Foone) November 3, 2018
Nah. It is. These special devices exist at all extensions, so that this works. so if “CON” is reserved to refer to the keyboard, so is CON.TXT and CON.WAT and CON.BUG
Eh. It’s a hack, but it works, and this is just on some little microcomputers with 4k of ram, who cares?
— foone (@Foone) November 3, 2018
Well CP/M caught on widely through the late 70s and early-80s. It was one of the main operating systems for business use. It defined an interface which meant you could write CP/M code on a NorthStar Horizon and run it on a Seequa Chameleon.
— foone (@Foone) November 3, 2018
The lack of a portable graphics standard kept it out of the games market for the most part (though there are Infocom releases) so it was mainly business users.
But it was big, so naturally IBM wanted it for some “PC” project they were doing in early 1980— foone (@Foone) November 3, 2018
So IBM intended to launch the IBM PC with several operating systems, and were expecting CP/M to be the “main” one. But CP/M for the x86 didn’t come out until 6 months after the IBM PC launched… and it cost 240$ vs 40$ for DOS.
— foone (@Foone) November 3, 2018
so the vast majority of users ended up using Microsoft’s PC-DOS, which was an evolution of a new OS developed by Seattle Computer Products.
MS purchased Tim Paterson’s project and developed it into PC-DOS (which later became MS-DOS, if you’re not aware)— foone (@Foone) November 3, 2018
Tim Paterson’s OS was called “QDOS”, for “Quick and Dirty Operating System”. It was basically written because CP/M didn’t have an x86 version yet, and an attempt to solve some of the limitations of CP/M.
It was definitely inspired by CP/M, in a lot of ways.— foone (@Foone) November 3, 2018
One of those main ways was keeping the idea of special files and no directories, because that was a useful feature of CP/M.
So QDOS and PC-DOS 1.0 have AUX, PRN, CON, LPT, etc, too!— foone (@Foone) November 3, 2018
For PC-DOS 2.0 released in 1983 for the new IBM XT, Microsoft significantly revamped PC-DOS. The IBM XT featured a hard drive, so PC-DOS needed directories support.
You need them to keep your massive 10mb hard drive organized, obviously!— foone (@Foone) November 3, 2018
But here’s the problem: Users have been using these special files since PC DOS 1.0 release two years earlier. Software has been written that uses them! batch files have been written that support them.
with directories, Microsoft could now make a C:\DEV folder… but they didn’t.— foone (@Foone) November 3, 2018
For what wouldn’t be the last time, Microsoft sacrificed sanity for backwards compatibility:
Special files are in EVERY DIRECTORY with EVERY EXTENSION.
So your “DIR > LPT” trick to print the directory listing doesn’t break because you’re in C:\DOS instead of A:\— foone (@Foone) November 3, 2018
But we’re not running DOS 2.0, of course…
And when Windows 95 was released, it was built on top of DOS. So it naturally inherited this behavior. (Windows 1/2/3 similarly did, but Win95 was much more an OS than they were)— foone (@Foone) November 3, 2018
But hey, we’re not running Windows 95 anymore! The current branch of windows is based on Windows NT, not Win95.
But Windows NT wanted compatibility with DOS/Windows programs. And XP merged the two lines.
So these special files still work, FORTY FOUR FUCKING YEARS LATER— foone (@Foone) November 3, 2018
Feel free to try it yourself! Open explorer, do “new text file”, and name it con.txt
aux.txt
prn.txtit’ll tell you NOPE pic.twitter.com/29JEBzAGpw
— foone (@Foone) November 3, 2018
So because of Gary Kiddal going “Special files representing hardware devices! That’s a neat idea, Unix. I’ll borrow that idea and try to hack it into my toy-computer OS” so long ago that people born that year can have children old enough to drink… we can’t name con.txt
— foone (@Foone) November 3, 2018
Microsoft gives the official list here:
CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9https://t.co/1eYQVBKO65— foone (@Foone) November 3, 2018
For extra fun, accessing C:\con\con (or C:\aux\aux) on win95 would cause it to bluescreen instantly. That was hilarious back in 1995, because it was a 21-year-old bug! Imagine some misdesign hanging on that long? pic.twitter.com/Scq1xLcWBD
— foone (@Foone) November 3, 2018
And if you want the backstory for I got into this mess where I have a file I can’t copy:
These special-device names are implemented at the OS level, rather than the filesystem level. So they’re perfectly valid NTFS filenames, and I was using an NTFS drive in linux.— foone (@Foone) November 3, 2018
And apparently OS/2 didn’t implement these special names either, cause IBM shipped some opengl headers as AUX.H on one of the OS/2 devcon disks. pic.twitter.com/GtrACvbxrs
— foone (@Foone) November 3, 2018
So today I was trying to backup this NTFS drive onto my main PC and WHOOPS CAN’T COPY ALL FILES CAUSE OF BUGS OLDER THAN MOST PEOPLE READING THIS
— foone (@Foone) November 3, 2018
OK sorry I was stuck in hospitals and/or asleep since I wrote this.
A couple follow ups:
1. The CP/M inventor’s name is “Gary Kildall”, not “Gary Kiddal”.
Sorry, I posted this at 5am after being in the hospital for like… 8 hours?— foone (@Foone) November 4, 2018
2. CP/M actually didn’t do these special names as simply as I described them, which is a fact I either never learned or had since forgot.
It actually required them to be followed by a colon, as if they were a drive name.
So PRN: is the printer, PRN is not.— foone (@Foone) November 4, 2018
3. CP/M didn’t implement these at the OS layer like DOS did! They were just included in PIP, the file copy command. So you couldn’t do the DOS trick of telling a program to save to PRN.TXT to print it.
I didn’t mean to imply CP/M did, just DOS, but I don’t think I made this clear— foone (@Foone) November 4, 2018
4. PC DOS 1 didn’t actually have redirection or pipes, so you couldn’t do the redirects I suggested. I forgot that. They were added in PC DOS 2.0 in 1983.
PC DOS 1 did support copying to/from special files though, so my general point was correct, even if my example was confusing— foone (@Foone) November 4, 2018
and if it wasn’t clear, my intent was never to be like “WINDOWS SUCKS” with this. Backwards compatibility is, in general, a good thing. In fact, I’d like MORE backwards compatibility, not less.
— foone (@Foone) November 4, 2018
But I was just flabbergasted at hitting a bug from 44 years ago, while running Windows 10 and copying from a USB 3.0 SSD to another SSD.
It’s like you’re living on a space station and get trampled by a horse.
— foone (@Foone) November 4, 2018
putting <img src=”con/con” /> was a fun game around 2000 as I was a very l33t h4xx0r in elementary school
— @uint8_t@chaos.social (@uint8_t) November 3, 2018
con\con!!
I haven’t thought about this in 20 years.
Remember this cruel trick: use “{S con/con” to BSOD anyone with sound turned on in an aol chat?
— Rick Waldron (@rwaldron) November 3, 2018
You could do the same thing with \001CTCP SOUND CON/CON.WAV on Microsoft Comic Chat on IRC too.
Microsoft ran the primary IRC server used by it and it still worked, years later.
— fraggLe! (@fwaggle) November 3, 2018
It would hold on till Windows 98 SE — was patched with a hotfix when too many web sites started to abuse it, though.
— Yuri Litvinenko (@ylitvinenko) November 3, 2018
I created aux.h without any problem. But i can’t delete it now, same error message. pic.twitter.com/gUJS2ar5aY
— Лёша Кластер (@Cluster_M) November 5, 2018
LATE EDIT: The OP also wrote a blog post: Teaching an old ERROR new tricks.
Basically, unless they fix it, Windows 11 is nothing but a hugely enhanced, graphical version of CP/M (1974) that…
- Cannot run MS-DOS or Win3.1 (16-bit) apps directly, because 64-bit versions of Windows have stopped supporting NTDVM.
- Cannot create and manage files named CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, or LPT9, regardless of their extension.
- And the reason is a design decision taken in 1974 in CP/M, then in 1981 by IBM, and in 1993 by Microsoft (Windows NT 3.1).
- But again, Windows nowadays can’t run CP/M, nor MS-DOS software, except in an emulator!
Recommended products under the Microsoft brand
Woohoo! That would be awesome, thank you! I also have an old watch with the blibbet Microsoft logo that I have no idea of its origin. The person I acquired it from said she *thinks* it came from an internal Sales and Marketing conference back in the 80’s! pic.twitter.com/H05dPoaFzR
— BetaCollector (@beta_collector) June 26, 2021
Any excuse I have to look at this watch is a good excuse, lol. 😍 (Thought you might really dig this one if you haven’t seen one yet, @mistymadonna!) pic.twitter.com/aoK8WSWEXj
— BetaCollector (@beta_collector) June 26, 2021
Check out my new @Windows 95 watch to go along with my Windows 95 jacket I posted the other day! Based on my research so far, these were only made and distributed in Japan. Not sure if they were just sold in the company store or what. (Ever seen one of these, @mistymadonna? 😃 ) pic.twitter.com/0gPAShOwAC
— BetaCollector (@beta_collector) July 2, 2021
Late Edit BONUS
I need to coordinate it so that when I eventually die, my final tweet reads
ERROR READING DRIVE A
ABORT RETRY FAIL? pic.twitter.com/uMW7TTi8dA— foone (@Foone) July 19, 2021
BTW to bring it back to the original image because someone asked:
Originally DOS only had Abort, Retry, Ignore.
MS/PC DOS 3.3 changed it to “Abort, Retry, Fail” (although you could still get Ignore on some operations)— foone (@Foone) July 19, 2021
The difference between Abort and Fail is that Abort means “kill the program, dump me back to DOS”
Fail means “give the program an error status”— foone (@Foone) July 19, 2021
So if you were copying a file to a disk, there really wasn’t a difference. It’s not working, so either way COPY is about to exit.
— foone (@Foone) July 19, 2021
But if you were instead trying to save our a WordPerfect document you’d been writing, they definitely are different. You want to select FAIL so that you can get back to the program and try saving to another disk.
— foone (@Foone) July 19, 2021
As abort would completely kill the editor, losing the document you had in memory.
— foone (@Foone) July 19, 2021
You probably also want to use fail in other cases too:
DOS was never great about cleaning up resources in use. It’s just not that kind of operating system. It’s more of a program loader that also provides some community shared functionality like file management— foone (@Foone) July 19, 2021
And aborting a process really means terminating the process right the fuck now. The program doesn’t run anymore, which includes not running any shutdown code.
— foone (@Foone) July 19, 2021
If the program had done anything that won’t be automatically cleaned up by dos (and that’s a lot!), this leaves the system in a somewhat janky state
— foone (@Foone) July 19, 2021
Like, imagine you have a simple program that does one thing:
It loads a sound file off the disk and plays it on your soundcard.
Simple.
So it starts up, configures the sound card for playing audio, reads the first chunk of the file, then starts playing it.— foone (@Foone) July 19, 2021
Then it gets to the second chunk of the file, the disk errors, and the user gets that ABORT RETRY FAIL message.
Now the program isn’t running while this message is shown: it’s completely halted.
What happens to the sound card?— foone (@Foone) July 19, 2021
The sound card operates independently.
So if it’s playing PCM sound, the buffer will loop and you get that record skipping sound.
If it’s doing FM synthesis, you just get the currently playing notes playing forever— foone (@Foone) July 19, 2021
If the user selects Fail, the sound program will go “whoops, error!”, silence the sound card, and exit.
But if you hit abort, the sound card will remain in that state indefinitely.— foone (@Foone) July 19, 2021
The program never gets to run MakeSoundblasterShutUp()
And DOS? DOS doesn’t know or care what the fuck a Soundblaster is! It has no way to know that the program was using a sound card, and no way to silence it.— foone (@Foone) July 19, 2021
If this was Windows, the program would have been playing sounds through the OS, which has a Sound Blaster driver. It knows you’re using the sound subsystem, so it knows how to shut it down when the program exits, even if it exits abruptly due to an error
— foone (@Foone) July 19, 2021
In DOS, the program is talking directly to the sound card’s hardware. DOS isn’t involved, it has no idea.
— foone (@Foone) July 19, 2021
So in this case of abnormal termination, the sound card is going to remain in that state of playing until something tells it otherwise.
Either the machine shuts off or reboots, or you run another program that uses the soundcard, which reconfigures it.— foone (@Foone) July 19, 2021
I remember discovering a case where this sort of “remaining in the same state across programs” happened even without abnormal termination:
Cannon Fodder.— foone (@Foone) July 19, 2021
I don’t know if it always does this or if it was a glitch with the pirated copy I had, but the sound effect of the guns firing would change depending on what game I had played before Cannon Fodder.
— foone (@Foone) July 19, 2021
And I think I know why this was happening:
Cannon Fodder was using FM synth for the music and many of the sound effects, right? But it used a PCM channel for the gunfire sound— foone (@Foone) July 19, 2021
And I think how it worked is that they were just playing the PCM buffer without properly initializing it, assuming it would contain random data. What’s random data sound like, interpreted as PCM? static!
Perfect for a gunshot noise.— foone (@Foone) July 19, 2021
But if I played another game first, one that used PCM sound effects, that buffer wouldn’t contain random data: it would contain the last sound effect played.
— foone (@Foone) July 19, 2021
So when I switched over to Cannon Fodder and it tried to play static as gunshot noises, it instead played the last sound effect the previous game had played!
— foone (@Foone) July 19, 2021
I haven’t looked into this recently, or tried to disassemble the game to confirm. This is also just guesswork based on learning how sound cards work in DOS and suddenly going “OH SO THAT’S WHY THAT ONE GAME DID THAT WEIRD THING A DECADE OR TWO AGO!”
— foone (@Foone) July 19, 2021
It’s possible this only happens on some Soundblaster clones that don’t properly reset the buffer, or some specific pirated versions of the game.
I haven’t checked.— foone (@Foone) July 19, 2021
But it’s on my todo list.
Plus making a little program to fuck with it, if I can replicate it.
Like loading the buffer with a short clip that’s just a person shouting “BANG”— foone (@Foone) July 19, 2021
Anyway the Cannon Fodder with the Bang mod will sound something like this HL2 mod:https://t.co/7BAdY3VnV6
— foone (@Foone) July 19, 2021
Or possibly this Minecraft one, if there isn’t anything to report today, Judd.https://t.co/5Ckgo9g0vV
— foone (@Foone) July 19, 2021
“Who is General Failure and why are they reading my disk?”
— Trix Farrar (@BasementTrix) July 19, 2021
Every army is very familiar with General Failure
— Even more socially distant M. Pereckas (@GreatLakesBeige) July 19, 2021
DOS was not a multi-process operating system. There was no OS managing your program. Your program had to cooperate for the OS to work. The only time OS routines were called is when you called them, or an interrupt was fired.
— John Deters (@jadeters) July 19, 2021
Apropos because “Retry” never works
— Infinite Social Justice 🏳️🌈🇵🇷 (@burkinator20xx) July 19, 2021
Added a “Late Edit BONUS” on “Abort, Retry, Fail?” showing the greatness of DOS.