POSIX Message Queue Memory Allocation

Hi,

I wanted to know whether the POSIX message queues are statically allocated memory by the kernel based on the parameters specified in the open or as and when we send messages, memory are allocated?

Does the kernel reserve the specified memory for the message queue irrespective of whether the queue is empty or full?

This sounds like an implementation-specific detail.