[Autogenerated] let's begin by taking a high level overview of the
users of the APIs we have in relation to memory.
So first of course we have the kernel that contains the memory
manager itself but now we're focusing on the user side.
So the closest API to the memory manager is the virtual set of APIs
These are all functions starting with the word virtual and they always
work in page boundaries and page sizes because they're the closest to
the memory manager on the flip side,
there are also the most powerful and the most efficient on top of that.
We have the hip API which is used to manage smaller allocations allocations
that are not necessarily on the page boundary or page size.
So the hip APIs allow us to make small locations without being
inefficient by creating separate allocations for each page.
The hip API uses the future.
API is required on top of that we have the C n.
C++ runtime The sea C++ random APIs are implemented by the compiler vendors.
They could be implemented in various ways.
The Microsoft compiler however, is using the hip API and we'll see that as well.
Finally there are a set of APIs that have these
names starting with local or Global, such as local,
a la global a lock and things like that.
These APIs are relics from the 16 bit windows that have been ported to Windows.
Nt mostly for compatibility reasons however,
there are some APIs in the Windows APIs that require us to
use one of these functions for example,
many APIs in the city security API in Windows require us to use the local
free function because those APIs allocate something and the documentation
specifies use the local free function so fine,
we'll use those these function when needed,
but we're not going to do any kind of work with these
functions in in an explicit manner.
Usually you're better off using the other sets of APIs So let's begin our
journey through these APIs by examining the mutual set of APIs