Raymond Chen, a Microsoft engineer, writes about Windows history, API design quirks, and low-level programming.
Commenters call his articles a wealth of tech lore and recommend specific posts, including his analysis of SoftRam and stack probes.
As I’ve already said in my initial comment, this is not the whole story. (I acknowledge it is the official story, but I want to say the official story, at best, creatively omits some of the facts.)
NTVDM as it existed Windows NT (3.1 through 10) for i386 leveraged V86 mode. NTVDM on Windows NT (e.g. 4.0) for MIPS, PowerPC, and Alpha, on the other hand, already had[1] a 16-bit x86 emulator, which was merely ifdefed out of the i386 version (making the latter much leaner).
Is it fair of Microsoft to not care to resurrect that nearly decade-old code (as of Windows XP x64 when it first became relevant)? Yes. Is it also fair to say that they would not, in fact, need to write a complete emulator from scratch to preserve their commitment to backwards compatibility, because they had already done that? Also yes.
[1] https://devblogs.microsoft.com/oldnewthing/20060525-04/?p=31073
Obligatory oldnewthing: https://devblogs.microsoft.com/oldnewthing/20030929-02/?p=42363
> Multilingual support also explains why you see things like “1 folder(s)” instead of “1 folder” and “2 folders”. Why not have two format strings, one for when the number of items is exactly one, and one for when the number of items is two or more?
> Well, for one, that would significantly increase the number of strings we would have to carry around. (If you say “just add s to make the plural” then you really need to get out more!)
> For two, some languages (such as Slovene) have a “dual” number in addition to singular and plural. The Lahir language has singular (one), dual (two), trial (three), paucal (a few), and plural (many). So now you have to have perhaps five versions of every string that contains a replaceable number.
On Windows 11 24H2, more stack space was modified by a new implementation of Critical Sections.
IMHO this shows the downfall of Microsoft. Why did they do that? Critical sections have been there for many decades and should be basically bug-free by now. My best guess is someone thought they'd "improve" things and rewrote it, then made some microbenchmark that maybe showed the dubious improvement.
The other comment here mentions Raymond Chen, who wrote this article about why backwards-compatibility is very important (and arguably what got Microsoft into the position it's in today):
https://devblogs.microsoft.com/oldnewthing/20031224-00/?p=41363
and also this memorable case: https://news.ycombinator.com/item?id=2281932
"What if two programs did this?" https://devblogs.microsoft.com/oldnewthing/20050607-00/?p=35413
This is a recurring theme featured in multiple of Raymond Chen's blog posts, though. This is just the earliest one I can remember.
Here's a few more: https://www.google.com/search?q=%22two+programs%22+site%253Adevblogs.microsoft.com+inurl%253Aoldnewthing
The "what if two programs did this" mantra I learned from these blog posts helped me greatly in judging whether certain feature requests from users make any sense at all. As soon as it involves touching system configuration, even if there is an API for it, it's probably a very bad idea.
>Why do we often say 1 kilobyte = 1024 bytes?
Because Windows, and only Windows, shows it this way. It is official and documented: https://devblogs.microsoft.com/oldnewthing/20090611-00/?p=17933
> Explorer is just following existing practice. Everybody (to within experimental error) refers to 1024 bytes as a kilobyte, not a kibibyte. If Explorer were to switch to the term kibibyte, it would merely be showing users information in a form they cannot understand, and for what purpose? So you can feel superior because you know what that term means and other people don’t.
For finding blogs I either pick them up organically here or on lobste.rs.
The more niche your blog is, the more chances you'll have at sharing it on highly specialized subreddits - otherwise you can always drop links to your blog in HN conversation threads if it feels relevant. That's how I developed a bit of readership on mine.
And in the interest of sharing blogs, a classic is "Old New Thing" written by Raymond Chen. It's highly technical around Microsoft/Windows but I enjoy how incredibly thorough it is.
https://devblogs.microsoft.com/oldnewthing