a.out

å称
     a.out — å®è¡å¯è½ãã¤ããªãã¡ã¤ã«ã®ãã©ã¼ããã

æ¸å¼
     <a.out.h>

解説
     ã¤ã³ã¯ã«ã¼ããã¡ã¤ã« <a.out.h> ã§ã¯ 3 ã¤ã®æ§é ä½ã¨ããã¤ãã®ãã¯ã‐
     ã宣è¨ããã¦ãã¾ãã ãããã®æ§é ä½ã¯ããã®ã·ã¹ãã ã§å®è¡å¯è½ãªæ©æ¢°èªã³ã¼ããã¡ã¤ã«
     (‘ãã¤ã㪒) ã®ãã©ã¼ããããè¦å®ãã¾ãã

     ãã¤ããªãã¡ã¤ã«ã¯æ大㧠7 ã¤ã®ã»ã¯ã·ã§ã³ããæ§æããã¾ãã
     ãããã®ã»ã¯ã·ã§ã³ãé ã«ãããã¨ä»¥ä¸ã®ããã«ãªãã¾ã:

     exec ããã            ãã¤ããªãã¡ã¤ã«ãã¡ã¢ãªä¸ã«ãã¼ããã¦å®è¡ããããã«
                         ã«ã¼ãã«ãç¨ãããã©ã¡ã¼ã¿ãå«ãã§ãã¾ãã
                         ãããã®ãã©ã¡ã¼ã¿ã¯ãªã³ã¯ã¨ãã£ã¿ ld(1)
                         ããã¤ããªãã¡ã¤ã«ãä»ã®ãã¤ããªãã¡ã¤ã«ã¨çµåããéã«ã ç¨ãããã¾ãã
                         ãã®ã»ã¯ã·ã§ã³ã¯å¯ä¸ã®å¿é ã»ã¯ã·ã§ã³ã§ãã

     ããã¹ãã»ã°ã¡ã³ã      ããã°ã©ã ãå®è¡ãããéã«ã¡ã¢ãªä¸ã«ãã¼ãããã
                         æ©æ¢°èªã³ã¼ãåã³é¢é£ãã¼ã¿ãå«ãã§ãã¾ãã èªã¿è¾¼ã¿å°ç¨ã§ã‐
                         ã¼ããããå ´åãããã¾ãã

     ãã¼ã¿ã»ã°ã¡ã³ã      åæåæ¸ãã¼ã¿ãå«ãã§ãã¾ãã 常ã«æ¸ãè¾¼ã¿å¯è½ãªã¡ã¢ãªä¸ã«ã‐
                         ã¼ãããã¾ãã

     ããã¹ããªãã±ã¼ã·ã§ã³  ãã¤ããªãã¡ã¤ã«çµåæã«ããã¹ãã»ã°ã¡ã³ãåã®ãã¤ã³ã¿ãä¿®æ‐
                         £ããããã«ã ãªã³ã¯ã¨ãã£ã¿ã«ãã£ã¦ç¨ããããã¬ã³ã¼ããå«ãã§ãã¾ãã

     ãã¼ã¿ãªãã±ã¼ã·ã§ã³  ååºã®ããã¹ããªãã±ã¼ã·ã§ã³ã»ã¯ã·ã§ã³ã¨ä¼¼ã¦ãã¾ããã
                         ãã¼ã¿ã»ã°ã¡ã³ãåã®ãã¤ã³ã¿ä¿®æ£ç¨ã§ãã

     ã·ã³ãã«ãã¼ãã«       ãã¤ããªãã¡ã¤ã«é㧠ååä»ãã®å¤æ°ãé¢æ° (‘ã·ã³ãã«’)
                         ã®ã¢ãã¬ã¹ç¸äºåç§ã解決ããããã«ã
                         ãªã³ã¯ã¨ãã£ã¿ã«ãã£ã¦ç¨ããããã¬ã³ã¼ããå«ãã§ãã¾ãã

     string table        ã·ã³ãã«åã«å¯¾å¿ããæååãå«ãã§ãã¾ãã

     å¨ã¦ã®ãã¤ããªãã¡ã¤ã«ã¯æ¬¡ã® exec æ§é ä½ã§å§ã¾ãã¾ã:

           struct exec {
                   unsigned long   a_midmag;
                   unsigned long   a_text;
                   unsigned long   a_data;
                   unsigned long   a_bss;
                   unsigned long   a_syms;
                   unsigned long   a_entry;
                   unsigned long   a_trsize;
                   unsigned long   a_drsize;
           };

     ãããã®ãã£ã¼ã«ãã¯ä»¥ä¸ã®æ©è½ãæã£ã¦ãã¾ã:

     a_midmag  ãã®ãã£ã¼ã«ãã¯ãã¹ãã®ãã¤ãé  (host byte-order) ã§æ ¼ç´ããã¾ãã
               ãã®ãã£ã¼ã«ãã¯ããã¤ãã®ãµãã³ã³ãã¼ãã³ããæã£ã¦ãããããã㯠以ä¸ã®ãã¯ã
               N_GETFLAG(), N_GETMID(), N_GETMAGIC() ã§åç§ããããã¯ã N_SETMAGIC()
               ã§è¨å®ããã¾ãã

               ãã¯ã N_GETFLAG() ã¯ä»¥ä¸ã®ãã©ã°ãè¿ãã¾ã:

               EX_DYNAMIC  ãã®å®è¡å¯è½ãã¡ã¤ã«ãã©ã³ã¿ã¤ã ãªã³ã¯ã¨ãã£ã¿ã®ãµã¼ãã¹ãè¦æ±ãããã¨ã
                           示ãã¾ãã

               EX_PIC      ãã®ãªãã¸ã§ã¯ããã¡ã¤ã«ãä½ç½®ç¬ç« (position
                           independent) ãªã³ã¼ãã å«ãã§ãããã¨ã示ãã¾ãã
                           ãã®ãã©ã°ã¯ ‘-k’ ãã©ã°æå®æã« as(1) ã«ãã£ã¦è¨‐
                           å®ãããå¿è¦ãªã ld(1) ã¯ãããä¿åãã¾ãã

               EX_DYNAMIC 㨠EX_PIC ã®ä¸¡æ¹ãã»ããããã¦ããå ´åã
               ãã®ãªãã¸ã§ã¯ããã¡ã¤ã«ã¯ä½ç½®ç¬ç«ãªå®è¡å¯è½ã¤ã¡ã¼ã¸ã§ã (ä¾:
               å±æã©ã¤ãã©ãª)ã ããã¯ã©ã³ã¿ã¤ã ãªã³ã¯ã¨ãã£ã¿ã«ãã£ã¦ãã‐
               ã»ã¹ã®ã¢ãã¬ã¹ç©ºéã«ãã¼ãããã¾ãã

               ãã¯ã N_GETMID() ã¯ãã·ã³èå¥ã³ã¼ã (machine-id) ãè¿ãã¾ãã
               ããã¯ããã¤ããªãã¡ã¤ã«ãå®è¡ãããã¹ããã·ã³ã示ãã¦ãã¾ãã

               N_GETMAGIC() ã¯ãã¸ãã¯ãã³ãã示ãã¾ãã
               ãã¸ãã¯ãã³ãã¯ãã¤ããªãã¡ã¤ã«ç¨®å¥ãä¸æã«èå¥ãã æ§ããªã‐
               ã¼ãæ¹æ³ãåºå¥ãã¾ãã ãã®ãã£ã¼ã«ãã¯ä»¥ä¸ã®å¤ã®ãããã 1
               ã¤ãå«ãã§ããªããã°ãªãã¾ãã:

               OMAGIC  ããã¹ãã»ã°ã¡ã³ãã¨ãã¼ã¿ã»ã°ã¡ã³ãã¯ãããã®ç´å¾ã«ããã
                       é£ç¶ãã¦ãã¾ãã ã«ã¼ãã«ã¯ãã‐
                       ã¹ã/ãã¼ã¿ã»ã°ã¡ã³ãã®ä¸¡æ¹ãæ¸ãè¾¼ã¿å¯è½ã¡ã¢ãªé åã« ã‐
                       ã¼ããã¾ãã

               NMAGIC  OMAGIC ã¨åæ§ããã‐
                       ã¹ã/ãã¼ã¿ã»ã°ã¡ã³ãã¯ãããã®ç´å¾ã«ãããé£ç¶ãã¦ãã¾ãã
                       ããããã«ã¼ãã«ã¯ããã¹ãã»ã°ã¡ã³ããèªã¿è¾¼ã¿å°ç¨ã¡ã¢ãªé åã«ã‐
                       ã¼ããã ããã¹ãã«ç¶ããã¼ã¸å¢çããå§ã¾ã
                       æ¸ãè¾¼ã¿å¯è½ã¡ã¢ãªé åã«ãã¼ã¿ã»ã°ã¡ã³ãããã¼ããã¾ãã

               ZMAGIC  ã«ã¼ãã«ã¯åãã®ãã¼ã¸ãå¿è¦ã«å¿ãã¦ãã¤ããªãããã¼ããã¾ãã ãããããã‐
                       ã¹ãã»ã°ã¡ã³ãåã³ãã¼ã¿ã»ã°ã¡ã³ãã¯ããããã
                       ãã¼ã¸ãµã¤ãºã®åæ°ã®å¤§ããã«ãªãããã
                       ãªã³ã¯ã¨ãã£ã¿ã«ãã£ã¦ããã£ã³ã°ããã¾ãã ã«ã¼ãã«ããã‐
                       ã¹ãã»ã°ã¡ã³ããããã¼ããããã¼ã¸ã¯èªã¿è¾¼ã¿å°ç¨ã§ããã
                       ãã¼ã¿ã»ã°ã¡ã³ããããã¼ããããã¼ã¸ã¯æ¸ãè¾¼ã¿å¯è½ã§ãã

     a_text    ããã¹ãã»ã°ã¡ã³ãã®ãµã¤ãº (ãã¤ãåä½) ãä¿æãã¾ãã

     a_data    ãã¼ã¿ã»ã°ã¡ã³ãã®ãµã¤ãº (ãã¤ãåä½) ãä¿æãã¾ãã

     a_bss     ‘bss ã»ã°ã¡ã³ã’ ã®ãã¤ãæ°ãä¿æãã¾ãã ãã®å¤ã¯ã«ã¼ãã«ãæåã® break å¤
               (brk(2)) ããã¼ã¿ã»ã°ã¡ã³ãã®å¾ãã«è¨å®ããã®ã«ç¨ãããã¾ãã
               ã«ã¼ãã«ã¯ãããã«ç¤ºããããµã¤ãºã®æ¸ãè¾¼ã¿å¯è½ã¡ã¢ãªé åã
               ãã¼ã¿ã»ã°ã¡ã³ãã®å¾ãã«ç¨æããããããã®åæç¶æã 0 ã«ãªãããã«ã ããã°ã©ã ãã‐
               ã¼ããã¾ãã (bss = block started by symbol:ã·ã³ãã«ã§éå§ãããããã¯)

     a_syms    ã·ã³ãã«ãã¼ãã«ã»ã¯ã·ã§ã³ã®ãµã¤ãº (ãã¤ãåä½) ãä¿æãã¾ãã

     a_entry   ã«ã¼ãã«ããã¤ããªãã¡ã¤ã«ããã¼ãããå¾ã®ã ãã‐
               ã°ã©ã ã®ã¨ã³ããªãã¤ã³ãã®ã¡ã¢ãªã¢ãã¬ã¹ãä¿æãã¾ãã
               ã«ã¼ãã«ã¯ããã®ã¢ãã¬ã¹ã«ããæ©æ¢°å½ä»¤ããããã°ã©ã ã®å®è¡ãéå§ãã¾ãã

     a_trsize  ããã¹ããªãã±ã¼ã·ã§ã³ãã¼ãã«ã®ãµã¤ãº (ãã¤ãåä½) ãä¿æãã¾ãã

     a_drsize  ãã¼ã¿ãªãã±ã¼ã·ã§ã³ãã¼ãã«ã®ãµã¤ãº (ãã¤ãåä½) ãä¿æãã¾ãã

     ã¤ã³ã¯ã«ã¼ããã¡ã¤ã« <a.out.h> ã§ã¯ã exec
     æ§é ä½ãç¨ãã¦ä¸è²«æ§ããã¹ãããããã¤ããªãã¡ã¤ã«ä¸ã®ã»ã¯ã·ã§ã³ãªãã»ããã
     ç¥ãããã®ãã¯ããå®ç¾©ããã¦ãã¾ãã

     N_BADMAG(exec)  a_magic ãã£ã¼ã«ãã«ãèªèã§ããªãå¤ãå«ã¾ãã¦ããå ´åãé 0 ãè¿ãã¾ãã

     N_TXTOFF(exec)  ãã¤ããªãã¡ã¤ã«ã«ããããã‐
                     ã¹ãã»ã°ã¡ã³ãã®åé ã®ãã¤ããªãã»ãããè¿ãã¾ãã

     N_SYMOFF(exec)  ã·ã³ãã«ãã¼ãã«ã®åé ã®ãã¤ããªãã»ãããè¿ãã¾ãã

     N_STROFF(exec)  æååãã¼ãã«ã®åé ã®ãã¤ããªãã»ãããè¿ãã¾ãã

     ãªãã±ã¼ã·ã§ã³ã¬ã³ã¼ãã¯ã relocation_info æ§é ä½ã§è¦å®ãããæ¨æºãã©ã¼ãããã§ã:

           struct relocation_info {
                   int             r_address;
                   unsigned int    r_symbolnum : 24,
                                   r_pcrel : 1,
                                   r_length : 2,
                                   r_extern : 1,
                                   r_baserel : 1,
                                   r_jmptable : 1,
                                   r_relative : 1,
                                   r_copy : 1;
           };

     relocation_info æ§é ä½ã®åãã£ã¼ã«ãã¯ä»¥ä¸ã®ããã«ç¨ãããã¾ã:

     r_address    ãªã³ã¯ã¨ãã£ãããå¿è¦ãªãã¤ã³ã¿ã®ãã¤ããªãã»ãããä¿æãã¾ãã ããã¹ããªã‐
                  ã±ã¼ã·ã§ã³ãªãã»ããã¯ããã¹ãã»ã°ã¡ã³ãã®åé ããã ãã¼ã¿ãªã‐
                  ã±ã¼ã·ã§ã³ãªãã»ããã¯ãã¼ã¿ã»ã°ã¡ã³ãã®åé ããã ããããè¨ç®ãã¾ãã
                  ãªã³ã¯ã¨ãã£ã¿ã¯ãã®ãªãã»ããã«ã¹ãã¢ããã¦ããå¤ãå ç®ãã ãã®ãªã‐
                  ã±ã¼ã·ã§ã³ã¬ã³ã¼ããç¨ãã¦è¨ç®ããæ°ããå¤ã«å¤æãã¾ãã

     r_symbolnum  ã·ã³ãã«ãã¼ãã«ã«ãããã·ã³ãã«æ§é ä½ã®é åºçªå· ( ãã¤ããªãã»ãã
                  ã§ã¯ããã¾ãã ) ãä¿æãã¾ãã
                  ãªã³ã¯ã¨ãã£ã¿ã¯ãã®ã·ã³ãã«ã®çµ¶å¯¾ã¢ãã¬ã¹ã解決ããå¾ã
                  ãã®ã¢ãã¬ã¹ããªãã±ã¼ã·ã§ã³ä¸ã®ãã¤ã³ã¿ã«å ç®ãã¾ãã (ãã r_extern
                  ããããç«ã£ã¦ããªããã°ç¶æ³ã¯ç°ãªãã¾ãã以ä¸ãåç§ãã¦ä¸ããã)

     r_pcrel      ãããã®ããããç«ã£ã¦ããã°ã ãªã³ã¯ã¨ãã£ã¿ã¯ãPC
                  ç¸å¯¾ã¢ãã¬ãã·ã³ã°ãç¨ããæ©æ¢°èªå½ä»¤ã®ä¸é¨ã§ãã
                  ãã¤ã³ã¿ãæ´æ°ãã¦ãããã®ã¨ä»®å®ãã¾ãã ãªã‐
                  ã±ã¼ãããããã¤ã³ã¿ã®ã¢ãã¬ã¹ã¯ãå®è¡ä¸ã®ããã°ã©ã ããããç¨ããéã«ã
                  æé»çã«ãã®å¤ã«å ç®ããã¾ãã

     r_length     ãã¤ã³ã¿ã®é·ãã 2 ãåºã¨ãã対æ°ã§è¡¨ãããã¤ãåä½ã§ä¿æãã¾ãã 1
                  ãã¤ããã£ã¹ãã¬ã¼ã¹ã¡ã³ããªã 0ã 2 ãã¤ããã£ã¹ãã¬ã¼ã¹ã¡ã³ããªã 1ã 4
                  ãã¤ããã£ã¹ãã¬ã¼ã¹ã¡ã³ããªã 2 ã¨ãªãã¾ãã

     r_extern     ãã®ãªãã±ã¼ã·ã§ã³ãå¤é¨åç§ãå¿è¦ã¨ãã¦ããå ´åã«ã»ããããã¾ãã
                  ãªã³ã¯ã¨ãã£ã¿ã¯ãã·ã³ãã«ã¢ãã¬ã¹ãç¨ãã¦ãã®ãã¤ã³ã¿ã
                  æ´æ°ããªããã°ãªãã¾ããã r_extern ããããç«ã£ã¦ããªãå ´åããã®ãªã‐
                  ã±ã¼ã·ã§ã³ã¯ ‘ãã¼ã«ã«’ ã§ãã
                  ãªã³ã¯ã¨ãã£ã¿ã¯ãã·ã³ãã«å¤ã®å¤åã§ã¯ãªãã åã»ã°ã¡ã³ãã®ã‐
                  ã¼ãã¢ãã¬ã¹ã®å¤åã«å¿ãã¦ãã¤ã³ã¿ãæ´æ°ãã¾ã (ãã ãã r_baserel
                  ãã»ããããã¦ããå ´å(å¾è¿°)ã¯é¤ãã¾ã)ã ãã®å ´åã r_symbolnum
                  ãã£ã¼ã«ãã®å容㯠n_type ã®å¤ã¨ãªãã¾ã(å¾è¿°)ã
                  ãªã³ã¯ã¨ãã£ã¿ã¯ããã®åãã£ã¼ã«ãããã ãªã‐
                  ã±ã¼ãããããã¤ã³ã¿ãã©ã®ã»ã°ã¡ã³ããæãã¦ããã®ãã®æå ±ãå¾ã¾ãã

     r_baserel    ã»ããããã¦ããå ´åã r_symbolnum ãã£ã¼ã«ãã§æå®ãããå ´åã®ããã«ã
                  ãã®ã·ã³ãã«ã¯ã°ãã¼ãã«ãªãã»ãããã¼ãã«ã¸ã®ãªãã»ããã« ãªã‐
                  ã±ã¼ãããã¾ãã å®è¡æã«ãã°ãã¼ãã«ãªãã»ãããã¼ãã«ä¸‐
                  ã®ããã®ãªãã»ããä½ç½®ã«ãã
                  ã¨ã³ããªããã·ã³ãã«ã®ã¢ãã¬ã¹ãæã¤ããã«ã»ããããã¾ãã

     r_jmptable   ã»ããããã¦ããå ´åã r_symbolnum ãã£ã¼ã«ãã§æå®ãããå ´åã®ããã«ã
                  ãã®ã·ã³ãã«ã¯ããã·ã¼ã¸ã£ãªã³ã±ã¼ã¸ãã¼ãã«ã¸ã®ãªãã»ããã« ãªã‐
                  ã±ã¼ãããã¾ãã

     r_relative   ã»ããããã¦ããå ´åã ãã®ãªã‐
                  ã±ã¼ã·ã§ã³ã¯ããã®ãªãã¸ã§ã¯ããã¡ã¤ã«ãå«ã¾ãã ã¤ã¡ã¼ã¸ã®
                  (å®è¡æã®) ãã¼ãã¢ãã¬ã¹ã¨ã®ç¸å¯¾å¤ã¨ãªãã¾ãã ãã®ç¨®ã®ãªã‐
                  ã±ã¼ã·ã§ã³ã¯å±æãªãã¸ã§ã¯ãã«ã®ã¿ç¾ãã¾ãã

     r_copy       ã»ããããã¦ããå ´åã ãã®ãªãã±ã¼ã·ã§ã³ã¬ã³ã¼ãã¯ã ãã®å容ã
                  r_address ã§æå®ãããä½ç½®ã«ã³ãã¼ããªããã°ãªããªãã·ã³ãã«ã示ãã¾ãã
                  ã³ãã¼å¦çã¯ãå®è¡æã®ãªã³ã¯ã¨ãã£ã¿ã«ãã£ã¦ã å±æãªãã¸ã§ã¯ãä¸‐
                  ã®é©åãªãã¼ã¿ã¢ã¤ãã ããè¡ããã¾ãã

     ã·ã³ãã«ã¯ååã¨ã¢ãã¬ã¹ã対å¿ã¥ãã¾ã (ããä¸è¬çã«ã¯ã æååãå¤ã¸å¯¾å¿ã¥ãã¾ã)ã
     ãªã³ã¯ã¨ãã£ã¿ãã¢ãã¬ã¹ã調ç¯ããããã
     絶対å¤ãå²ãå½ã¦ãããã¾ã§ã¯ã·ã³ãã«ãç¨ãã¦ã¢ãã¬ã¹ã表ç¾ããªããã° ãªãã¾ããã
     ã·ã³ãã«ã¯ãã·ã³ãã«ãã¼ãã«ä¸ã®åºå®é·ã®ã¬ã³ã¼ãã¨ã æååãã¼ãã«ä¸‐
     ã®å¯å¤é·ã®ååããæãã¾ãã ã·ã³ãã«ãã¼ãã«ã¯ nlist æ§é ä½ã®éåã§ã:

           struct nlist {
                   union {
                           char    *n_name;
                           long    n_strx;
                   } n_un;
                   unsigned char   n_type;
                   char            n_other;
                   short           n_desc;
                   unsigned long   n_value;
           };

     ãããã®ãã£ã¼ã«ãã¯ä»¥ä¸ã®ããã«ç¨ãããã¾ã:

     n_un.n_strx  ãã®ã·ã³ãã«ã®ååã®ãæååãã¼ãã«ã§ã®ãã¤ããªãã»ãããä¿æãã¾ãã ããã°ã©ã ã
                  nlist(3) é¢æ°ãç¨ãã¦ã·ã³ãã«ãã¼ãã«ãã¢ã¯ã»ã¹ããå ´åã
                  ãã®ãã£ã¼ã«ãã¯ã ã¡ã¢ãªä¸ã®æååã¸ã®ãã¤ã³ã¿ã§ãã n_un.n_name
                  ãã£ã¼ã«ãã«ç½®ãæãããã¾ãã

     n_type       ãªã³ã¯ã¨ãã£ã¿ãã·ã³ãã«å¤ã®æ´æ°æ¹æ³ã決å®ããã®ã«ç¨ãããã¾ãã
                  n_type ãã£ã¼ã«ãã¯ãããããã¹ã¯ãç¨ãã 3 ã¤ã®ãµããã£ã¼ã«ãã«åãããã¾ãã
                  ãªã³ã¯ã¨ãã£ã¿ã¯ N_EXT ããããã»ããããã¦ããã·ã³ãã«ã ‘external’
                  ã·ã³ãã«ã¨ãã¦æ±ããä»ã®ãã¤ããªãã¡ã¤ã«ããã®åç§ã許å¯ãã¾ãã N_TYPE
                  ãã¹ã¯ã¯ãªã³ã¯ã¨ãã£ã¿ã«å¿è¦ãªããããé¸æãã¾ã:

                  N_UNDF  æªå®ç¾©ã·ã³ãã«ã ãªã³ã¯ã¨ãã£ã¿ã¯ãä»ã®ãã¤ããªãã¡ã¤ã«ä¸‐
                          ã®åãååã®å¤é¨ã·ã³ãã«ãæ¢ãã¦
                          ãã®ã·ã³ãã«ã®çµ¶å¯¾å¤ã決å®ããªããã°ãªãã¾ããã
                          ç¹å¥ãªå ´åã¨ãã¦ããã n_value ãã£ã¼ã«ããé 0
                          ã§ããªã³ã¯ã¨ãã£ãã対象ã®ã©ã®ãã¤ããªãã¡ã¤ã«ã
                          ãã®ã·ã³ãã«ãå®ç¾©ãã¦ããªãå ´åã
                          ãªã³ã¯ã¨ãã£ã¿ã¯ãã®ã·ã³ãã«ã bss ã»ã°ã¡ã³ãä¸‐
                          ã®ã¢ãã¬ã¹ã§ããã¨ã¿ãªãã n_value ã«ç‐
                          ãããã¤ãæ°ã®é åãäºç´ãã¾ãã
                          ãããã®ã·ã³ãã«ãè¤æ°ã®ãã¤ããªãã¡ã¤ã«ä¸‐
                          ã§æªå®ç¾©ã¨ãªã£ã¦ããã
                          ãããã®ãã¤ããªãã¡ã¤ã«éã§ãµã¤ãºãç°ãªã£ã¦ããå ´åã
                          ãªã³ã¯ã¨ãã£ã¿ã¯ãããã®ãµã¤ãºã®æ大å¤ãé¸ã³ã¾ãã

                  N_ABS   絶対ã·ã³ãã«ã
                          ãªã³ã¯ã¨ãã£ã¿ã¯çµ¶å¯¾ã·ã³ãã«ã¯æ´æ°ãã¾ããã

                  N_TEXT  ããã¹ãã·ã³ãã«ã ãã®ã·ã³ãã«ã®å¤ã¯ããã¹ãã¢ãã¬ã¹ã§ããã
                          ãªã³ã¯ã¨ãã£ã¿ã¯ãã¤ããªãã¡ã¤ã«ããã¼ã¸ããéããã®å¤ãæ´æ°ãã¾ãã

                  N_DATA  ãã¼ã¿ã·ã³ãã«ã N_TEXT ã¨åæ§ã§ããããã¼ã¿ã¢ãã¬ã¹ã表ãã¾ãã
                          ããã¹ãã·ã³ãã«åã³ãã¼ã¿ã·ã³ãã«ã®å¤ã¯ã
                          ãã¡ã¤ã«ãªãã»ããã§ã¯ãªãã¢ãã¬ã¹ã§ãã
                          ãã¡ã¤ã«ãªãã»ããã復åããããã«ã
                          対å¿ããã»ã¯ã·ã§ã³ã®åé ã®ãã¼ãã¢ãã¬ã¹ãè¦ã¤ãã¦ãããæ¸ãã
                          次ã«ãã®ã»ã¯ã·ã§ã³ã®ãªãã»ãããå ç®ããå¿è¦ãããã¾ãã

                  N_BSS   bss ã·ã³ãã«ãããã¹ãã·ã³ãã«ããã¼ã¿ã·ã³ãã«ã¨ä¼¼ã¦ãã¾ããã
                          ãã¤ããªãã¡ã¤ã«ä¸ã«å¯¾å¿ãããªãã»ãããæã¡ã¾ããã

                  N_FN    ãã¡ã¤ã«åã·ã³ãã«ã ãã¤ããªãã¡ã¤ã«ããã¼ã¸ããéã
                          ãªã³ã¯ã¨ãã£ã¿ã¯ãã¤ããªãã¡ã¤ã«ã®ä»ã®ã·ã³ãã«ã®åã«ãã®ã·ã³ãã«ã
                          æ¿å¥ãã¾ãã
                          ãã®ã·ã³ãã«ã®ååã¯ãªã³ã¯ã¨ãã£ã¿ã«ä¸ãããããã¡ã¤ã«åã§ã
                          ã·ã³ãã«ã®å¤ã¯ãã¤ããªãã¡ã¤ã«ããå¾ãåé ããã¹ãã¢ãã¬ã¹ã§ãã
                          ãã¡ã¤ã«åã·ã³ãã«ã¯ãªã³ã¯ã¨ãã£ãå¦çãã‐
                          ã¼ãå¦çã«ã¯ä¸è¦ã§ããã ãããã¬ã«ã¯æç¨ãªæå ±ã§ãã

                  N_STAB ãã¹ã¯ã¯ gdb(1) çã®ã·ã³ããªãã¯ãããã¬ã«å¿è¦ãªããããé¸æãã¾ãã
                  ãã®å¤ã¯ stab(5) ã«ç¤ºããã¦ãã¾ãã

     n_other      ãã®ãã£ã¼ã«ãã¯ã n_type ãã£ã¼ã«ãã§æ±ºå®ãããã»ã°ã¡ã³ãã«é¢ãã¦ã
                  ãã®ã·ã³ãã«ã®ãã±ã¼ã·ã§ã³ã¨ã¯ç¬ç«ãã
                  ã·ã³ãã«ã®ç¹è³ªã«é¢ããæå ±ãæä¾ãã¾ãã ç¾å¨ã®ã¨ããã n_other
                  ãã£ã¼ã«ãã®ä¸ä½ 4 ããã㯠AUX_FUNC ããã㯠AUX_OBJECT
                  ã®ãããããã¨ãã¾ã (ãããã®å®ç¾©ã«ã¤ãã¦ã¯ <link.h> ãåç§ãã¦ãã ãã)ã
                  AUX_FUNC ã¯ã·ã³ãã«ã¨å¼ã³åºãå¯è½ãªé¢æ°ãé¢é£ã¥ããä»æ¹ã
                  AUX_OBJECT ã¯ã·ã³ãã«ã¨ãã¼ã¿ãé¢é£ã¥ãã¾ãã ãããã®é¢é£ã¯ãã‐
                  ã¹ãã»ã°ã¡ã³ã/ãã¼ã¿ã»ã°ã¡ã³ãã®å¥ã¨ã¯ç¡é¢ä¿ã§ãã ãã®ãã£ã¼ã«ãã¯ã
                  ld(1) ãåçãªå®è¡å¯è½å½¢å¼ãæ§ç¯ããããã«ä½¿ããã¨ãæå³ãã¦ãã¾ãã

     n_desc       ãããã¬ç¨ã«äºç´ããã¦ããããªã³ã¯ã¨ãã£ã¿ã¯ãã®ãã£ã¼ã«ããå¨ãå¤æ´ãã¾ããã
                  ãããã¬ã«ãã£ã¦ç°ãªã£ãç®çã«ä½¿ããã¾ãã

     n_value      ã·ã³ãã«ã®å¤ãä¿æãã¾ãã ããã¹ã, ãã¼ã¿ããã³ bss
                  ã·ã³ãã«ã®å ´åããã®å¤ã¯ã¢ãã¬ã¹ã§ãã ä»ã®ã·ã³ãã«
                  (ä¾ãã°ãããã¬ã·ã³ãã«ç) ã®å ´åããã®å¤ã¯æ§ãã§ãã

     æååãã¼ãã«ã¯ unsigned long åã®é·ãã¨ãããã«ç¶ããã«çµç«¯ã®ã·ã³ãã«æååããæãã¾ãã
     ãã®é·ãã¯ããã¼ãã«å¨ä½ã®ãµã¤ãºããã¤ãåä½ã§è¡¨ãã¾ãã ã¤ã¾ãããã®æå°å¤
     (è¨ãæ¿ããã°ãæåã®æååã®ãªãã»ãã) ã¯ã 32 ããããã·ã³ã§ã¯å¸¸ã« 4 ã¨ãªãã¾ãã

é¢é£é ç®
     as(1), gdb(1), ld(1), brk(2), execve(2), nlist(3), core(5), elf(5),
     link(5), stab(5)

æ´å²
     ã¤ã³ã¯ã«ã¼ããã¡ã¤ã« <a.out.h> 㯠Version 7 AT&T UNIX ã§ç»å ´ãã¾ããã

ãã°
     å¿ãããå¨ã¦ã®ãµãã¼ã対象ã¢ã¼ããã¯ãã£ã a_midmag ãã£ã¼ã«ããç¨ããããã§ã¯ãªãã®ã§ã
     ãããã¤ããªãã©ã®ãããªã¢ã¼ããã¯ãã£ä¸ã§å®è¡ãããã®ãã¯ã
     å®éã®ãã·ã³ã³ã¼ãã調ã¹ãªãéãå¤å®å°é£ãªå¯è½æ§ãããã¾ãã ãã·ã³ ID ããã£ãã¨ãã¦ãã
     exec ãããã®ãã¤ãé ã¯ãã·ã³ä¾åã§ãã