有了创建进程的 API (CreateProcess; fork-execve),我们的 “操作系统” 就初具雏形,你也能够编写出真正并行执行的程序了。
本讲内容:每个进程都 “拥有” 自己的内存——我们可以用 new/delete 管理它们。但进程的内存是哪里来的?一个指针 p
到底能指向什么?管理地址空间的系统调用: mmap 给我们答案。
Take-away Messages: 操作系统通过虚拟内存为每个进程提供独立的地址空间,实现了进程间的隔离和保护。操作系统通过 mmap/munmap 实现地址空间的管理,并且还提供特定机制 (如 procfs、ptrace、process_vm_writev、共享内存等) 访问彼此的地址空间。
教科书 Operating Systems: Three Easy Pieces: