![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
文章平均质量分 85
cwpanda
这个作者很懒,什么都没留下…
展开
-
Linux Mount Namespace分析
Mount Namepsace简介Mount Namepsace是Linux提供的进程文件隔离机制,通过隔离挂载点的方式,使得不同Namespace下的进程拥有不同的文件系统视图。下面将从设备挂载的例子出发,介绍Linux文件挂载(Mount)、Linux Mount Namespace等技术的实现机制。磁盘设备挂载示例使用unshare命令,在不同的namespace下的shell中执行挂载动作,观察可以发现:可以在一个挂载点重复执行挂载 挂载点之前的文件被“隐藏” 挂载点可被子.原创 2022-02-07 16:00:39 · 1136 阅读 · 0 评论 -
Linux so加载顺序
背景使用gcc8.2编译a.out,机器安装默认的版本为gcc3.4。使用ldd打印so依赖列表,此时libstdc++.so位于/usr/lib64目录下打印程序运行时加载的so库列表,显示加载的是/home/xxx/gcc-8.2/lib/目录下的libstdc++.so使用默认版本编译的程序,运行时加载的时/usr/lib64目录下的libstdc++库此时的环境变量LD_LIBRARY_PATH未设值分析()对比两个进程ldd的结果,可以看到ld-linu原创 2022-02-07 10:58:10 · 1811 阅读 · 0 评论 -
Unix 编程 -- 静态链接 & 重定位
静态链接·重定位静态链接过程会将汇编器生成的可重定位文件(*.o)合并到一个可执行文件中。当链接器完成符号解析后,就会执行重定位过程。重定位过程分为两步:重定位节及符号定义。相同类型的节会被聚合到可执行文件的同一类型的节中,如下图的步骤一。符号解析过程已经确定了符号被定义的模块及节位置,所以重定位节后,每个符号的运行时地址也已经确定了。 重定位节中的符号引用。如下图的步骤二,在编译mai...原创 2019-08-11 18:00:27 · 513 阅读 · 1 评论