一种linux程序代码加载的方法及装置制造方法及图纸

技术编号:5222227 阅读:253 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种linux程序代码加载的方法及装置,用以解决现有技术中存在的修改linux程序就必须重启该程序进而导致服务中断的问题,该方法包括:开始启动linux程序,通过linux操作系统仅将linux程序代码的加载代码加载到地址空间中,运行加载代码,将其它部分的代码加载到地址空间中,其它部分的代码被修改后,对加载代码执行再加载操作,将修改后的其它部分的代码重新加载到地址空间中,当只是修改linux程序中其它部分的代码时,不必重启该程序进而避免中断服务。

【技术实现步骤摘要】

本专利技术属于计算机
,特别涉及一种linux程序代码加载的方法及装置。
技术介绍
linux下的软件进程的地址空间主要分为图1所示包括如下的几块内核地址空 间、用户栈地址空间、共享库映射区地址空间、内运行时堆地址空间、可读写的全局数据地 址空间、“只读的代码和数据”地址空间以及保留地址空间,linux下的程序的代码保存在 “只读的代码和数据”段中。在程序启动的时候,操作系统会将可执行文件中的代码全部加 载到“只读的代码和数据”段,然后从程序的入口处(也就是main函数的位置)开始执行。这样做有一个明显的缺点只要linux下的程序做了任何一点修改,就必须关闭 该程序,用新的可执行文件替换旧的可执行文件,然后再启动程序。这样的话会导致服务暂 时中断。对于部署量大的例如cache软件这种服务质量要求高的软件程序来说,中断服务 的问题造成的影响尤为突出。
技术实现思路
本专利技术提供一种linux程序代码加载的方法及装置,用以解决现有技术中存在的 修改linux程序就必须重启该程序进而导致服务中断的问题。本专利技术实施例提供的一种linux程序代码加载的方法包括开始启动linux程序本文档来自技高网...

【技术保护点】
一种linux程序代码加载的方法,其特征在于,包括:开始启动linux程序,通过linux操作系统将linux程序中的加载代码加载到地址空间中;运行地址空间中的加载代码,将linux程序中的其它部分代码加载到地址空间中;linux程序中的其它部分的代码被修改后,对加载代码执行再加载操作,将修改后的其它部分的代码重新加载到地址空间中。

【技术特征摘要】
一种linux程序代码加载的方法,其特征在于,包括开始启动linux程序,通过linux操作系统将linux程序中的加载代码加载到地址空间中;运行地址空间中的加载代码,将linux程序中的其它部分代码加载到地址空间中;linux程序中的其它部分的代码被修改后,对加载代码执行再加载操作,将修改后的其它部分的代码重新加载到地址空间中。2.如权利要求1所述的方法,其特征在于,将linux程序中的其它部分的代码加载到地 址空间中具体为将linux程序中的其它部分的代码加载到地址空间中,其它部分代码为执行linux程 序过程中修改请求的数据时,需要调用部分的代码。3.如权利要求1所述的方法,其特征在于,将linux程序中的其它部分的代码加载到地 址空间中之前还包括将linux程序中的其它部分的代码编译打包后存储于动态链接库文件中; 将linux程序中的其它部分的代码加载到地址空间中具体为 运行加载代码,将动态链接库文件中的代码链接到地址空间中。4.如权利要求3所述的方法,其特征在于,将linux程序中的其它部分的代码编译打包 后存储于动态链接库文件中具体为将多段其它部分的代码编译打包后,对应存储于不同的动态链接库文件中; 将动态链接库文件中的代码链接到地址空间中具体为 运行加载代码,将各动态链接库文件中的代码分别链接到不同的地址空间中。5.如权利要求4所述的方法,其特征在于,linux程序中的其它部分的代码被修改后, 对加载代码执行再加载操作,将修改后的其它部分的代码重新加载到地址空间中具体为linux程序中的其它部分的代码被修改后,对加载代码执行再加载操作,加载代码检测 当前所有动态链接库文件,将当前所有动态链接库文件中的代码分别链接到不同的独立地 址空间中,当前所有动态链接库文件中的代码包括,原有动态链接库文件中修改后的代码, 和/或新增动态链接库文件中的代码。6.如权利要求1所述的方法,其特征在于,通过linux操作系统将linux程序中的加载 代码加载到地址...

【专利技术属性】
技术研发人员:斯文栗伟周东树田江波钟东黄勇黄超生刘研张蕴锋
申请(专利权)人:蓝汛网络科技北京有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1