据我所知,x86汇编代码在很大程度上受寄存器数量的限制。

当我了解到在Linux上要创建一个.so文件时,必须为gcc指定-fPIC命令行参数才能创建与位置无关的代码,我不敢首先相信它。

据我所知,elf文件格式支持重定位,就像-在我看来更好-Windows

DLL系统可以工作:在Windows上,链接器在DLL中重新定位所有偏移量(如果有必要)。

我认为加载SO文件或DLL文件所需的时间,以及用于保持不同位置重定位的.so文件所需的内存量,并不比始终缺少整个寄存器要糟糕。

GOT并具有所有这些间接跳转。

我也完全不在乎ALSR等。对于我所想到的应用程序,我只是在乎库中的代码要尽可能地优化。

1)为什么Linux不支持Windows这样的动态库加载,而动态库加载会产生更多性能代码?

到目前为止,我还没有找到真正的解释。只是这样的事情,代码的重新定位会非常糟糕且缓慢(当然,对于在台式机上加载文字处理器,它加载的速度非常重要,我完全接受。但是对于计算密集型的服务器进程(不处理来自互联网的恶意数据),我想拥有我所能获得的所有性能和寄存器!

2)我可以在Linux上创建NOT -fPIC编译的SO文件吗?我可以离开-

fPIC吗?是否有任何方法,手册或项目适用于该主题,并且可以避免浪费整个寄存器并仍然动态加载库?

如果仅在编译.so文件时放下-fPIC,会发生什么情况?

linux在当前目录下创建pic目录,在Linux上创建.SO文件而不使用PIC(与位置无关的代码)(x86 32位)...相关推荐

  1. linux查看当前目录下的所有目录

    我们知道可以使用ll命令列出当前目录下的所有文件夹和文件,ls -a还可以把隐藏文件显示出来,如果我们只想列出当前目录,可以使用如下命令 ls -d */ ll -d */

  2. Linux下显示当前目录下的全部目录或文件

    Linux终端中显示当前目录下的所有目录和文件(不包含隐藏文件): [root@localhost ~]# ll // 显示所有目录和文件 总用量 124 -rw------- 1 root root ...

  3. linux ftp用户指定多个目录,linux ftp服务器下用户限制目录的方法

    我们使用服务器都要站在安全方面进行考虑,有必要将ftp服务下的用户限制在适当的范围内,那么linux ftp服务器下用户限制目录的方法有哪些呢?一起跟着爱站技术频道小编的步伐来了解一下吧! linux ...

  4. 过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件

    过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件 find ./ -type f -size +1G| xargs rm 在清理系统日志文件 ...

  5. Linux 从当前目录下切换到根目录下

    Linux 从当前目录下切换到根目录下 切换到根目录下,直接su,或者su root,根用户为#符号 使用su命令切换到root用户 由于root用户一开始是没有密码的,因此首先输入:sudo pas ...

  6. Python_删除/创建指定目录及其下所有子目录的文件,该文件记录当前文件夹的内容...

    Python_删除/创建指定目录及其下所有子目录的文件,该文件记录当前文件夹的内容 Python_删除/创建指定目录及其下所有子目录的文件,该文件记录当前文件夹的内容 - IGod接口 - 博客园 P ...

  7. 【Python】获取当前目录、获取上级目录、获取上上级目录

    Python获取当前目录.获取上级目录.获取上上级目录: import osprint(os.getcwd()) # 获取当前目录 print(os.path.abspath(os.path.join ...

  8. 【lvcreate】创建lv需要在vg上创建

    [lvcreate]创建lv需要在vg上创建 参数: [-n]:指定名称 [-L]:指定空间大小 例如:lvcreate -L 50M -n testlv myvg //在myvg中创建一个lv,名称 ...

  9. 【lvcreate】创建lv需要在vg上创建 (一)

    [lvcreate]创建lv需要在vg上创建 参数: [-n]:指定名称 [-L]:指定空间大小 例如:lvcreate -L 50M -n testlv myvg    //在myvg中创建一个lv ...

最新文章

  1. 计算机rsnge指令,计算机二级office Excel 函数复习重点
  2. Java中读取控制台输入
  3. JVM相关概念和异常类型
  4. 法国 计算机金融 大学,捷报|GPA3.0,计算机转申金融,斩获法国顶级商学院录取!...
  5. 三个变量中怎么找出中间值_scratch图形化编程基础练习-变量交换
  6. JS—C11库仑计说明书,js-c11库仑计说明书
  7. pdf edit注册码
  8. 终极成语接龙,谁能继续往下接,哈哈!!!
  9. 单片机破解方法(摘录)
  10. 【rmzt】美女之目露凶光win7主题
  11. 用python演绎神奇的生命游戏,在游戏中学习numpy和matplotlib动画
  12. 推荐一些程序猿学习的网站
  13. html隐藏域倒计时,一个网页倒计时的实现
  14. 基于单片机的打地鼠游戏仿真设计(#0040)
  15. 三星s8 android9.0官方rom,三星S8+港版安卓9官方固件rom刷机包:TGY-G9550ZHU3DSD3
  16. 怦然心动(Flipped)-2
  17. RectTransform的Bounds
  18. 对于seo优化与sem竞价有什么不同的地方?哪个更适合?
  19. UDS诊断系列之三 ISO14229协议介绍(下)
  20. java 图片合成_java 将两张相片合成一张,开发实用类

热门文章

  1. 【Java】输出10-1000中间既能被3整除又能被7整除的数
  2. C#LeetCode刷题之#461-汉明距离​​​​​​​(Hamming Distance)
  3. 拒绝做思想的巨人,行动上的矮子
  4. linux把标准输出赋值给变量遇到的问题
  5. java 快速排序 递归_Java递归快速入门
  6. d3 canvas_D3和Canvas分3个步骤
  7. java 字节码加载_java面试题jvm字节码的加载与卸载
  8. java包管理之maven安装
  9. php控制台脚本错误输出到php_errors.log
  10. 很多人现在还不知道的知识点,Python多进程和多线程详解!