This post really should have been made months ago, but finding the time to write a full blown newsletter has been getting more and more scarce. That being said, I've decided for the short term to split things that would normally act as a single newsletter section into separate blog posts so I don't need to wait and gather things.
There was a lot of speculation as to what Monstera was when Aleksey made his commit with some suggesting it is a repeat of his ARWINSS effort but targetted at the memory manager. That is however not the case. Monstera is in its most basic form an experiment. It is Aleksey seeing if he can simplify the development of the memory manager using C++ and some object oriented design principles. The thing one must keep in mind is that the memory manager is big and complicated and its organization is very C-centric procedural code. One key point to keep in mind however is that not everyone believes that object oriented design helps make development simpler. Furthermore, there are features within C++ that simply cannot be used when writing kernel code. But there are certain coding patterns that set C++ apart from a purely C style such as how data is segregated and the like that can be applied. How useful any of that is is what Aleksey is trying to figure out with this experiment.
This certainly will not be easy, as the NT memory manager provides a lot of functionality that is critical to getting upstream features to work. As with all things, Aleksey has to start out simple, providing the most basic functionality needed to run before adding more complex features. Whether the experiment is a success or not will depend on a lot of factors, but Aleksey hopes that at least some of the lessons learned can be reapplied to the current effort to finish handing all responsibility to ARM3 instead of the current hybrid of the old memory manager and ARM3.