           H O W T O    V 0 . 3 C

   : Francois-Rene Rideau rideau@ens.fr <mailto:rideau@ens.fr>
     : 1996.6.15 0.3C
   : ѵ      ddoch@hitel.kol.co.kr
  <mailto:ddoch@hitel.kol.co.kr>
   : 1996.9.27

  ( :     Ƿ ʿ伺 Ͽ
    ߸  ǹ̿ ̻ κ   
  ̸ ˸ϴ.   ߸   å  , 
  ؾ   ִٸ   ֽñ ٶ,  
  ڿ ֽñ ٶϴ.)   HOWTO aka *Free* 32-bit
  x86  FAQ aka Linux x86  HOWTO ==  α׷ 
  ϴ x86  Ͽ == ˻ :assembly, assembler, free,
  macroprocessor, preprocessor, asm, inline asm, 32-bit, x86, i386, gas,
  as86, nasm Copyright (C) 1996 Francois-Rene Rideau.  е 
    ʴ     ,  ּ
  ص .  е ٸ 쿡  ̹  
  Ӱ    ִ.   ȭ ȹ ڵ  
  Ӱ  ̸, ٸ LDP 鵵  ٷ   ̴.
  ߿ :    Ÿ ̴. е鿡Դ 
    Ǹ  ־.  ϱ,  ϱ, ־ 亯
  ٷ ϱ, ο FAQ 亯鿡 ߰ϱ, ٸ Ʈ Ͻø
  ֱ,  () ϱ, ׸ FAQ  ϱ,
  ֳϸ  ٸ  ϰ ֱ ̴...  ٸ , 
   ޶.( : rideau@ens.fr <mailto:rideau@ens.fr>) Ƹ
  츮 Raymond Moon  comp.lang.asm.x86 ִ  FAQ ̺κ
  ´  ų   ̴.
  ______________________________________________________________________

  

  1. 
     1.1   Ȱϴ 
     1.2 ٸ  

  2. 
     2.1 GCC ζ 
        2.1.1 GCC ִ 
        2.1.2 GCC ζ  DOC ϴ 
        2.1.3  GCC ȿ Ȯ  ڵ带 ҷ°?
     2.2 GAS
        2.2.1  ã  ִ°
        2.2.2 AT&T   ϴ°
        2.2.3 2.2.3 ѵ 16Ʈ 
     2.3 2.3 GASP
        2.3.1 2.3.1 GASP  ã ΰ
        2.3.2 2.3.2 GASP   ϴ°
     2.4 2.4 AS86
        2.4.1 2.4.1 AS86    ִ°
        2.4.2 doc  ã  ִ°
        2.4.3   ҷ° ?
        2.4.4  ο    Ҽ ٸ  ؾ ϴ°?
     2.5 ٸ 
        2.5.1 Win32Forth 
        2.5.2 NASM
        2.5.3 Tunes
        2.5.4  ƴϰų 32Ʈ ƴ x86 

  3. META α׷/ ũ ó
     3.1  յ ̶  ϴ°
        3.1.1 GCC
        3.1.2 GAS
        3.1.3 GASP
        3.1.4 AS86
        3.1.5 ٸ 
        3.1.6 ܺ 
        3.1.7 CPP
        3.1.8 M4
        3.1.9 ͸  ũ ó
        3.1.10 Ÿ α׷

  4.  θ
     4.1 4.1 Linux
        4.1.1 GCC ũϱ
        4.1.2 ELF vs a.out 
        4.1.3   ý 
     4.2 
     4.3 е OS
        4.3.1 Ʈ δ ڵ 32Ʈ  
        4.3.2 ؼ 
        4.3.3 ͷƮ ٷ
        4.3.4 16Ʈ ý 񽺸 ϴ V86/R86 
        4.3.5 ̰͵鿡     ΰ

  5. ؾ 

  ______________________________________________________________________

  1.  

     ü    32Ʈ x86
   α׷̳ α׷鿡  ϴ 鿡 亯ϱ
     Ǿ.  װ   ƴ, x86 ƴ, 32Ʈ
   ƴ ׷ ͵鿡     ִ.  ֳϸ
   α׷ֿ ַ ִ оߴ ü, , , C
  Ϸ ǥ  ϱ  κе Ǵ ̴.  츮
  ׷ Ʈ  ǥ ϰ ִ.

  1.1.    Ȱϴ 

     ϴ ͵鿡  亯 ϰ ִ.  ,
  Ʈ  Ʈ URL ־.    Ʈ ̷
  Ǿ,  ̷ Ʈ  ̿   ٸ, е
  Ʊ ڽ ð  ʰ, ʿ     ̴.
  Ư 쿡, αƮ ̷ϴ 迡  ū Ʈ ִ.
   ̷Ʈ Ϸ   ְ Ǵ, α ޼
  Ÿ.   ޾Ƶ鿩.  ׹ۿ, е ã ϴ 
  archie ̿ν ذ   ̴.   ֱ 
  ִ   .

  http://www.eleves.ens.fr:8080/home/rideau/Assembly

  ׷  Ͽ Ʈ   Ʈ ȴ.  𸣴
  ̿..  sunsite.unc.edu/pub/linux/docs/HOWTO/
  <ftp://sunsite.unc.edu/pub/linux/docs/HOWTO/> (?)

  1.2.  ٸ  

  *  е  Ʈ   𸥴ٸ GNU 
  ̼   о  ٶ. װ   Ʈ
  κ   Ǿ  ִ:  "COPYING"̶
  ̸  , ̺귯̶ "COPYING.LIB" 
  ̸ Ǿ  ̴.  FSF(free software foundation) 尡
     ̴.  * Ưϰ, ִ  Ʈ
  κ ҽ ϰ ִ , е ̰ ϰų,
  ϰų, δ ׳ ״ ؼ   ִ. е鿡
  ־ ̼ Ǳ а ױ⿡   .  * x86
   α׷ֿ  Ϲ    
  (16Ʈ ȯ..)    亯  ִ comp.lang.
  asm.x86  FAQ ִ.  ߿   32Ʈ 
  α׷ֿ  Ǵ ,    FAQ   
  ִ.  www2.dgsys.com/~raymoon/faq/asmfaq.zip
  <http://www2.dgsys.com/~raymoon/faq/asmfaq.zip> * FAQ doc 
  е ÷ α׷ֿ õ ͵ ִ. ׸ ÷
   ͵  α׷ֿ ٷ    ʴ ٴ
   Ͽ Ѵ.

  2.  

  2.1.  GCC ζ 

   ˷ ٿ , GNU Ʈ ߿ ġ ϰ ִ
  ȭ 32Ʈ Ϸ GNU C/C++ Ϸ (GCC) x86
  Űĸϰ  Ѵ. ׸ C α׷ȿ  ڵ带
    ִ ɷ Ѵ.  GCC  κ  ÷
  Ѵ.  ߿ Linux, *BSD, VSTa, OS/2, *DOS, Win*, ..

  2.1.1.  GCC ִ 

  GCC Ʈ prep.ai.mit.edu/pub/gnu/
  <ftp://prep.ai.mit.edu/pub/gnu/>  ٸ GNU ȹ  ø̼
  Ʈ  ǥȴ.  ׸,   ̷ Ʈ
  ϰ ִ.  е  OS µ  ҽ ̸
  ϵ ̳ʸ  FTP Ʈִ.  inux  GCC
  Ѵٸ Ʒ .  www.linux.org.uk/
  <http://www.linux.org.uk/>  α ִ  GCC DJGPP̴.
   Ʈ 丮 ߰  ִ: www.delorie.com/djgpp/
  <http://www.delorie.com/djgpp/> OS/2   ۵ϴ GCC
   EMX Ҹ; www.leo.org/pub/comp/os/os2/gnu/emx+gcc/
  <http://www.leo.org/pub/comp/os/os2/gnu/emx+gcc/>
  warp.eecs.berkeley.edu/os2/software/shareware/emx.html
  <http://warp.eecs.berkeley.edu/os2/software/shareware/emx.html>
  2.1.2.  GCC ζ  DOC ϴ 

  GCC  texinfo  ϵ Ѵ.  װ
  ؽ  ȯ  ְ, ؽ  Ҽ , Ʈ ϴ,
  ̸ .info ̳ , Ÿ е ϴ 
  ȯ  ִ.  .info  GCC  ġ  ִ 
  .   κ  : C Ȯ::Ȯ Asm:: κ GCC
  ҷ:: ɼ::i386 ɼ:: ̷ ͵   ̴.
  ϰ , װ i386 ͸   Ư  ̸
  Ѵ: abcdSDB  %eax, %ebx, %ecx, %edx,%esi, %edi, %ebp  ϳ
  ġѴ.  (%esp ڰ Ǿ  ʴ.)  HTML  ȯ
  ̷  κе URL  .
  www.cygnus.com/doc/usegcc_89.html
  <http://www.cygnus.com/doc/usegcc_89.html>#SEC92 DJGPP Ӹҽ
  ( Ŀ鿡 Ӹ ƴ϶) Ưϰ   ̷
    ִ: www.rt66.com/~brennan/djgpp/djgpp_asm.html
  <http://www.rt66.com/~brennan/djgpp/djgpp_asm.html> , ̷
   "DJGPP Quick ASM Programming Guide"  Ҹ FAQ
  AT&T x86  ,  ζ  , .obj/.lib
  ϵ ȯϴ ͵鿡  ͵  ִ.
  remus.rutgers.edu/~avly/djasm.html
  <http://remus.rutgers.edu/~avly/djasm.html>

  GCC   GAS ϰ Ʒ  ; ζ
   ο ۼƮ ڸ ʿ Ѵ.  ׷ װ͵ GAS
  Է ǳ.  Ʒ GAS  κ .    
   linux/include/asm-i386/ ҽ 丮  ãƺ.

  2.1.3.   GCC ȿ Ȯ  ڵ带 ҷ°?

  ȭ ζ  ϰ ϱ ؼ GCC  "-O" ÷׿
   ҷ.  ׷  ʴ ٸ, ڵ ϵǱ ϳ,
  Ȯ    ̴.    Ϲ, x86 ÷ 
   ÷״

           gcc -O2 -fomit-frame-pointer -m386

    ̴.  -O2   ȭ ̴. ȭ Ͽ
  Ϸ ڵ带 ũ .  ׷ װ  bit faster
  ̴; ׷  ȭ  ŸƮϰ   
    ִ. е Ե  Ѵٸ ̴.
  װ ʿϴٸ ʿ ŭ ƾ鿡 ϶.  -fomit-frame-
  pointer  stupid frame pointer maintenance ǳʶٰ ڵ带
  Ű, ڵ带  ۰  ,  ̻ ȭ ؼ
  ͸ Ӱ Ѵ.  ̰  (gdb) ϱ ư
   ϳ, ̻  ӵ   ų   ̴.  -m386
    ӵ Ͼ   Ʈ ڵ带  .  ( 
  ڵ  ũ   ϰ   Ѵٴ 
  .)  ׷ Ƹ   ŸƮ 󿡼  ̴.
   ȭ Ϸ, -mregparm=2 ɼ̳ ̿ ϴ Լ 
   ̴. ׷ ܺ ڵ ŷ Ҷ  
  е   ̴.  е ̷ ÷׵
  ⺻

           /usr/lib/gcc-lib/i486-linux/2.7.2/specs

   ߰  ִ. (  ýۿ   Ʋ  ִ.)

  2.2.  GAS

  GAS GCC ѽ ̴ GNU ̴.

  2.2.1.   ã  ִ°

  binutils ̸ٿ Ű ӿ GCC ִ   ã  ִ.

  2.2.2.  AT&T   ϴ°

  GAS 32Ʈ н Ϸ ϱ  âȵǾ  ǥ
  AT&T  ̿Ѵ.  AT&T   ͵ ǥ 680x0 
  Ҵ.    "Intel"  ؼ  ʰ,  ʴ.
   ٸ ̴.  е װ غ Ǹ,   
    Ģ   ˰  ̴.  е α׷
  ȯϴ    α׷ Ѵ.  ̰ TASM  AT&T
   ȯϴ ̴.
  ftp.oulu.fi/pub/msdos/programming/convert/ta2asv08.zipgas.doc
  <ftp://ftp.oulu.fi/pub/msdos/programming/convert/ta2asv08.zipgas.doc>
  ̳ as.doc(GAS ã     ̴)  
  Ѵ.   FTP 丮 ִ sunsite.unc.edu/pub/linux/GCC/
  <ftp://sunsite.unc.edu/pub/linux/GCC/>
  sunsite.doc.ic.ac.uk/packages/linux/sunsite.unc-mirror/GCC/
  <ftp://sunsite.doc.ic.ac.uk/packages/linux/sunsite.unc-mirror/GCC/>
  (?)  ٽѹ ̾߱,    ִ; Ʒ
  linux/arch/i386  ϵ : kernel/entry.S, kernel/head.S,
  boot/compressed/head.S, mathemu/*.S

  2.2.3.  2.2.3 ѵ 16Ʈ 

  GAS  32Ʈ ̸ 32Ʈ Ϸ Ѵٴ  ǹѴ.
  GAS   ѵ 16 Ʈ带 ϴµ,  16Ʈ ̸
  , ɾ 32Ʈ ξ ̷ ,  32Ʈ
  CPU 16Ʈ 忡 ư 32Ʈ 带   ִ.  忡
  , װ 16Ʈ   ϳ, 16Ʈ 巹 
   ʴ´.  ̸ ȯϷ "code16" "code32" ڸ
  ϶.  ζ  asm("code16\n") ´ 32Ʈ GCC
  Ͽ !   ư ڵ带  Ѵ.  е
  ʿϴٰ ٸ Ǯ 16Ʈ ν  .

  2.3.  2.3 GASP

  GASP  GAS ó̴.  ̰ GAS ũο   
  ߰Ų.

  2.3.1.  2.3.1 GASP  ã ΰ

   Ȯϰ 𸥴. GNU Ʈ (prep.ai.mit.edu & mirrors)
  ٶ.  Ƹ GAS  binutils Ű   ̴.

  2.3.2.  2.3.2 GASP   ϴ°

   ƹ  , ׷ װ ü texinfo  
  ̴.  ׷ װ Ʈ ؼ , ƴϸ .info ϵ
  ϱ ٶ.  ũ  Ģ  ָ ڴ.

  2.4.  2.4 AS86

  AS86 Bruce Evans' C Ϸ κ 16Ʈ, 32Ʈ  
  ϴ 80x86 ̴.  װ ֱ    
  as  巹 带 ޸Ѵ.

  2.4.1.  2.4.1 AS86    ִ°

   ô뿡 ڶ AS86 HJLu  Ǹ ٷ  Ŀ
      ִ.  Ű bin86( 0.3) Ǿ 
  Linux GCC Ʈ ߰  ִ.  ׷  ⿡ 
  ϸ ϰ ƹ  ʰ ִ.    
  ŷ ̴н Ʈ   ϸ 32Ʈ忡  
  װ ִµ,   ϸ ϱ ؼ .
   ֱ  FreeBSD ǰ  õǾ.   װ
   ߴ.
  ftp.ibp.fr/pub/FreeBSD/packages-2.1/development/bcc-95.3.12.tgz
  <ftp://ftp.ibp.fr/pub/FreeBSD/packages-2.1/development/bcc-95.3.12.tgz>
  ׷      ̴.   ߿ AS86
    GNU a.out  Ѵ. ׷  鵵 ڵ带
   α׷ ũ ų  ְ, Ÿ ٷ  GNU
  binutil Ű      ̴.    
  ͵ Բ ƹ ջ    ִ.  (Ʒ 
  2.4.4 ).  BCC  1995.3.12   Ǽ  32Ʈ
   α׷ ÿ  ׸Ʈ ˰ Ǫ 16Ʈ óν
  ſ ŷӰ   ־.   ġ Tunes Ʈ  
  ǥǾ.  www.eleves.ens.fr:8080/home/rideau/Tunes/
  <http://www.eleves.ens.fr:8080/home/rideau/Tunes/> 
  files/tunes.0.0.0.25.src.tgz ̴.  Ǯ 丮 LLL/i386/ 
  ġ  ٷ  ã  ִ.
  www.eleves.ens.fr:8080/home/rideau/files/as86.bcc.patch.gz
  <http://www.eleves.ens.fr:8080/home/rideau/files/as86.bcc.patch.gz>
  Bruce Evans   ġ ޾Ƶ鿴µ,  ֱ bcc   ġ
   ϰ ִ.   ڸ  ǻ:

  o    Ϸ POSIX_HEADERS_MISSING   ϶.

  o  bcc/as ־ DJGPP  ʴ´ٸ mops.c mcall() Լ
     "far" ̸ ٿ   ٲ Ѵ.  ֳϸ  
     Ϸ "far" ̱ ̴.  bcc/ld 丮κ
     typeconf.obj ũ Ѿ Ѵٴ  ϶.

  o  bcc/ld ־ Ƹ a.out.h ar.h 纻 ʿ ̴.
     DJGPP װ  ִµ, ٸ C Ϸ  쿡 ٸ
     GCC(, , VSTa, )  ¦ ؾ  ̴. ( ^.% )

  o  bcc/ld ־ BSD_A_OUT ũǸ  Ͽ ؾ  ʿ䰡
      ̴. ׸ STADARD_GNU_A_OUT Ǹ writebin.c صΰ
      a.out.h 纻 밡  ̸ Ѵ.

  o  turns  a.out asm/a.out.h  Ǿ ִµ, ̰͵
        ؾ Ѵ. 16Ʈ  asm/a.out.h
     24Ʈ   Ʈ ʵ Ʈ Ϳ ϴ 24Ʈ Ʈʵ带
     Ͽ Ѵ.

  o  cc1 õ  ʾҴµ, ׷  е غ
     ʹٸ cc1     ̴. ׷, Ƹ bcc
     frontend ٽ  ϰų ٷ cc1 ؾ Ұ̴.ֳϸ
     װ   cc1, as, ld ۵ų  fork()/exec()/wait()
     Ʈ ϱ ̴.

  o  ó   ߰  ִ.
     www.eleves.ens.fr:8080/home/rideau/files/asld86.zip
     <http://www.eleves.ens.fr:8080/home/rideau/files/asld86.zip> 
     װ͵  Ϸ  ϰ ȴٸ  ޶.
     ׷ ſ  ̴.

  2.4.2.  doc  ã  ִ°

  doc bcc Ű  Ǿ ִ.   FreeBSD
  Ʈ   ̴    ̴.  ǽ ٸ, ׵
  ҽ   doc ִ: ׸     ƴ,
  α׷ Ÿ ϰ Ǿ ִ.   ִٸ Tunes 0.0.0.25
    as86 Ǿ  캸.

  2.4.3.    ҷ° ?

  bcc ؼ .s  ҽ  GNU a.out .o Ʈ , .l
   Ϸ ȯϴ GNU ũ   ϳ .

  %.o %.l:       %.s
           bcc -3 -G -c -A-d -A-l -A$*.l -o $*.o $<

    ϵ  ʴ´ٸ "%.l", "-A-l", "-A$*.l" ֶ.
  GNU a.out ̿   Ѵٸ bcc doc߿ ٸ ϴ ˿
    ų GNU binutils Ű objcopy ƿƼ  
  ִ.

  2.4.4.   ο    Ҽ ٸ  ؾ
  ϴ°?

   Ϸ ռϰ Ȱϰ ִ.  a.out as86 
   ϴ  ġ װ  Ѵ.  , ̰͵ 
  Ѵٸ: bin86 Ű /usr/bin ִ е as86  
  ְ,   as86 /usr/local/libexec/i386/bcc/as  ƶ.
  Ƹ  "" as86 θ ʿ䰡 ̻  ̴.

  2.5.  ٸ 

  2.5.1.  Win32Forth 

  Win32Forth  Win32s, Win95, Win/NT Ǹϰ ư  32Ʈ
  FORTH ý̴.  װ  յ  32Ʈ
  (λ Ǵ ̻ )  ϰ ִ.  ũ ó
   FORTH  full power  óȴ.  ׷ 
   Win32For װ ü ̿ ̴.   ã  ִ.
  ftp.forth.org/pub/Forth/win32for/
  <ftp://ftp.forth.org/pub/Forth/win32for/>

  2.5.2.  NASM

  Ʈũ 󿡼  ִ  Ʈ  ٸ 
    ϰ ִ ̴. ̰ C µ,  ˷
   Ʈ ˵ ϴ   ⷯ ɰ̴.  
    ſ    ̳ʸ ¿ ־
  ߵư; ũ μ̿ ̰ δ.  Ȯ NASM 
  Ͽ Ʈ Ǵ    ϰ ִ; ׷ٰ NASM
   䱸Ǵ  Ư¡   ̶   .
   е װ ȹ  غ̴...
  www.dcs.warwick.ac.uk/~jules/nasm1.html
  <http://www.dcs.warwick.ac.uk/~jules/nasm1.html>

  2.5.3.  Tunes

  Tunes OS Ʈ ׵ ڽ  Scheme  ν
  ü   Ϻκ ϰ ִ.  װ   ư
  ʰ   ʿ ϰ ִ.    ɺ  Ʈ
  óϴ , ̰   ʷ ϰ   
  , 𽺾,  /Ϸ back-end , ׸
    Scheme ǮĿ ũó/Ʈó ־ Ÿ
   Ѵ.  www.eleves.ens.fr:8080/home/rideau/Tunes/
  <http://www.eleves.ens.fr:8080/home/rideau/Tunes/>

  2.5.4.   ƴϰų 32Ʈ ƴ x86 

  е x86  α׷ ⺻μ װ͵鿡  
  ã   ִ. Raymond Moon comp.lang.asm.x86  FAQ 
  ãƺ ٶ .  www2.dgsys.com/~raymoon/faq/asmfaq.zip
  <http://www2.dgsys.com/~raymoon/faq/asmfaq.zip>

  3.  META α׷/ ũ ó

  е ̷ ۾ ؼ     , װ
   ʴٸ    ; C, OCAML, perl, Scheme 
   α׷ ּ   ̴.  ׷, ̷ 
  󿡼     ʴ´ٸ, 
  ϰų ʿ ̴.  ٸ 쿡,  е 
  α׷,    ϴ ζ Ȯ忡  ڵ
  ý ũó Ÿα׷   Ѵٸ װ ѹ
  ǵǴ   ̸,  ð   ̴.
  ""    ƾ C ũų   
   ִ.

  3.1.   յ ̶  ϴ°

  3.1.1.  GCC

  GCC  ζ  ڵ带 Ѵٸ  ӿ  Ģ
  Ĳ ϰ 캸ƾ Ѵ. ȭڴ ׻ װͿ  ˰
  Ƿ, ζ  ڵ Ȯ ʴ ڵ带  .
  ׷, е  CPP ũο   , 
  鵵 װ C Լ/ũη    ̴.  ζ Լ
  ũο ſ  ѵ, װ   ϱ  ϰ
  ûҵ  ִ.  ׷ 쿡 ڵ尡 簡    ؾ
  Ѵ.  ׷  ("1:" Ÿ)  ڵ忡
  ǵǾ ־ Ѵ.  ׷ , ũδ  ƴ
  Ƕ ̸   Ѵ.  , е ڵ峪 GCC 
  ״   Ƹ   ʾ , ζ Լ
   ڵ  , Ÿ    ̸ GCC ȥ
  ߸.  , C  ü  α׷ֿ ־
    ߻ȭ  ް ִ.  濡  κ
     ̴.  ׸ Լ ڸ ͸  Ѱִ
   ȭ   Լ θ     ִ.
   е Ʈ asmlinkage  װ͵ ־ Ѵ.
   Ŀ ҽ κ    ִ.

  3.1.2.  GAS

  GAS  ũ  ϰ  ʴ.  ׷, GCC 
  ǳ .S ϵ װ͵ GAS ǳ  CPP   
  ִ.  .s  ϳ Ű ٷ GASԷ ǳ.  ٽѹ
  ,    ҽ .

  3.1.3.  GASP

     ũξ GAS Ĵ.  texinfo doc .

  3.1.4.  AS86

  ̰  ũθ Ѵ.  doc ãҴ.   ҽ
   ϰ ϴ.  е ̸ ٸ װ͵ 
     ̴.  ʺ ͺ   ˰ ʹٸ ܺ͸
  ̿  ִ.  (Ʒ 3.2 κ .)

  3.1.5.  ٸ 

  Win32FORTH: CODE  END-CODE ؼκ   
  ũ̴.  ׷   FORTH ܾ  ͵鿡  
    ̴.  NASM:  ũθ  ʴ´. Ʒ ܺ 
  κ .  TUNES: ̰͵   ʴ´. ׷
  Scheme гŰ  Ÿ α׷ ϴ 
  ޾̴.

  3.1.6.  ܺ 

    ũε  ϴ, Ǵ е  
  Ѵٰ ϴ(C !)   ǥϴ  ġ  ̴.
  е Makefile Ģ    ܺ͸  ǳ
   ִ.

  %.s:     %.S other_dependencies
           $(FILTER) $(FILTER_OPTIONS) < $< > $@

  3.1.7.  CPP

  CPP  ǥ¿ ־    ͵鿡 ϴ.  װ
  ǥ̶ GCC  Ҹ  ̴.  CPP ѵ  ,
  Ʈ    ,  ı (destructors) ڵ
    ݵȴ. ׸ Ÿ ڵ带 óϱ 
  װ     .  CPP C Ϸ ´.  GCC
  е   ִ ο C Ϸ̴.

  3.1.8.  M4

  M4 ũó ־ Ź ɷ ش.  ǥ,
   Ģ ־  δ.  CPP    
  ͵ װ   ִ.  macro4th/This4th  Ʒ .
  ftp.forth.org/pub/Forth/ in Reviewed/ ANS/
  <ftp://ftp.forth.org/pub/Forth/ in Reviewed/ ANS/> (?), Ǵ Tunes
  0.0.0.25 ҽ m4 ϴ  ũ ó μ  ͵
   ̴.  m4 Ʈ GNU m4 1.4 (̻)   ִ.

  3.1.9.  ͸  ũ ó

  е  ũ Ȯ ͸   ִ. perl, awk, sed 
  ν ϴ.  ̷ ϴ  ,    
     ̴.

  3.1.10.  Ÿ α׷

  []

  4.   θ

  4.1.  4.1 Linux

  4.1.1.  GCC ũϱ

  32Ʈ ڴ 32Ʈ near 巹 û Ǫȴ.  %ebp,
  %esi, %edi, %ebx  ȴ.  %eax  ų %edx:%eax
  64Ʈ  .  GCC  Ϳ  ȣǴ 
    ִ ɼ  , Ϳ ڸ  
  FPU  ʴ´.  i386   üũ϶.  GCC ̷
  ǥ  ҷ Լ  asmlinkage attribute ؾ
  Ѵ.  (  װ  ҷ ϴ   Ѵ.)

  4.1.2.  ELF vs a.out 

   C Ϸ  ɺ   غѴ.  Ư, 
  a.out GCC   ELF GCC   ׷ غ Ѵ.  
  ҽ Ʈ װ  ϴ  .
  (linux/include/linux/linkage.h).  е C->asm ̸  
    ν پ  ִ.  void foo asm("bar")
  (void); foo Լ Ȯ ϱ ؼ  bar ȣؾ
  Ѵ.  binutils Ű objcopy ƿƼ a.out  ELF
  Ϸ   ݴ 쵵    ̴.

  4.1.3.    ý 

  ̰   . ֳϸ ̰ ٲ ȣȯ 
  ̴.  ׸ ̰ libc  ͵ Ȯ ͵
  Ѵ.   ڸ,  ý   ϴ 
  libc ؼ Ѵ.  , libc ũ Ű   
  ̴. Ʒ linux-eforth- 1.0c.tgz  .
  ftp.forth.org/pub/Forth/Linux/ <ftp://ftp.forth.org/pub/Forth/Linux/>
   ҽ  ̴.  ý   
  ϴ asm/unistd.h ϵ ´.  ⺻ е
  %eax __NR_syscallname ȣ ְ, ĶŸ %ebx, %ecx, %edx,
  %esi, %edi  ְ int $0x80     ̴.  
  %eax ϵǰ, ÿ libc errno ϴ Ϳ شϴ
    %eax ´.    Ǵ ʴµ, ý
   Ҹ   ٴ     ̴.

  4.2.  

  ֱ  ͽٴ鿡 񽺸  ̽ ´.
  ׿  docϵ о.   int 0x21 䳻µ, 
  带   ְ ȴ.  ( װ͵, ʿ  32Ʈ
  ۵ڸ Ͽ 16Ʈ  񽺸 ȣν ۾  
   ġ ʴ´.)  DPMI  doc  ã  ִ.
  ftp.oulu.fi/pub/msdos/programming/
  <ftp://ftp.oulu.fi/pub/msdos/programming/> DJGPP  ü (ѵ)
  ü libc ´.  ̰   ũν
  ϴ.  ׷  ִ ġ a.out GCC̸ ֱ ELF GCC
  ġ ʿ ̴.   װ͵ ο ġ ʿ Ѵٸ
  𸣰ڴ..

  4.3.  е OS

  [ α׷ӵ  װͿ  ̾߱ ϰ ִ ̴.]

  4.3.1.  Ʈ δ ڵ 32Ʈ  

  4.3.2.  ؼ 

  4.3.3.  ͷƮ ٷ

  4.3.4.  16Ʈ ý 񽺸 ϴ V86/R86 

  4.3.5.  ̰͵鿡     ΰ

  [ٸ  ̺κе鿡  ȳǥø ֱ ٶ]  ߿
  ҽ OS ϰ ִ.   ȳǥõ Ʒ WWW 
  ִ.  www.eleves.ens.fr:8080/home/rideau/Tunes/Review/OSes.html
  <http://www.eleves.ens.fr:8080/home/rideau/Tunes/Review/OSes.html>

  5.  ؾ 

  o  ҿ κ ä

  o  Ʈ    ȳǥ ±

  o   Ȱ  ǵ ȵ  ַǵ , Ŀ,
         ִ   ± .

