2

当加载动态库并在磁盘上更新,然后启动链接到该库的新进程时,Linux 会发生什么?新进程是与内存中的旧副本还是磁盘上的新版本相关联?

4

1 回答 1

2

当包管理器更新磁盘上的文件时,他们实际上会删除旧文件并在其位置写入一个新文件。结果是,已经打开库的旧应用程序继续看到旧的——旧文件仍然存在于磁盘和内存中,但不再有文件名指向它。这些类型的文件称为孤立文件。

同时,应用程序在库被替换后启动,开始使用更新版本的库。

这就是为什么在断电后,您有时会在日志中或启动过程中看到以下消息:

EXT4-fs (sda3): 34 orphan inodes deleted

旧系统在崩溃时仍在访问这些文件,但它们不再对应用程序可见,因此应将其删除。

于 2011-04-22T16:15:14.480 回答