
操作系统
Cxinsect
这个作者很懒,什么都没留下…
展开
-
Linux虚拟文件系统(VFS)
写在前面close()函数成功返回是否标志着文件已经成功写入磁盘?Linux下一切皆文件,具体的实现过程或者背后的原理是什么?Linux下如何实现跨文件系统的数据交换?为了解决以上所提出的问题,我们先来了解一下Linux下的虚拟文件系统:VFS首先我们来先看一张图片:对于任何一个特定的文件系统接口,需要一个映射模块来转换实际文件系统特征到虚拟文件系统所期望的特征,VFS层向用户...原创 2019-04-29 10:39:53 · 713 阅读 · 0 评论 -
Linux 下动态链接时函数的延时绑定分析
定义: 将函数地址的解析推迟到函数调用的时候。实现方式:通过全局偏移量表【GOT】和过程链接表【PLT】之间的交互来完成。对于每一个调用了定义在共享库中函数的目标模块,那么它就会维持一个自己的GOT和PLT。其中GOT属于数据段的一部分、PLT属于代码段的一部分。相关数据结构过程链接表【PLT】:该结构是一个数组,每一个数据成员占用16字节的大小。雁过留声,每一个在共享库中定义的函数都可...原创 2019-09-10 23:19:56 · 328 阅读 · 0 评论 -
动态链接函数dlsym()的参数RTLD_NEXT使用注意事项
相比于已知函数的所在动态库,函数dlsym的参数RTLD_NEXT可以在对函数实现所在动态库名称未知的情况下完成对库函数的替代。这提供了巨大的便利。但是凡是有一利必有一弊,在使用该参数时,需要注意一些问题。使用的函数文件main函数.c#include <stdio.h>#include <malloc.h>int main (void) { struc...原创 2019-09-12 14:00:35 · 8713 阅读 · 1 评论