📄 00000001.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: <A HREF="mailto:shawn@skydome.hinet.net">shawn@skydome.hinet.net</A> (Shawn Hsiao), 信区: linux <BR>标 题: Re: ELF <BR>发信站: Private site running Linux (Tue Mar 7 04:22:45 1995) <BR>转信站: <BR> <BR>==>Benjamin Chen (<A HREF="mailto:dagger.bbs@csie.nctu.edu.tw)">dagger.bbs@csie.nctu.edu.tw)</A> wrote: <BR>∶<I> 1. Linux kernel 1.1 的第几个 patch 开始的 ELF 才可信任? </I><BR> <BR>大约在 1.1.6x 後的就可以了. <BR> <BR>∶<I> 2. ELF 将来会取代 static shared library 吗? </I><BR> ^^^^^^^^^^^^^^^^^^^^^ <BR> 我假设你想问的是 libraries for dynamic linked 跟 <BR> libraries for static linked. <BR> <BR>Probably. 原有 a.out 的 users 太多了, 目前没有好的方法代换掉. <BR>不少人已经提议要将 ELF 变成 Linux 标准的 binary format, 甚至连原本欠缺 <BR>的 core dump/debug 部份都写好了, 只差 distribution (如 Slackware) 的配合. <BR> <BR>PS. 去年曾经在 Debian 0.93R1 发出前提过, 将 Debian 变成第一个全 ELF 的 <BR>distribution, 不过 Debian 的主要干部坚决反对, 目前游说目标指向 Bogus. <BR> <BR>∶<I> 3. ELF 是否会为执行中的程式节省 RAM 的使用? </I><BR> <BR>使用 ELF 最大的好处是可以使 dynamic linked library 的制造变得容易 (implies <BR>混乱?), 因此, 可以节省部份记忆体 (不是很有关系, 但是会有作用). <BR> <BR>还有其它好处, 我曾经 demo 给 wycc 看过, 我想他也开始换 ELF 了. <BR> <BR>∶<I> 4. 现在是不是植入 ELF 的良机? </I><BR> <BR>我认为还不是. 除非你有自己动手 build 大部份 utilities 的时间. (我连 XFree86 <BR>3.1.1 都是自己 build 的. 8~~~) <BR> <BR>∶<I> 5. 假设我写了个需用上 curses 的程式, 并且想将之编译成 </I><BR>∶<I> ELF 的格式; 然而, 系统内所安装的 curses 程式库只有 </I><BR>∶<I> 一份 static shared library 及一份 static library. </I><BR>∶<I> 请问可能吗? 是不是 curses 也非得有 ELF 格式的 </I><BR>∶<I> library 才可以? </I><BR> <BR>那是当然. <BR> <BR>∶<I> 6. 若想发展自己的 ELF 格式的 library, 是不是也要像 static </I><BR>∶<I> ^^^^^^ </I><BR>∶<I> shared library 一样麻烦? </I><BR>∶<I> ^^^^^^^^^^^^^^ </I><BR> 我假设你想问的是 a.out 的 shared libraries. <BR> <BR>不是, 简单多了. <BR> <BR> <BR>∶<I> 7. 有为 ELF 而订制的 gcc, 那 gdb 是否也要更新? </I><BR> <BR>如果使用 Cygnus 的版本, 就不需要再更新. ELF 在 Linux 上的使用, Cygnus <BR>也出了不少力. <BR> <BR>∶<I> 8. 是不是大部份使用 static shared library 的软体都可以 </I><BR> ^^^^^^^^^^^^^^^^^^^^^ <BR> 假设同 (6) <BR> 轻易地更改而去用 ELF library? <BR> <BR>不是, 两者为不同系统, 不能相容. <BR> <BR>∶<I> 9. 您使用 ELF 後的经验与感想? 这是我最渴望知道的. :-) </I><BR> <BR>如果你有使用大 package 的机会, ELF 也许是非常适合你. <BR> <BR>前一阵子帮忙处理 Modula-3 for LINUXELF 的一部份, 得到的效果另人非常满意. <BR>原本 Modula-3 的 package 在传统 a.out 的 binary format 下只能做 static <BR>link, 使得 binary 的大小居高不下, load time 很长, 占的 storage 也很多. <BR>硬要将一部份抽出制成 shared libraries 的话, 却会有混乱的问题. (目前 ELF <BR>也有一点点混乱, 因为我们还没有达成共识. ELF 的使用者数量太少是一个障碍.) <BR>改用 ELF 後, 将一部份大於 500KB 的 libraries 抽出制为为 shared libraries, <BR>整体表现就提升很多了. <BR> <BR>我底下举一个不是很好的例子, 主要是要比较多了几个 shared libraries 之後的 <BR>档案大小. (处理 tetris.shared 这个档案的方式, 就是原本在 a.out 上的方式.) <BR>原本应该还要测 load time, 但是因为没有对照组, 再加上没有适当的 program, <BR>所以只好省略. <BR> <BR>目前 Modula-3 for Linux 的 distribution 我看还是以 a.out 为主, 但越来越 <BR>多人会倾向使用 ELF, 只要光看档案大小就够了. <BR> <BR>-rwxr-xr-x 1 root root 923039 Feb 15 1995 libm3core.so.1.1.1 <BR>-rwxr-xr-x 1 root root 1866111 Feb 15 1995 libm3.so.1.1.1 <BR> <BR>-rwxr-xr-x 1 shawn users 148531 Mar 7 03:37 tetris <BR>-rwxr-xr-x 1 shawn users 1214545 Mar 7 03:41 tetris.shared <BR>-rwxr-xr-x 1 shawn users 2267301 Mar 7 03:33 tetris.standalone <BR> <BR>tetris: <BR>======= <BR>Linux ELF dynamic linker: tetris: file loaded: /lib/elf/libm3.so.1 <BR> ^^^^^^^^^^ <BR>Linux ELF dynamic linker: tetris: file loaded: /lib/elf/libm3core.so.1 <BR> ^^^^^^^^^^^^^^ <BR>Linux ELF dynamic linker: tetris: file loaded: /lib/elf/libXaw.so.6 <BR>Linux ELF dynamic linker: tetris: file loaded: /lib/elf/libXmu.so.6 <BR>Linux ELF dynamic linker: tetris: file loaded: /lib/elf/libXext.so.6 <BR>Linux ELF dynamic linker: tetris: file loaded: /lib/elf/libXt.so.6 <BR>Linux ELF dynamic linker: tetris: file loaded: /lib/elf/libX11.so.6 <BR>Linux ELF dynamic linker: tetris: file loaded: /lib/elf/libSM.so.6 <BR>Linux ELF dynamic linker: tetris: file loaded: /lib/elf/libICE.so.6 <BR>Linux ELF dynamic linker: tetris: file loaded: /lib/elf/libm.so.4 <BR>Linux ELF dynamic linker: tetris: file loaded: /lib/elf/libc.so.4 <BR> <BR>tetris.shared: <BR>============== <BR>Linux ELF dynamic linker: tetris.shared: file loaded: /lib/elf/libXaw.so.6 <BR>Linux ELF dynamic linker: tetris.shared: file loaded: /lib/elf/libXmu.so.6 <BR>Linux ELF dynamic linker: tetris.shared: file loaded: /lib/elf/libXext.so.6 <BR>Linux ELF dynamic linker: tetris.shared: file loaded: /lib/elf/libXt.so.6 <BR>Linux ELF dynamic linker: tetris.shared: file loaded: /lib/elf/libX11.so.6 <BR>Linux ELF dynamic linker: tetris.shared: file loaded: /lib/elf/libSM.so.6 <BR>Linux ELF dynamic linker: tetris.shared: file loaded: /lib/elf/libICE.so.6 <BR>Linux ELF dynamic linker: tetris.shared: file loaded: /lib/elf/libm.so.4 <BR>Linux ELF dynamic linker: tetris.shared: file loaded: /lib/elf/libc.so.4 <BR> <BR>tetris.standalone: <BR>================== <BR> statically linked (ELF) <BR> <BR> <BR> <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -