1.fork的主要flag参数含义
2. fork,vfork,clone/pthread_create的区别
fork:内核会复制父进程页表(相同的虚拟空间),但是没有给子进程映射新物理地址,而是采用COW技术,且不保证子父进程执行顺序.
vfork: 父子进程共享页表(相同的虚拟空间),且子进程退出(exit)或者调用exec后,父进程才能执行(CLONE_VFORK|CLONE_VFORK)
clone:可以用来实现fork和vfork一样的作用,并且可以用来实现线程.(CLONE_THREAD)
pthread_create:创建线程,调用clone实现(CLONE_VM|CLONE_THREAD)
3.用户进程同时有内核栈和用户栈, 每个进程有8k或者16k的内核栈,切换到内核态时,用户栈存在内核栈顶部.且内核栈sp指向栈顶.