How the process task structure is different in both docker and the host process any specific module is differed in docker apart from host?
1 Answers
Since processed are represented in kernel by structure called ‘task_struct
', that structure is the same in a container.
A container is based on system calls to the host kernel, and any kernel-related structure comes directly from said kernel.
See "Architecting Containers: Why Understanding User Space vs. Kernel Space Matters"
A typical program gets access to resources in the kernel through layers of abstraction similar to the following diagram:
The kernel provides abstraction for security, hardware, and internal data structures. The open() system call is commonly used to get a file handle
Notice in the following drawing that
bash
makes agetpid()
call which requests its own process identity.
Also, notice that thecat
command requests access to/etc/hosts
with a fileopen()
call.
-
Is there any link that provides in detail of this system calls from containers are passed to host kernel? – Sowndarya K Oct 14 '15 at 05:22
-
@SowndaryaK Yes, I have edited the answer with such a link. – VonC Oct 14 '15 at 07:04
-
1@SowndaryaK see also http://rhelblog.redhat.com/2015/09/17/architecting-containers-part-2-why-the-user-space-matters-2/ – VonC Oct 14 '15 at 07:06