MINIX 3 uses fixed-length messages for internal communication, which eliminates certain buffer overflows and buffer management problems.
The kernel also maintains a table telling which I/O ports each driver may access.