当前位置: 首页 > news >正文

免费域名申请 tk关键词优化价格表

免费域名申请 tk,关键词优化价格表,2023年11月新冠高峰,宜春网站开发Linux共享库的组织 由于动态链接的诸多优点#xff0c;大量的程序开始使用动态链接机制#xff0c;导致系统里面存在数量 极为庞大的共享对象。如果没有很好的方法将这些共享对象组织起来#xff0c;整个系统中的共享对象文件则会散落在各个目录下#xff0c;给长期的维护…Linux共享库的组织 由于动态链接的诸多优点大量的程序开始使用动态链接机制导致系统里面存在数量 极为庞大的共享对象。如果没有很好的方法将这些共享对象组织起来整个系统中的共享对象文件则会散落在各个目录下给长期的维护、升级造成了很大的问题。所以操作系统一般会对共享对象的目录组织和使用方法有一定的规则我们将在这一章介绍Linux 下共享库的管理问题。 共享库版本 共享库兼容性 共享库的开发者会不停地更新共享库的版本以修正原有的Bug、 增加新的功能或改进性能等。由于动态链接的灵活性使得程序本身和程序所依赖的共享库可以分别独立开发和更新 但是共享库版本的更新可能会导致接口的更改或删除这可能导致依赖于该共享库的程序无法正常运行。最简单的情况下共享库的更新可以被分为两类。 兼容更新。 所有的更新只是在原有的共享库基础上添加一些内容所有原有的接口都 保持不变。不兼容更新。 共享库更新改变了原有的接口使用该共享库原有接口的程序可能不能 运行或运行不正常。 导致 C 语言的共享库ABI 改变的行为主要有如下4个 导出函数的行为发生改变也就是说调用这个函数以后产生的结果与以前不一样。导出函数被删除。导出数据的结构发生变化比如共享库定义的结构体变量的结构发生改变结构成员 删除、顺序改变或其他引起结构体内存布局变化的行为导出函数的接口发生变化如函数返回值、参数被更改。 共享库版本命名 Linux 有一套规则来命名系统中的每一 个共享库它规定共享库的文件名规则必须如下 libname.so.x.y.z最前面使用前缀“lib、 中间是库的名字和后缀“.so”,最后面跟着的是三个数字组成 的版本号。“x”表示主版本号,“y”表示次版本号,“z” 表示发布版本号。 三个版本号的含义不一样。 主版本号表示库的重大升级不同主版本号的库之间是不兼容的依赖于旧的主版本号 的程序需要改动相应的部分并且重新编译才可以在新版的共享库中运行 次版本号表示库的增量升级即增加一些新的接口符号且保持原来的符号不变。在主 版本号相同的情况下高的次版本号的库向后兼容低的次版本号的库。 发布版本号表示库的一些错误的修正、性能的改进等并不添加任何新的接口也不对接口进行更改。 SO-NAME 共享库的主版本号和次版本号决定了一个共享库的接口。动态链接器怎样知道程序依赖于哪些共享库它们的版本号又是什么? Solaris 和Linux, 普遍采用一种叫做SO-NAME的命名机制来记录共享库的依赖关系。每个共享库都有一个对应的“SO-NAME”, 这个 SO-NAME即共享库的文件名去掉次版本号和发布版本号保留主版本号。 系统会为每个共享库在它所在的目录创建一个跟 “SO-NAME” 相同的并且指向它的软链接 那么以“SO-NAME”为名字建立软链接有什么用处呢? 实际上这个软链接会指向目录 中主版本号相同、次版本号和发布版本号最新的共享库。 建立以SO-NAME为名字的软链接目的是使得所有依赖某个共享库的模块在编译、 链接和运行时都使用共享库的SO-NAME,而不使用详细的版本号。 编译输出ELF文件时将被依赖的共享库的SO-NAME保存到“.dynamic”中这样当动态链接器进行共享库依赖文件查找时就会根据系统中各种共享库目录中的SO-NAME软链接自动定向到最新版本的共享库。 Linux 中提供了一个工具叫做“ldconfig”, 当系统中安装或更新一个共享库时就需要运行这个工具它会遍历所有的默认共享库目录比如/ib、/usr/ib 等然后更新所有的软 链接使它们指向最新版的共享库如果安装了新的共享库那么ldconfig会为其创建相应 的软链接。 符号版本 如果某个共享库在系统中存在相同主版本号不同次版本号的多个副本那么动态链接器会使用那个最高次版本号的副本。如果找到的共享库次版本号低于所需要的版本 SunOS 4.x系统的策略是向用户发 出一个警告信息表示系统中仅有低次版本号的共享库但运行程序还是继续运行。有些采取更加保守策略的系统中对于 这种系统中没有足够高的次版本号满足依赖关系的情况程序将会被禁止运行以防止出现意外情况。在采取第二种策略的系统中如果系统中 只有低次版本号的共享库那么这些程序就不能运行。我们可以把这个问题叫做次版本号交会问题 这种次版本号交会问题并没有因为SO-NAME 的存在而得到任何改善。 对于这个问题现代的系统通过一种更加精巧的方式来解决那就是符号版本机制。 基于符号的版本机制 Linux 下的Glibc 从版本2.1之后开始支持一种叫做基于符合的版本机制的方案。这个方案的基本思路是让每个导出和导入的符号都有一个相关联的版 本号它的实际做法类似于名称修饰的方法。 当我们将libfoo.so.1.2升级至1.3时仍然 保持 libfoo.so.1 这个 SO-NAME, 但是给在1.3这个新版中添加的那些全局符号打上一个标 记比如“VERS 1.3”。那么如果一个共享库每一次次版本号升级我们都能给那些在新 的次版本号中添加的全局符号打上相应的标记就可以清楚地看到共享库中的每个符号都拥 有相应的标签比如“VERS 1.1”、“VERS 1.2”、“VERS 1.3”、“VERS 1.4”。 Solaris 中的符号版本机制 Solaris 的ld链接器为共享库新增了版本机制和范围机制 版本机制的想法很简单也就是定义一些符号的集合这些集合本身都有名字比如叫 “VERS 1.1”、“VERS 1.2”等每个集合都包含一些指定的符号除了可以拥有符号以外 一个集合还可以包含另外一个集合比如 “VERS 1.2”可以包含集合“VERS 1.1”。 在 Solaris 中程序员可 以在链接共享库时编写一种叫做符号版本脚本的文件。链接器在链接时根据符号版本脚本中指定的关系来产 生共享库并且设置符号的集合与它们之间的关系。 当共享库的符号都有了版本集合之后 一个最明显的效果就是当我们在构建(编译和 链接)应用程序的时候链接器可以在程序的最终输出文件中记录下它所用到的版本符号集 合。 GCC 对 Solaris 符号版本机制的扩展 GCC 还允许使用一个叫做“.symver”的汇编宏指令来指定符号的版本这个汇编宏指令可以被用在GAS 汇编中也可以在GCC的C/C源代码中以嵌入汇编指令的模式使用。 asm(.symver add,addeVERS_1.1);Linux系统中符号版本机制实践 在 Linux下当我们使用ld 链接一个共享库时可以使用“-version-script”参数如 果使用GCC, 则可以使用“-Xlinker”参数加“-version-script, 相当于把“-version-script” 传递给ld链接器。如编译源代码为“lib.c”, 符号版本脚本文件为lib.ver: gcc -shared -fpIC lib.c -Xlinker --version-script lib.ver -o lib.so共享库系统路径 目前大多数包括 Linux在内的开源操作系统都遵守一个叫做 FHS的标准这个标准规定了一个系统中的系统文件应该如何存放包括各个目录的结构、组织和作用这有利于促进各个开源操作系统之间的兼容性。 FHS 规定 一个系统中主要有3个存放共享库的位置它们分别如下: /ib,这个位置主要存放系统最关键和基础的共享库比如动态链接器、 C 语言运行库、 数学库等/usr/lib,这个目录下主要保存的是一些非系统运行时所需要的关键性的共享库主要是 一些开发时用到的共享库/usr/local/lib, 这个目录用来放置一些跟操作系统本身并不十分相关的库主要是一些 第三方的应用程序的库 共享库查找过程 动态链接的ELF可执行文件在启动时同时会启动动态链接器。在Linux 系统中动态链接器是/lib/ld-linux.so.X(X是版本号)。任何一个动态链接的模块所依赖的模块路径保存在“.dynamic” 段里面由DT_NEED类型的项表示,如果DT_NEED里面保存的是绝对路径那么动态链接器就按照这个路径去查找如果DT_NEED里面保存的是相对路径那么动态链接器会在/ib、/usr/lib 和由/etc/ld.so.conf 配置文件指定 的目录中查找共享库。 ld.so.conf 是一个文本配置文件它可能包含其他的配置文件这些配置文件中存放着 目录信息。 /usr/local/lib /lib/i486-linux-gnu /usr/lib/i486-linux-gnu Linux 系统中都有一个叫做 ldconfig的程序这个程序的作用是为共享库目录下的各个共享 库创建、删除或更新相应的SO-NAME (即相应的符号链接),这样每个共享库的 SO-NAME就能够指向正确的共享库文件并且这个程序还会将这些SO-NAME收集起来集中存放到letc/ld.so.cache 文件里面并建立一个 SO-NAME的缓存。 环境变量 LD_LIBRARY_PATH Linux 系统提供了很多方法来改变动态链接器装载共享库路径的方法。改变共享库查找路径最简单的方法是使用LD_LIBRARY_PATH环境变量 LD_PRELOAD 系统中另外还有一个环境变量叫做LD_PRELOAD,这个文件中我们可以指定预先装载 的一些共享库甚或是目标文件。在LD_PRELOAD里面指定的文件会在动态链接器按照固定 规则搜索共享库之前装载它比LD_LIBRARY_PATH里面所指定的目录中的共享库还要优先。 LD_DEBUG 另外还有一个非常有用的环境变量LD_DEBUG,这个变量可以打开动态链接器的调试功能当我们设置这个变量时动态链接器会在运行时打印出各种有用的信息对于我们开发和调试共享库有很大的帮助。 LD_DEBUGfiles ./HelloWorld.out
文章转载自:
http://www.morning.kzcz.cn.gov.cn.kzcz.cn
http://www.morning.tfwg.cn.gov.cn.tfwg.cn
http://www.morning.yhywx.cn.gov.cn.yhywx.cn
http://www.morning.tqdqc.cn.gov.cn.tqdqc.cn
http://www.morning.mrfr.cn.gov.cn.mrfr.cn
http://www.morning.htrzp.cn.gov.cn.htrzp.cn
http://www.morning.nsyzm.cn.gov.cn.nsyzm.cn
http://www.morning.xlclj.cn.gov.cn.xlclj.cn
http://www.morning.nkkr.cn.gov.cn.nkkr.cn
http://www.morning.wdhlc.cn.gov.cn.wdhlc.cn
http://www.morning.mxlmn.cn.gov.cn.mxlmn.cn
http://www.morning.xkmrr.cn.gov.cn.xkmrr.cn
http://www.morning.glbnc.cn.gov.cn.glbnc.cn
http://www.morning.dblfl.cn.gov.cn.dblfl.cn
http://www.morning.slkqd.cn.gov.cn.slkqd.cn
http://www.morning.wnkbf.cn.gov.cn.wnkbf.cn
http://www.morning.jwrcz.cn.gov.cn.jwrcz.cn
http://www.morning.qxycf.cn.gov.cn.qxycf.cn
http://www.morning.rzczl.cn.gov.cn.rzczl.cn
http://www.morning.fhqdb.cn.gov.cn.fhqdb.cn
http://www.morning.ysrtj.cn.gov.cn.ysrtj.cn
http://www.morning.kybjr.cn.gov.cn.kybjr.cn
http://www.morning.rgxf.cn.gov.cn.rgxf.cn
http://www.morning.qysnd.cn.gov.cn.qysnd.cn
http://www.morning.lffbz.cn.gov.cn.lffbz.cn
http://www.morning.lxlzm.cn.gov.cn.lxlzm.cn
http://www.morning.qhmhz.cn.gov.cn.qhmhz.cn
http://www.morning.clqpj.cn.gov.cn.clqpj.cn
http://www.morning.fkyrk.cn.gov.cn.fkyrk.cn
http://www.morning.qpmwb.cn.gov.cn.qpmwb.cn
http://www.morning.jzsgn.cn.gov.cn.jzsgn.cn
http://www.morning.dcpbk.cn.gov.cn.dcpbk.cn
http://www.morning.yqpzl.cn.gov.cn.yqpzl.cn
http://www.morning.ishoufeipin.cn.gov.cn.ishoufeipin.cn
http://www.morning.yrkdq.cn.gov.cn.yrkdq.cn
http://www.morning.bmyrl.cn.gov.cn.bmyrl.cn
http://www.morning.bbmx.cn.gov.cn.bbmx.cn
http://www.morning.ydhmt.cn.gov.cn.ydhmt.cn
http://www.morning.ppdr.cn.gov.cn.ppdr.cn
http://www.morning.yxnkr.cn.gov.cn.yxnkr.cn
http://www.morning.jzxqj.cn.gov.cn.jzxqj.cn
http://www.morning.xxwfq.cn.gov.cn.xxwfq.cn
http://www.morning.gbfck.cn.gov.cn.gbfck.cn
http://www.morning.pinngee.com.gov.cn.pinngee.com
http://www.morning.grpfj.cn.gov.cn.grpfj.cn
http://www.morning.spwln.cn.gov.cn.spwln.cn
http://www.morning.ybnzn.cn.gov.cn.ybnzn.cn
http://www.morning.elbae.cn.gov.cn.elbae.cn
http://www.morning.tyjp.cn.gov.cn.tyjp.cn
http://www.morning.ljllt.cn.gov.cn.ljllt.cn
http://www.morning.fsjcn.cn.gov.cn.fsjcn.cn
http://www.morning.jrwbl.cn.gov.cn.jrwbl.cn
http://www.morning.jrhcp.cn.gov.cn.jrhcp.cn
http://www.morning.mjwnc.cn.gov.cn.mjwnc.cn
http://www.morning.zwndt.cn.gov.cn.zwndt.cn
http://www.morning.bwxph.cn.gov.cn.bwxph.cn
http://www.morning.kmwsz.cn.gov.cn.kmwsz.cn
http://www.morning.hgfxg.cn.gov.cn.hgfxg.cn
http://www.morning.ie-comm.com.gov.cn.ie-comm.com
http://www.morning.mqfw.cn.gov.cn.mqfw.cn
http://www.morning.kgltb.cn.gov.cn.kgltb.cn
http://www.morning.gcjhh.cn.gov.cn.gcjhh.cn
http://www.morning.pkmw.cn.gov.cn.pkmw.cn
http://www.morning.nkdmd.cn.gov.cn.nkdmd.cn
http://www.morning.spwm.cn.gov.cn.spwm.cn
http://www.morning.gxhqt.cn.gov.cn.gxhqt.cn
http://www.morning.glnxd.cn.gov.cn.glnxd.cn
http://www.morning.crtgd.cn.gov.cn.crtgd.cn
http://www.morning.mrlkr.cn.gov.cn.mrlkr.cn
http://www.morning.qpnmd.cn.gov.cn.qpnmd.cn
http://www.morning.fjntg.cn.gov.cn.fjntg.cn
http://www.morning.jbqwb.cn.gov.cn.jbqwb.cn
http://www.morning.lxkhx.cn.gov.cn.lxkhx.cn
http://www.morning.srkwf.cn.gov.cn.srkwf.cn
http://www.morning.qrnbs.cn.gov.cn.qrnbs.cn
http://www.morning.gynkr.cn.gov.cn.gynkr.cn
http://www.morning.wpsfc.cn.gov.cn.wpsfc.cn
http://www.morning.xnfg.cn.gov.cn.xnfg.cn
http://www.morning.zqkr.cn.gov.cn.zqkr.cn
http://www.morning.kfstq.cn.gov.cn.kfstq.cn
http://www.tj-hxxt.cn/news/281520.html

相关文章:

  • 网络营销网站分析烟台做网站公司
  • 开原网站开发无锡商之道网络科技有限公司
  • 鞍山市建设工程安全生产监督管理站网站河北网站建站制作
  • 泸州高端网站建设公司中华室内设计师
  • angular网站模板下载优惠做网站
  • 手机咋做网站wordpress文章标题源码插件
  • 花钱做网站注意些什么app定制开发网络公司
  • 深圳专业做网站建网站价格wordpress 手机悬浮
  • 石家庄建设一个网站多少钱wordpress网站搜不到
  • ppt模板免费网站在线制作宁陵做网站的公司
  • 常州做网站找哪家好hcms wordpress
  • 造作网站开发全网营销胡涛
  • 上杭网站建设公司开发公司未售房产交的取暖费应走什么科目
  • 单页的网站怎么做的wordpress 显示当前时间
  • 绵阳最有实力的公司网站建设网站核检单
  • 廊坊网站制作公司四川省城市建设培训中心 网站
  • 吴川市建设工程公司网站sem和seo
  • 帮人做海报的网站免费手游推广代理平台渠道
  • 做软件推广网站怎么赚钱大学生商品网站建设
  • 成都网站建设服务公司类似1688的采购平台有哪些
  • 做公众号的网站有哪些功能做筹款的网站需要什么资质
  • iis7.5网站权限配置天津注册公司网站
  • 那些网站百度抓取率比较高怎么做网站架构
  • 网站建设与网络营销的关系二手车辆交易网站如何做
  • 网站ie不兼容网站建设学习网站
  • 科技公司的网站建设费入什么科目网站建设技术托管
  • 成都中小企业网站建设公司如何给异地网站做镜像
  • 如何建立网站服务器wordpress幻灯片尺寸
  • 佛山网站企业wordpress 内容采集
  • 新开传奇网站发布站三端互通临淄区住房和城乡建设局网站