65、汇编语言及相关主题深度解析

汇编语言及相关主题深度解析

1. 动态链接与操作系统扩展

在软件开发领域,独立软件开发者扩展像 Linux 这类广泛使用的操作系统功能变得愈发容易。开发者能够创造出对各类应用都有用的新功能,并将其打包成动态链接模块。

运行时动态链接是一种特殊的链接方式,部分链接操作会推迟到执行时进行。在加载的程序中,会保留对目标模块的外部引用。当调用缺失的模块时,操作系统会定位该模块,将其加载并与调用模块进行链接。这种模块通常是可共享的,在 Windows 环境中,它们被称为动态链接库(DLLs)。若一个进程已在使用某个动态链接的共享模块,该模块会存在于主内存中,新进程可直接链接到已加载的模块。然而,使用 DLLs 也会引发问题,即所谓的 DLL hell。当两个或多个进程共享一个 DLL 模块,但期望的是该模块的不同版本时,就会出现这种情况。例如,重新安装某个应用程序或系统功能时,可能会引入旧版本的 DLL 文件。

2. 动态加载与程序模块

动态加载允许整个加载模块移动,但模块的结构是静态的,在进程执行期间以及每次执行之间都保持不变。不过,在某些情况下,执行前无法确定需要哪些目标模块,事务处理应用程序就是典型例子,如航空公司订票系统或银行应用程序。事务的性质决定了需要哪些程序模块,这些模块会根据需要加载并与主程序链接。使用这种动态链接器的优势在于,只有在引用程序单元时才需要为其分配内存,这一功能可用于支持分段系统。

3. 应用与模块名称

应用程序无需知晓所有可能被调用的模块或入口点的名称。例如,绘图程序可以设计为与多种绘图仪配合使用,每种绘图仪由不同的驱动程序包驱动。应用程序可以从其他进程获取当前系统中安装的绘图仪名称,或者通

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值