Libc共享库如何加载到内存中并在进程之间共享?

2023-12-22

我想了解Libc共享库如何加载到内存中并在进程之间共享?是否有一个 libc 实例加载到内存中并在所有进程之间共享,或者是每个进程的内存中的每个 libc 实例。我不清楚 libc 如何在进程之间共享。

谢谢 阿迪亚


libc 的一个实例在所有进程之间共享。看《共享库和动态加载的内幕》 http://cseweb.ucsd.edu/~ricko/CSE131/the%20inside%20story%20on%20shared%20libraries%20and%20dynamic%20loading.pdf文章:

具体来说,由于库主要由可执行指令组成,并且该代码通常不能自修改,因此操作系统可以安排将库代码放置在进程之间共享的只读内存区域中(使用页面共享和其他虚拟内存技术)。因此,如果数百个程序正在运行并且每个程序都包含相同的库,则操作系统可以加载一个单个共享副本将库的指令放入物理内存中。这可以减少内存使用并提高系统性能。

也可以看看“剖析共享库” http://www.ibm.com/developerworks/linux/library/l-shlibs/index.html文章。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Libc共享库如何加载到内存中并在进程之间共享? 的相关文章

  • Windows 服务和 Windows 进程有什么区别?

    是什么不同之处窗户之间service和一个窗户process 服务是真正的 Windows 进程 没有区别 服务的唯一特殊之处在于它由操作系统启动并在单独的会话中运行 一种独立的方式 可防止其干扰桌面会话 传统上命名为daemon http
  • 寻找使用库版本的方法?

    我正在通过库在多个电子表格上部署脚本 但正如您所知 脚本 目前 还无法知道它是否正在运行最新版本 我试图通过为我的代码创建自己的版本控制来找到解决此问题的方法 我有一个 Web 服务返回我的库代码的最新版本号 以便我可以对其进行比较 但 o
  • 如何触发并忘记子进程?

    我有一个长时间运行的进程 我需要它来启动另一个进程 该进程也会运行很长一段时间 我只需要开始它 然后就完全忘记它 我设法通过从 Ruby 编程 一书中获取一些代码来完成我需要的操作 但我想找到最好 正确的方法 并了解发生了什么 这是我最初得
  • 值类型不完整的映射

    我收到以下错误 class Test std map
  • 在 uwsgi 应用程序中运行子进程

    我正在编写一个 Django 应用程序 它需要执行长时间的异步任务 最初的想法是从执行该工作的视图启动一个子流程 并在另一个视图中监视进度 当应用程序通过以下方式启动时 这个想法运行良好manage py runserver 但是当它在 u
  • Linux下的C#,Process.Start()异常“没有这样的文件或目录”

    我在使用 Process 类调用程序来启动程序时遇到问题 可执行文件的层次结构位于 bin 目录下 而当前工作目录需要位于 lib 目录下 project bin a out this is what I need to call lib
  • 无关的库链接

    我有一个可能有点愚蠢的问题 因为我很确定我可能已经知道答案了 假设你有静态库A 动态共享库B和你的linux下的程序C 假设库 A 调用库 B 中的函数 并且您的程序调用库 A 中的函数 现在假设 C 在 A 中调用的所有函数都不使用 B
  • Rails:页面加载时间很长

    我有一个 Rails 项目 我在一个控制器中遇到了非常奇怪的事情 浏览器需要大约 3 分钟来加载页面 但 Rails 在日志中写入 Completed 200 OK in 20563ms Views 17144 2ms ActiveReco
  • 终结器线程的范围是什么 - 每个应用程序域或每个进程?

    根据我的所有阅读 应该有一个 GC 线程来调用所有终结器 现在的问题是这个 一个 线程的范围是什么 每个进程或每个应用程序域 因为域的整体目的是在一个进程空间中分离并创建 独立 的不同应用程序 I read here http dn cod
  • 使用yarn 2工作区在monorepo中的两个项目之间共享打字稿代码

    我想在打字稿中建立一个包含客户端部分 react app 服务器部分 express 和共享库 utils 的项目 我使用yarn 2工作区并希望避免使用larna 如果可能的话 不幸的是 几天以来我一直无法让它工作 并且进行了大量的谷歌搜
  • 为什么有些包含文件只驻留在 tr1 中?

    当我尝试包含类似内容时
  • 即使进程确实存在,为什么 Process.WaitForExit 也会抛出“无进程”异常?

    我有一个包含以下代码的 Windows 服务 public static void ExtractTextInner string source string destination ProcessStartInfo startInfo n
  • Process.Close() 不会终止创建的进程,c#

    我编写了一个 C 应用程序 它使用System Diagnostics Process类来创建进程 使用 Process P1 new Process P1 FileName myexe exe 和其他适当的设置 我已将其链接到一个运行大约
  • 如何在拥有句柄时检查给定进程是否正在运行

    我在用ShellExecuteEx启动应用程序 成功开始阅读后TShellExecuteInfo hProcess获取已启动进程的句柄 我想定期检查我的应用程序启动的进程是否仍在运行 两个或多个同名进程可以同时运行 我想确保我的应用程序正在
  • PowerShell 中的 ProcessStartInfo 和进程 - 身份验证错误

    我有使用 ProcessStartInfo 和 Process 调用另一个脚本并返回该脚本的输出的代码 不幸的是 我遇到了错误 并且不确定如何解决这些问题 script1 ps1 abc args startInfo NULL proces
  • 如何从 PROC 获取有关子进程的信息

    我正在尝试编写一个以几个进程作为参数的程序 然后父进程执行每个子进程并打印出一些相关的统计信息 示例 generate ls l 将生成一个程序 打印出有关 ls l 的一些统计信息 特别是其系统时间 用户时间和上下文切换次数 我不想使用
  • 测量进程消耗的 CPU 时钟

    我用 C 语言编写了一个程序 它是作为研究结果创建的程序 我想计算程序消耗的确切 CPU 周期 精确的循环次数 知道我怎样才能找到它吗 The valgrind tool cachegrind valgrind tool cachegrin
  • Fortran 中的共享库,最小示例不起作用

    我试图了解如何在 Linux 下的 Fortran 中动态创建和链接共享库 我有两个文件 第一个 liblol f90 看起来像这样 subroutine func print lol end subroutine func 我用它编译gf
  • 如果外部程序挂起,如何退出进程 (.exec())

    让我解释一下我的软件 我的软件所做的只是创建 10 个线程 并为每个线程分配许多任务 然后 每个线程创建一个运行时进程 该进程将启动一个 cmd 批处理文件 该文件又将启动一个程序 该程序将远程登录到设备 我有大约 200 个设备 以轮询其
  • 从 Java 启动外部进程:stdout 和 stderr

    我正在使用标准从 java 启动一个外部进程java lang Process 我试图弄清楚该过程的输出是什么 但是采用结合了两者的格式stdout and stderr 目前 我有Process getInputStream它提供了访问s

随机推荐

  • 如何声明 C# Web 用户控件但阻止其初始化?

    我有一个 C ASP NET aspx 页面 它声明了两个控件 每个控件代表一个选项卡的内容 我需要一个查询字符串参数 例如 tab 1 来确定激活两个控件中的哪一个 我的问题是 它们都经历初始化事件并填充其子控件 浪费 CPU 资源并减慢
  • 从外部禁用 Linux 程序的信号

    在 Linux 上 是否可以以某种方式禁用程序的信号发送外在地 也就是说 不修改他们的源代码 Context 我正在呼叫 C 还有一个Java 在 Linux 上的 bash 脚本中编写程序 我不希望我的 bash 脚本以及该脚本启动的其他
  • Angular 2 选择组件设置初始选择

    我正在尝试使用 ngModel 在 Angular 2 中创建一个选择组件包装器 一旦选择更改 所有事件都会正确触发 但我无法在渲染时设置初始选择 这是我的组件 Component selector my dropdown inputs s
  • 如何优化 SQLAlchemy 生成的这个查询?

    我有一个由 SQLAlchemy ORM 生成的查询 它应该检索特定课程的stream items 及其所有部分 资源 内容文本块等 以及发布它们的用户 然而 这个查询似乎非常慢 在我们的生产数据库上花费了几分钟的时间 数据库中有大约 20
  • HBase 单行事务支持中的行锁定

    在 HBase 中 为了提供单行事务支持 它使用行锁定概念 假设 例如 Put p new Put Row Key 该语句将锁定该行 所以 直到我们完成 表 put p 锁不会被释放 所以 在这之间 如果我开始一个新的看跌期权 即 Put
  • Google Colaboratory ImportError:libcublas.so.10.0:无法打开共享对象文件:运行时没有这样的文件或目录

    我正在关注这篇关于 Google Colaboratory 的人工智能农业的文章 https medium com deepquestai ai in agriculture detecting defects in apples b246
  • 如何在 Swift 3 中将文档目录中的图像显示到 UIImageView?

    下面的 Swift 2 示例给出了此错误 String 类型的值没有成员 stringByAppendingPathComponent 对于 Swift 3 我需要更改什么 Apple 正试图让所有人摆脱路径字符串范式 转向 URL 即fi
  • Response.Write() 是否可以与 Razor 一起使用?

    Response Write 是否可以与 Razor 一起使用 我尝试使用 Html RenderAction但我收到错误 CS1502 The best overloaded method match for Microsoft WebP
  • 如何在 WPF 中获取 ListView 的选中行值

    我有一个ListView在 WPF 应用程序中CheckBox 我想将所有选中行的值保存在 WPF 列表中 我怎样才能实现这个目标 我的列表视图
  • 使用自动布局“捏合缩放”

    我遵循了许多在网上找到的 捏合缩放 教程 并阅读了有关自动布局的内容 但我无法让它在我的项目中工作 我的整个项目都使用自动布局 所以我不想将其关闭 我正在将一个巨大的 UIImage 例如 长边 5000px 加载到 UIImageView
  • 在 swagger 中处理多个基本路径

    我正在使用 swagger ui 为我们的客户提供 REST API 的良好文档 在内部 我们有两个不同的 jenkin 构建项目的环境 例如 swagger json 可以在两种环境中访问 http www myhost com xyz
  • 如何用简单的英语解释回调?它们与从一个函数调用另一个函数有何不同?

    如何用简单的英语解释回调 它们与从另一个函数调用一个函数并从调用函数中获取一些上下文有何不同 如何向新手程序员解释它们的威力 我会尽量让这个问题变得简单 回调 是由另一个函数调用的任何函数 该另一个函数将第一个函数作为参数 很多时候 回调
  • Emberjs - 临时禁用属性更改通知

    是否有任何简单的方法可以实现临时禁用一个或多个对象属性的通知 我知道你可以推迟他们beginPropertyChanges and endPropertyChanges 但在我明确启用这些更改之前 我根本不希望收到这些更改的通知 先感谢您
  • 如何按自定义字段日期排序 WordPress 帖子?

    我正在制作一个事件侧边栏部分 仅显示接下来的 3 个事件 我已经让自定义帖子类型和自定义字段全部正常工作 但我似乎可以弄清楚如何按事件的开始日期 这是自定义字段值 对帖子进行排序 有没有一个php函数可以比较日期并将它们组织成一定的顺序 我
  • MeteorJS MongoDB 部署错误

    由于某种原因 当我使用 Meteor 部署时 我的服务器出现以下错误 并且我无法访问这些页面 我遇到以下错误 警告错误 没有可用于查询的副本集主副本 读取首选项主要 我正在使用 Meteor 1 1 0 2 并运行meteor deploy
  • RGB 字节与 HSL 之间的转换?

    有没有RGB转换的算法byte数组到 HSLfloat阵列并再次返回 我已经尝试过找到的那个here https stackoverflow com questions 8838264但它似乎有错误 我使用以下类从 HSL 转换为 RGB
  • 可视化嵌套的 JSON 结构

    考虑这个 JSON 对象 department 1 id 1 name Joe Smith email email protected cdn cgi l email protection id 500 name Bun Sam email
  • 从 using 块内的异常中检测 Dispose()

    我的应用程序中有以下代码 using var database new Database var poll Some database query code foreach Question question in poll Questio
  • 将 Javascript 函数作为参数传递给 C++ 函数

    我用 C 声明我的对象 class Action public QObject Q OBJECT Q PROPERTY QString name READ name public Action QObject 0 QString name
  • Libc共享库如何加载到内存中并在进程之间共享?

    我想了解Libc共享库如何加载到内存中并在进程之间共享 是否有一个 libc 实例加载到内存中并在所有进程之间共享 或者是每个进程的内存中的每个 libc 实例 我不清楚 libc 如何在进程之间共享 谢谢 阿迪亚 libc 的一个实例在所