Not all software. Most software contains common functionality, instead of bundling it all into one executable this functionality gets broken out into a Dynamic Link Library. The whole idea is one DLL will support multiple applications and to update these areas of the code all you need to do is replace the DLL file rather than the individual applications.
This is certainly not a "new" idea, nore one which Windows came up with. Shared libraries are very common in all the majority of OSes and was first introduced in Multics in the 60s.
The problem with DLLs is that you can get into DLL Hell, where you have multiple versions of the same DLL which either conflict or cause ambiguity throughout the system. This is made wosrse by Windows model of abstracting the user away from the Windows directory - at least on POSIX systems the users often have the understanding and ability to avoid/resolve any conflicts.
I know this doesn't answer your initial question - Google it