3

为什么/lib/libc.so.1( linker/ loader) 总是挂载在Solaris 10? 我已经尝试过两者mountdf输出。它显示我/lib/libc.so.1进入。

4

2 回答 2

2

需要 libc.so 才能运行用 C 编写的 ssh 或 awk 等 unix 命令并使用动态(运行时)链接。libc.so 是指向 libc.so.1 的链接,它是用于实现您正在运行的 Solaris 10 的 C 库的“基本”版本。

Solaris 的工作方式与 Linux 对 libc 版本的工作方式不同,因为 sparc 架构有不同的版本。最小的公分母是 sparc 1。我有一个 Ultrasparc III 盒子和其他更现代的盒子。

尝试 libc.so.1 上的文件命令: file /lib/libc.so.1 为了使实用程序和其他代码从框中获取最大值,libc 的体系结构“sparc 设置”与该框匹配。阅读并尝试使用isalistandisainfo命令。

于 2012-02-18T01:14:46.297 回答
2

对于 SPARC 和 x86 体系结构,Solaris 提供了优化的 C 标准库。在启动时,最适合您的机器,即利用 CPU 特定指令和功能的机器,是安装在标准机器之上的lofs 。

从 Solaris 10 开始,没有提供静态 libc,因此这个动态 libc 作为内核和用户空间之间的接口,是在 Solaris 上运行的每个程序的必需组件。

更多细节在这里

有人可能会问,为什么这是通过 lofs 挂载完成的,而不是通过像符号链接这样的轻量级功能。

原因是符号链接是持久的,即在重新启动后仍然存在。如果硬件功能发展或由于某些其他原因应该链接到错误的库,使用符号链接可能会导致系统不可用。同样,所有 Solaris 命令都动态链接到libc.so. libc.a很久没有了。

使用 lofs 挂载确保系统引导的第一阶段使用安全默认值完成libc.so,并且优化的仅在正确的时间选择,特别是允许在禁用所有服务的情况下安全引导 ( -m milestone=none) 不受功能影响。改变。

于 2012-02-19T14:48:35.063 回答