好久没有翻书了,还接着上次的进程来吧!
Linux内核中涉及进程和程序的最重要的数据结构是定义在include/sched.h中的task_struct里边包含了很多将进程与内核子系统联系起来的成员,其中很多是指向其他数据结构的指针。
而Linux提供的资源限制机制,就利用了task_struct中的数据类型为struct rlimit(定义在resource.h中)的rlim数组。各个子系统都要遵循相应的限制,才能正常运行。
产生新进程的两个系统调用:
fork
exec一些列函数
同时还有clone系统调用,不过在Linux上一般用来实现线程。但是由于仅仅依靠clone又不足以实现线程,所以就有一些用户控件库才行,如Linuxthreads和NGPT。(现在终于知道,为什么编译多线程时线程库必须加了)
虚拟化的轻量形式——命名空间
命名空间提高了虚拟化的效率
现有的命名空间:
UTS命名空间
用户命名空间。