Hacker News new | ask | show | jobs
by Joker_vD 1 day ago
Windows doesn't even have its own libc.
3 comments

Windows does have three libc, likely as a compability layer. their names are:

  * <forgotten something Windows 3.1>
  * msvcrt.dll, 2014
  * ucrt.dll (universal c runtime, since Windows 10)
Those are not a compatibility layer with the OS. Heck, the all barely even provide proper access to the file system, ffs! The "msvcrt.dll" in the System32 folder is an ancient leftover from Microsoft-internal version of MSVC 6.0 or so, not intended for 3rd-party consumption.

At some point Microsoft got tired of maintaining binary-incompatible versions of its C runtime for different Visual Studios, so they started shipping UCRT with Windows itself... but you still don't need to touch that garbage for anything whatsoever.

They said "or equivalent", so ntdll
In Window,s the last-userspace-before-kernel-mode layer is called ntdll.dll. Unlike msvcrt or any other libc, ntdll is universal and loaded into every process.