����Ҫ����Ϊʲô FreeBSD ʹ�� elf(5) ��ʽ�� �����������˽�һЩ UNIX® ϵͳ�е� ���� ����Ҫ�� ��ִ���ļ���ʽ���й�֪ʶ��
������Ϻ͡�����ġ� UNIX Ŀ���ļ���ʽ�� ���ָ�ʽ�����ļ��Ŀ�ʼ����һ����С���ֽ��յ��ײ��� ���ײ�����һ��ħ�����֣�������ʶ����ĸ�ʽ(��������μ�a.out(5))�� ���ָ�ʽ����3��Ҫװ�����ڴ�ĶΣ�.text�� .data�� �� .bss���Լ� һ�����ű���һ���ַ�������
COFF
SVR3Ŀ���ļ���ʽ�����ļ�ͷ���ڰ���һ�����α�(section table)�� ��˳���.text��.data����.bss�������⣬�������������������Ρ�
COFF �ĺ�̣� ���ص��ǿ����ж�����Σ� ������ʹ��32λ��64λ��ֵ�� ����һ����Ҫ��ȱ�㣺 ELF �������ʱ����ÿ��ϵͳ��ϵ�ṹֻ��һ�� ABI�� ���ּ�����ʵ���൱���� ��������ҵ����SYSV�����ж��Ǵ���� (��������������ABI: SVR4, Solaris, SCO)��
FreeBSD��ͼ��ij�̶ֳ��Ͻ��������⣬���ṩһ�����ߣ����� ��һ����֪��ELF��ִ���ļ� ��ʶ������ӵ�ABI����Ϣ�� �����ⷽ���֪ʶ���Բμ��ֲ�ҳbrandelf(1)
����FreeBSD�ӡ����䡱��Ӫ���������ʹ����a.out(5)��ʽ�� �ڶ�BSD�汾�ķ���(ֱ��3.X��֧�Ŀ�ʼ)Ҳ֤�������ָ�ʽ����Ч�ԡ� ��Ȼ������ǰ��ij��ʱ�䣬��FreeBSDϵͳ�ϴ���������ELF��ʽ �Ķ����ƿ�ִ���ļ�(���ں�)Ҳ�ǿ��ܵģ���FreeBSDһ��ʼ���������������� ��ʹ��ELF��Ϊ��ȱʡ�ĸ�ʽ��Ϊʲô���ޣ���Linux��Ӫ����� ת����ELF��ʽ��ʹ�����̺�ȴ���ֲ��������ɴ˶����� a.out��ִ���ļ���ʽ����Ϊ�����������Dz����ģ� ������ת���Ĺ�������ƣ�ʹ�������̺Ϳ������ǹ���������dz����ѡ� ֱ�����е�ELF�����ṩ��һ�ֽ������������İ취�� �����ձ���Ϊ�ǡ�ǰ�������Ժ�Ǩ��Ĵ�����FreeBSD��ű����ܣ� ���ɴ������Ǩ�㡣FreeBSD�Ĺ���������������������Sun SunOS™�Ĺ�������ƣ� ��������Ϊ�ˣ��������Ժܺá�
������ô��Ϊʲô������ô�ͬ�ĸ�ʽ�أ�
�������ݵ������ͺڰ��Ĺ�ȥ����ʱֻ�м�Ӳ�������ּ�Ӳ��֧����һ���� ��С�͵�ϵͳ���������ļ�ϵͳ��(PDP-11)a.out��ʽ ����ʤ�α���������ļ����������ǽ�UNIX�����ּ�ϵͳ����ֲ������ʱ�� a.out��ʽ����������������Ϊ�������ڽ�UNIX��ֲ�� Motorola 68k��VAXen��ϵͳ��˵���������㹻���õġ�
����Ȼ��һЩ������Ӳ������ʦ��Ϊ������������������һЩ�Ĵ��������� ��ô���ǾͿ�����Ӳ������м��������ŵ�·����������CPU�������еø��졣 ��a.out��ʽ�����������͵�Ӳ��ϵͳʱ(�������ǽ��� RISC)���Եò������ʡ���ˣ���������������µĸ�ʽ �Ա���������Ӳ��ϵͳ���ܻ�ñȼ�a.out��ʽ����Խ �����ܡ�����COFF��ECOFF���������� һЩ��ɬ�Ѷ��ĸ�ʽ����������α����������ģ�����Ҳ�о�����Щ��ʽ�ľ����ԣ� ������������ʵ��ELF��ʽ��
����ͬʱ������Ĵ�С���Խ��Խ���̿ռ�(�Լ������ڴ�)�����˵ȴ��Ȼ��С�� ��˹�����ĸ��������ˡ�VMϵͳҲ���Խ��Խ�����ˡ���������Щ������������ a.out��ʽ�Ļ����ϵ�ʱ�����Ŀ���������ÿ�������� �IJ������ܵ������ؿ��顣���ң����ǻ�ϣ������������ʱ��̬װ��ijЩ���������� �ڳ�ʼ�����������Ժ���Զ������ֳ�����룬�Ա��Լ���洢���ͽ�������������� Ҳ���Խ��Խ���ӣ�����ϣ��������main()����ִ��֮ǰ�Զ�ִ��ijЩ���롣Ϊ��ʵ�� ������Щ���ܣ����Ƕ�a.out��ʽ���˺ܶ�Ķ�(hack)�� ������ij���������Ҳ�ǿ��еġ�����ʱ������ƣ�a.out��ʽ ���ò����Ӵ����Ĵ�����Ӷ���������Щ������ȻELF��ʽ ������������������⣬���Ǵ�һ�����õ�ϵͳǨ�Ƶ���һ��ϵͳȴ��ʹ��ġ���� ֱ����������a.out��ʽ�Ĵ��۱�Ǩ�Ƶ�ELF��ʽ �Ĵ��ۻ����ʱ�����DzŻ�����ת����ELF��ʽ��
����Ȼ��������ʱ������ƣ�FreeBSDϵͳ�����ı��빤��(�ر��ǻ������װ����) ���������ı��빤�ߣ��䷢չȴ�γ�������ƽ�еķ�֧��FreeBSD�����֧�����˹����⣬ ������һЩ����ԭ�ȱ�д����Щ���ߵ�GNU������д����Щ���ߣ����Խ�������ṩ�� ����֧�֣�����������˲�ͬ��ʽ��֧�֣��ȵȡ���Ȼ�ܶ���ϣ���������FreeBSD�� �����������������ȴ��δ��Ը�Գ�����ΪFreeBSD��as ��ld��Դ�����Ϊ�Ͼɣ����������������� �µ�GNU������(binutils)��ȷʵ֧�ֽ�����룬ELF ��ʽ�������⣬C++��չ���ȵȡ����ң����ںܶӦ�̶�����ELF��ʽ�� �������ļ��������FreeBSD�ܹ��������ǽ���һ���ܺõ����顣
����ELF��ʽ��a.out��ʽ����Ҫ��Щ��ͬʱҲ ��������ϵͳ�и��õ���չ�ԡ�ELF��ʽ���йع������Ÿ��õ�ά���� �����ṩ�������֧�֣������������˵�Ǻ���Ҫ�ġ�ELF��ʽ���ܻ��� ��һЩ�������Ѳ������������⣬��������֮�䣬������ϸ��Ҳ�Dz�ͬ�ģ���������ӳ��ҳ��ķ�ʽ�� ������ʼ������ķ�ʽ���ȵȡ�������Щ����̫��Ҫ������Ҳȷʵ�Dz�֮ͬ�����ڽ������ʵ�ʱ�� GENERIC�ں˽�����֧��a.out��ʽ�����ң� ��������Ҫ����������a.out��ʽ����ʱ���ں�Ҳ�������ṩ�����֧�֡�
���ĵ��������ĵ��ɴ��������أ�ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
�������FreeBSD�����⣬�����Ķ��ĵ����粻�ܽ������ϵ<questions@FreeBSD.org>.
���ڱ��ĵ��������뷢����ϵ <doc@FreeBSD.org>.