 
 
 
 
 
 
 
 
 
 
| Memory Area | Hardware Protection | OS Protection | Reason | 
| Page 0 | Invalid | Invalid | Catches NULL pointer use | 
| Code/Constants | Read-only | Read-only | Unchanging memory, may be shared | 
| Global Data | Read-write | Read-write | Normal variable use | 
| Read-only | Copy-on-write | Allows untouched pages to be shared | |
| The Heap | Read-write | Read-write | Normal variable use | 
| Read-only | Copy-on-write | Allows untouched pages to be shared | |
| Invalid | Invalid | Invalid | Pages above heap | 
| Memory Mapped | Read-only | Read-only | Read-only file | 
| File | Read-write | Read-write | Read-write file | 
| Read-only | Locked region | Record locking on file region | |
| Read-only | Copy-on-write | Allows unaltered sections to be shared | |
| Shared Memory | Read-only | Read-only | Another process has r-w | 
| Region | Read-write | Read-write | Area is shared read-write | 
| Read-only | Locked region | Record locking on memory region | |
| Read-only | Copy-on-write | Allows unaltered sections to be shared | |
| Invalid | Invalid | Fill-on-use | Pages below stack | 
| The Stack | Read-write | Read-write | Normal variable use | 
| Read-only | Copy-on-write | Allows untouched pages to be shared | |
| Shared Libraries | Read-only | Read-only | Unchanging memory, may be shared | 
| OS Code/Constants | Kernel read-only | Read-only | |
| OS Global Data | Kernel read-write | Read-write | |
| Invalid | Invalid | Invalid | |
| OS Stack | Kernel read-write | Read-write | |
| Device Pages | Kernel read-write | Read-write |