1) Message passing programs involve multiple processes running subprograms that communicate via message passing calls. Each subprogram has private variables and communicates through message passing system calls.
2) Messages contain information about the sender, data type, length, and intended receiver. The message passing system holds this metadata for each message.
3) The message passing programming paradigm uses an explicitly partitioned address space model, where each process has exclusive access to its own memory space. Processes must explicitly partition data and send messages to share data or coordinate work.