7.7 共享库

7.7 共享

在,很多UNIX支持共享Arnold [1986] 明了系V上共享的一早期实现G i n g e l l[1987] 则说明了S u n O S上的另一个实现。共享使得可行文件中不再需要包含常用的,而只需在所有程都可存取的存储区中保存例程的一副本。程序第一次者第一次用某个库数时,用动态连接方法程序与共享接。少了每文件的度,但增加了一时间开销。共享的另一是可以的新版本代替老版本而使用该库的程序重新编辑(假定参数目和型都生改)

不同的系使用不同的方法使明程序是否要使用共享。比典型的有c c ( 1 )l d ( 1 )命令的可选项。作为长度方面化的例子,下列可行文件(典型的h e l l o . c程序)先用共享方式建:

$ ls -1 a.out

-rwxrwxr-x 1 stevens 104859 Aug :2 52 a1.4out

$ size a.out

text data bss dec hex

49152 49152 0 98304 18000

如果我编译此程序使其使用共享行文件的正文和据段的度都小:

$ ls -1 a.out

-rwxrwxr-x 1 stevens 24576 Aug : 226 1a4.out

$ size a.out

text data bss dec hex

8192 8192 0 16384 4000