Memory management is a large, complex, and time-consuming set of tasks, one that is difficult to achieve because crafting a model how systems behave in real-world, multi-programmed environments is a tough job. Components like scheduling, paging behavior, and multiple-process interactions presents a considerable challenge. This article will help you decipher the basic knowledge required to engage the challenge of Linux memory management, providing you with a start.

Many ornagisations seem to have access to the windows source code these days...

They seem but they don't. At least not in the same sense that you have access to Linux and FOSS source code.
The best I have seen on Windows, is some OEM have small parts of some component of Windows, under NDA and with lots of restrictions.