<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=421529&amp;view=findpost&amp;p=3888970</guid>
        <pubDate>Sat, 01 Apr 2023 18:36:14 +0000</pubDate>
        <title>Загрузка в память shared library</title>
        <link>https://forum.sources.ru/index.php?showtopic=421529&amp;view=findpost&amp;p=3888970</link>
        <description><![CDATA[MaIron: Тема не закрыта же :)]]></description>
        <author>MaIron</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=421529&amp;view=findpost&amp;p=3888941</guid>
        <pubDate>Fri, 31 Mar 2023 15:00:26 +0000</pubDate>
        <title>Загрузка в память shared library</title>
        <link>https://forum.sources.ru/index.php?showtopic=421529&amp;view=findpost&amp;p=3888941</link>
        <description><![CDATA[macomics: Думаю за 2 года он уже сам в этом разобрался.]]></description>
        <author>macomics</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=421529&amp;view=findpost&amp;p=3888926</guid>
        <pubDate>Fri, 31 Mar 2023 11:02:13 +0000</pubDate>
        <title>Загрузка в память shared library</title>
        <link>https://forum.sources.ru/index.php?showtopic=421529&amp;view=findpost&amp;p=3888926</link>
        <description><![CDATA[MaIron: 1. При загрузке ELF-файла используемые shared library загружаются в отдельную область памяти, называемую shared library space, которая представляет собой общую область памяти для всех загруженных библиотек. Каждое приложение имеет свою отдельную область памяти, но все приложения используют одну и ту же область памяти для загруженных библиотек.<br><br>2. В памяти будут размечены только одна копия библиотеки, даже если запущено 10 приложений, которые используют эту библиотеку.<br><br>3. В памяти также будет размечена только одна копия библиотеки, даже если в каждом потоке вызывается функция из этой библиотеки.<br><br>4. При загрузке всей библиотеки в память загружаются все функции и данные, которые она содержит. Однако не все функции могут быть вызваны из приложения, поэтому используемые функции загружаются только по мере необходимости.<br><br>5. Когда приложение закрывается, shared library space также освобождается. Если библиотека была загружена другими приложениями, которые продолжают работать, то библиотека остается в памяти.<br><br>6. Да, правильно понимаете. При загрузке всей библиотеки в памяти отображаются ее необходимые секции, которые могут быть размечены в разных диапазонах адресов в памяти. Это может быть связано с особенностями размещения секций в файле библиотеки или с особенностями загрузки библиотеки в память. Например, секции кода могут быть загружены в разные области памяти, чтобы обеспечить эффективное кэширование кода на процессоре.]]></description>
        <author>MaIron</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=421529&amp;view=findpost&amp;p=3848293</guid>
        <pubDate>Tue, 22 Jun 2021 03:23:25 +0000</pubDate>
        <title>Загрузка в память shared library</title>
        <link>https://forum.sources.ru/index.php?showtopic=421529&amp;view=findpost&amp;p=3848293</link>
        <description><![CDATA[vmprog: Здравствуйте.<br>Разбираюсь с устройством библиотек. <br>Прошу ответить на такие вопросы: <br><br>1) При загрузке elf используемые shared library загружаются в адресное пространство конкретного приложения  <br>или в отдельную единую область для совместного использования, в которой живут все загруженные библиотеки?<br> <br>2) Если мы запустили 10 приложений, которые используют функцию одной и той же shared library, то в  <br>памяти будут размечены 10 копий этой библиотеки?<br><br>3) Если приложение рождает 10 потоков и в каждом потоке вызывается функция из shared  <br>library, то в памяти будет 10 копий используемой shared library т.е. на каждый поток? <br><br>4) Загружается именно вся библиотека или могут загружаться только используемые функции?<br><br>5) Когда приложение закрывается, что происходит в памяти с shared library?<br><br>6) Если анализировать область памяти загруженного приложения, то видно, что библиотека встречается несколько раз в разных диапазонах памяти. Правильно я понимаю, что это размечены разные сегменты этой библиотеки т.е. при загрузке всей библиотеки в памяти отобразились ее необходимые секции как при загрузке обычного исполняемого файла?<br> <br>Спасибо.]]></description>
        <author>vmprog</author>
        <category>Assembler</category>
      </item>
	
      </channel>
      </rss>
	