ld.so.cache и libc.so.6 сопоставлено память на каждый звонок?

Вот один из способов сделать это:

awk 'FNR==NR{ids[$0]=$0;next}{for(id in ids){if($0 ~ id){print}}}' file1 file2
6
27.12.2018, 17:04
1 ответ
  1. Да, каждый процесс получает собственное сопоставление необходимых ему библиотек.

  2. Да, большая часть данных является общей, поэтому каждый процесс «видит» одну и ту же физическую память (по разным линейным адресам ), предполагая, что одна и та же версия каждого файла является общей.

Вы можете увидеть различные сопоставления, просмотрев файл mapsвнутри каталога /proc/каждого процесса; для libcвы увидите такие записи, как

7f1014062000-7f10141f7000 r-xp 00000000 fd:0d 1444681                    /lib/x86_64-linux-gnu/libc-2.24.so
7f10141f7000-7f10143f7000 ---p 00195000 fd:0d 1444681                    /lib/x86_64-linux-gnu/libc-2.24.so
7f10143f7000-7f10143fb000 r--p 00195000 fd:0d 1444681                    /lib/x86_64-linux-gnu/libc-2.24.so
7f10143fb000-7f10143fd000 rw-p 00199000 fd:0d 1444681                    /lib/x86_64-linux-gnu/libc-2.24.so

или

7f4d7a8ec000-7f4d7aa81000 r-xp 00000000 fd:0d 1444681                    /lib/x86_64-linux-gnu/libc-2.24.so
7f4d7aa81000-7f4d7ac81000 ---p 00195000 fd:0d 1444681                    /lib/x86_64-linux-gnu/libc-2.24.so
7f4d7ac81000-7f4d7ac85000 r--p 00195000 fd:0d 1444681                    /lib/x86_64-linux-gnu/libc-2.24.so
7f4d7ac85000-7f4d7ac87000 rw-p 00199000 fd:0d 1444681                    /lib/x86_64-linux-gnu/libc-2.24.so

Отображение только для чтения -, исполняемый файл соответствует совместно используемому исполняемому коду в библиотеке; сопоставление только для чтения -дает доступ к общим данным только для чтения -в библиотеке; а отображение чтения -записи является частным отображением для переменных в библиотеке. Как вы можете видеть выше, линейные адреса различаются (благодаря рандомизации размещения адреса -и разным порядкам загрузки ); базовые физические адреса для общих частей одинаковы после их загрузки в память (, поскольку сопоставления отображают базовые файлы, а не общую память напрямую ).

7
27.01.2020, 20:27

Теги

Похожие вопросы