掌控进程和应用程序 1.进程 有虚拟内存的Linux和uClinux的另一个区别在于后者没有fork()系统调用。这就要求开发者在移植时对使用了fork()的应用程序做一些工作。uClinux下惟一的选择是使用vfork()。尽管vfork()与fork()有很多共同点,但是它们之间的区别影响很大。 对于不熟悉fork()和vfork()的人来说,这两个系统调用都是允许将一个进程分裂成一个父进程和一个子进程。当一个进程调用fork()时,子进程是父进程的一个完全拷贝,但是它不共享父进程的任何东西,并且能够单独执行,就和父进程一样。vfork()调用就不同了,首先,父进程被挂起直到子进程调用exec(),或者子进程退出才能继续。 由此可见,这个系统调用是用来启动一个新的应用程序。其次,子进程在vfork()返回后直接运行在父进程的栈空间,并使用父 页码:[1] [2] [3] [4] [5] 第1页、共5页 |