LINUX.ORG.RU

История изменений

Исправление vM, (текущая версия) :

процесс рассматривается как контейнер который содержит ресурсы

Процессу выделяются ресурсы, необходимые для решения задачи: адресные пространства, файлы, процессоры, процессорное время и т.д. Для монопольного использования, для совместного использования с другими процессами и для использования «по очереди».

После execve() на линуксе процесс то же самый, но адресное пространство, даже если то же самое, то уже совсем другое:

$ grep libc /proc/$$/maps; echo $$
7fce50a60000-7fce50bf5000 r-xp 00000000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fce50bf5000-7fce50bfd000 ---p 00195000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fce50bfd000-7fce50df5000 ---p 0019d000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fce50df5000-7fce50df9000 r--p 00195000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fce50df9000-7fce50dfb000 rw-p 00199000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
8
$ exec sh
$ grep libc /proc/$$/maps; echo $$
7fd834860000-7fd8349f5000 r-xp 00000000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fd8349f5000-7fd8349fd000 ---p 00195000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fd8349fd000-7fd834bf5000 ---p 0019d000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fd834bf5000-7fd834bf9000 r--p 00195000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fd834bf9000-7fd834bfb000 rw-p 00199000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
8
$ grep libc /proc/$$/maps; echo $$
7fd834860000-7fd8349f5000 r-xp 00000000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fd8349f5000-7fd8349fd000 ---p 00195000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fd8349fd000-7fd834bf5000 ---p 0019d000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fd834bf5000-7fd834bf9000 r--p 00195000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fd834bf9000-7fd834bfb000 rw-p 00199000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
8

Исходная версия vM, :

процесс рассматривается как контейнер который содержит ресурсы

Процессу выделяются ресурсы, необходимые для решения задачи: адресные пространства, файлы, процессоры, процессорное время и т.д. Для монопольного использования, для совместного использования с другими процессами и для использования «по очереди».

После exec() процесс то же самый, но адресное пространство, даже если то же самое, то уже совсем другое:

$ grep libc /proc/$$/maps; echo $$
7fce50a60000-7fce50bf5000 r-xp 00000000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fce50bf5000-7fce50bfd000 ---p 00195000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fce50bfd000-7fce50df5000 ---p 0019d000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fce50df5000-7fce50df9000 r--p 00195000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fce50df9000-7fce50dfb000 rw-p 00199000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
8
$ exec sh
$ grep libc /proc/$$/maps; echo $$
7fd834860000-7fd8349f5000 r-xp 00000000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fd8349f5000-7fd8349fd000 ---p 00195000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fd8349fd000-7fd834bf5000 ---p 0019d000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fd834bf5000-7fd834bf9000 r--p 00195000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fd834bf9000-7fd834bfb000 rw-p 00199000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
8
$ grep libc /proc/$$/maps; echo $$
7fd834860000-7fd8349f5000 r-xp 00000000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fd8349f5000-7fd8349fd000 ---p 00195000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fd8349fd000-7fd834bf5000 ---p 0019d000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fd834bf5000-7fd834bf9000 r--p 00195000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
7fd834bf9000-7fd834bfb000 rw-p 00199000 00:00 778139             /lib/x86_64-linux-gnu/libc-2.24.so
8