操作系统的一个问题:为什么 父进程与子进程共享虚拟地址空间 这句话是错的?父进程不是可以和子进程共享部分资源么,为什么虚拟地址空间共享不了?
每个用户进程都有一套独立的页表,除了内核地址空间外,所有资源都是独立互不影响的。fork相当于是新建了一个独立的进程,只不过所有资源都从父进程复制了一遍而已。然而内核地址空间是所有进程共享的,用户进程不能随意操作。进程间通信就是通过内核地址空间实现的。从这个角度来说,父子进程和任意两个进程一样,都是共享内核虚拟地址空间的。