<title>Unix overview CHAP02</title>




                   UNIX

                              . 



        THE DESIGN OF THE UNIX OPERATING SYSTEM by Maurice J. Bach






                (ॢ  ᪮ ...  ..)








































                                     1


        Copyright c 1986  ௮ Bell Telephone Laboratories.

         ௮樥 Prentice-Hall.
        ⤥ Simon & Schuster
         , - 07632

           ணࠬ ᯥ祭 ⥫⢠ Prentice Hall.
        ⠭ ࠩ . ୨

         饥  ।祭    ࠭    
     ࠭,     稫         ࠢ      ௮樨
     Prentice-Hall International.   뢮  ࠭
      , ᨪ  .

         UNIX - ॣ஢ ࣮ ઠ ௮樨 AT&T.
         DEC, PDP  VAX - ࣮ ન ௮樨  Digital Equipment
     Corp. Series   32000   -   ࣮   ઠ  ௮樨  National
     Semiconductor Corp.  Ada - ॣ஢ ࣮ ઠ -
     ⥫⢠  (Ada Joint Program Office). UNIVAC - ࣮ -
      ௮樨 Sperry Corp.
         騩 㬥  ࠭    ⮭୮ ன⢥ APS-5
     ௮樨 AUTOLOGIC    ଠ  TROFF    樮
     । UNIX  AT&T 3B20.

            ⮢   ஬  ⥫ 뫮 -
       ᨫ.   ᨫ 뫨 易  ஢ ⥮-
     ᪨ ࠧࠡ⮪    ᫥   ஭ ஢મ
     ⢥ ⥮᪨ 몫  ணࠬ.   ⥫
        ࠭⨩,  ᭮ ࠦ, ⠪  ࠧ㬥-
     , ⭮⥫쭮 祭   ணࠬ   㬥樨.
        ⥫   ⢥  砩  ந -
     , 騥  裡   १ ⠭, 믮
      ᯮ짮  ணࠬ.

          ࠢ ࠭.  頥 ந ⤥
     ⥩   쬥 ࠧ襭 ⥫.

         ⯥⠭    ਪ.

         10 9 8 7 6 5

         ISBN 0-13-201757-1  025

         Prentice-Hall International (UK) Limited, 
         Prentice-Hall of Australia Pty. Limited, 
         Prentice-Hall Canada Inc., ஭
         Prentice-Hall Hispanoamericana, S.A., 娪
         Prentice-Hall of India Private Limited, -
         Prentice-Hall of Japan, Inc., 
         Prentice-Hall of Southeast Asia Pte. Ltd., 
         Editora Prentice-Hall do Brasil, Ltda., --
         Prentice-Hall, Inc.,  , -







                                     2


        

      ⥬  UNIX 뫠 ᠭ  1974     ᮭ 
   ୠ "Communications of the ACM" [Thompson  74].    ⮣
६    稫  ப ࠭   ப -
 । ந⥫ ,    ⠫ ᭠  ᢮  -
設. ᮡ ୮    㭨,  쭮 -
   ᫥⥫᪮  祡 .
    ⢮      ⥩  饭 ᠭ ⤥ ⥩ ⥬;
।   ᯥ樠 ᪠ "Bell System Technical  Journal"    1978
  [BSTJ 78]   1984  [BSTJ 84].    뢠 짮-
⥫᪨ 䥩,  ⭮ ᯮ짮 ஭ , ⮢-
 㬥樨, ࠡ   ஬ Shell;     ,
⠪  "The UNIX Programming Environment" [Kernighan 84]  "Advanced UNIX
Programming"  [Rochkind  85],  뢠  ணࠬ 䥩. 
 饭 ᠭ ७ ⬮  , ⠢  -
 樮 ⥬ (.. ""),  ᭥  裡  ண-
ࠬ  䥩ᮬ.  ࠧ,  㤥   ࠡ  ࠧ-
 樮 ।. -,   ᯮ짮    ⢥
祡 ᮡ   "樮 ⥬"   㤥⮢ ᫥-
  ,  ⠪    ᯨ࠭⮢ ࢮ  祭.  ࠡ  
뫮  ࠧ   ।⢥  室 ⥪  -
⥬  ணࠬ,      ᨬ  . -, 
  㦨  ⢥ ࠢ筮 㪮⢠   ⥬  ண-
ࠬ⮢,  ண ᫥    ᭨ ᥡ 堭 ࠡ
  樮  ⥬  ࠢ  ᮡ , ᯮ㥬 
UNIX,  , ᯮ㥬   㣨  樮  ⥬.  ,
ணࠬ,  ࠡ騥   । UNIX,  㣫㡨 ᢮  -
 ⢨ ணࠬ  樮 ⥬    ।⢮  ⮣
਩  ᠭ  䥪⨢  ᮢ襭 ணࠬ.
    ঠ    冷  ஥ ਠ   ᮮ⢥ 
権, ⮢   ⠭      㤭    Bell
Laboratories,  室饩  ⠢ ௮樨 AT&T,  1983  1984 . -
  ,        権  頫    室
⥪ ⥬ ணࠬ,  㦨,   室 ⥪ -
砥, ᫨ 짮⥫  ।⠢  ⥬ ⬠.  -
    ⠫  ᠭ ⬮   , ⮡   
ࠧ   ⢮ ᬠਢ  樮  ⥬.  
ࠧ,    ।⠢ ᮡ  ⮫쪮 ஡ ⮫ ᮡ-
⥩ ⥬  ᪮ 몥;  ࠦ 饣 堭  ࠡ
ࠧ  ⬮,   ࠧ ,  ࠦ   -
⢨  ᮡ.  ।⠢    ᥢ,  宦  
 , ᪮ ⥫  ਭ ᠭ  ⢥ -
;  ⬮ ᮮ⢥  楤, ⠢ 
樮  ⥬. 㭪 뢠 ⢨ ࠧ ଠ-
   ࠢ 樮 ⥬.  ᫥  -
 ⥬      ணࠬ    몥
.   楫    ᯥ祭 ᭮    ਬ஢
᪫祭 ஫  訡,  筮 ।ᬠਢ 
ᠭ ணࠬ.  ਬ ண﫨   ࠢ  ᨨ  V;
  ᪫祭  ணࠬ,  ᮡ, 騥 ᨨ V, 
 믮  ࠢ 㣨 ᨩ 樮 ⥬.
    讥 ᫮ ࠦ, ⮢ ࢮ砫쭮   権,
ਢ    ,  ⠢ 祢  . ⤥-
 ࠦ, 騥 ᭮ , ࠧ饭 ।⢥ 
⥪  .  㣠   ࠦ ⫨砥 襩 ᫮, -
  ।祭 ⮨  ⮬, ⮡  ⥫ 㣫㡨  ᢮
  ᮡ⥩  ⥬.  ,  ,  ࠦ  

                                     3

த ᫥⥫᪮, ।祭  祭  ⤥  ஡.
ࠦ 襭 ᫮ 祭 窠.
    ⥬  ᠭ   ᮡ 樮 ⥬ UNIX
 V । 2, ࠭ ன  ௮ AT&T,  
⮬ ⤥ ᮡ⥩ ।樨 3.   ⥬,  ன  -
  ,    ࠫ ࠧ   ⠫ 㣨 ࠧ-
⥩ 樮 ⥬,  ⭮  ⥬,  ࠭塞  १
"Berkeley  Software  Distribution" (BSD).   ᠫ ᮢ, 易 
ࠪ⨪ ⤥  ।,  ⮫쪮    -
  墠  ⢨  樮 ⥬  묨
।⢠   ࠪ ᮡ 䨧᪮ 䨣樨.  
  , ⠬,  , 易  設묨 ᮡﬨ, ।⠢-
  묨  窨 ७  堭  㭪樮஢  ,
  㬥   㣫㡫  ⠫.  ࠩ ,  ᬮ
஭   ᮢ ᭮ 㪠뢠  ⠢    樮
⥬,    設-ᨬ묨.
    饭    । 稥  ⥫  ணࠬ஢
   몮 ᮪ ஢  ⥫쭮  몥 ᥬ. -
 ४ ਮ  ࠡ  樮 ⥬ UNIX   -
  몮 ணࠬ஢  [Kernighan 78].   ,  -
ࠫ   ਠ   ⠪ ࠧ, ⮡ ⥫ ᬮ 
   ⢨ ॡ㥬 몮.   ਫ      ਢ
⪮ ᠭ 饭  樮 ⥬, ண 㤥 筮
 ⮣, ⮡  ।⠢  ᮤঠ ,  ஥  -
 㦨  ⢥  ࠢ筮 㪮⢠.
    ਠ     ஥ ᫥騬 ࠧ.  1 㦨 ,
ᮤঠ騬 ⪮, 饥 ᠭ ⥬  ᮡ⥩    窨  ७
짮⥫   騬  ⥬.   2  饥 ।-
⠢  ⥪     ᭮ .   -
⠫쭮    ᢥ , 易  饩 ⥪ன -
⥬  ᠭ  ࠧ     樨.  
 뤥  ࠧ: 䠩 ⥬, ࠢ ᠬ  -
, 易  ࠧ⨥.  ⥬ ।⠢  ࢮ,  ᪮
     ࠢ  ࠢ ᠬ. ,  3 -
饭 ᠭ 堭 㭪樮஢ ⥬   ᢥ宯⨢-
   (), ⠢饣 ᭮ 䠩 ⥬.  4 뢠
ଠ樮   , ᯮ㥬 䠩 ⥬.  
⬠ ᯮ ⮤, 塞   3,    ७-
  "壠ਨ",  室    ࠢ 짮⥫᪨ 䠩.
 5 饭 ᠭ 饭  樮  ⥬,  㦨
䥩  짮⥫  䠩 ⥬;  ᯥ祭 㯠  -
⥫᪨ 䠩 ᯮ   4.
    ᭮    6 㤥 ࠢ ᠬ.   -
 ⨥ ⥪    ᫥  ७  ⠢騥
  樮  ⥬,  ࠢ騥  ⥪⮬ .  ⭮,
ᬠਢ 饭  樮 ⥬, ࠡ⪠ 뢠  -
४祭 ⥪.   7   ⥬ 樨, 
ࠢ ⥪⮬ .  8 ᠥ ஢ ᮢ, -
 9 - । ,  ⥬ 窨  饭 ࠭.
      10    ᮡ⥩ ⢨, ஥ -
稢 ࠩ ன, ᮡ  㤥 ᪮  ନ-
 ࠩࠬ. ᬮ  ,  ன⢠ ᪨ 室  ⠢ 䠩-
 ⥬,  ᬮ७  ⮣  ⪫뢠  裡  -
 ᮢ, 易   ࠢ  ᠬ,    㦤
ନ  ࠩ஢.   ⠪ 㦨 ⨪  ᠬ, 易-
  ࠧ⨥ ⥬,  ᬠਢ   .  11 -
ᠥ ⢨ ᮢ  ࣠樨 ⥩,  ⮬ ᫥  ᮮ饭,
ᯮ㥬    ᨨ V, ࠧ , ᥬ஢  ⮢ BSD. 
12 ᮤন ⭮  ᮡ⥩ ୮ ⥬ UNIX,

                                     4

  13 ᫥ 嬠設 । ᫨⥫ ⥬.
    ਠ, ।⠢    ,    ⠭  
  祭    "樮 ⥬"  祭  ᥬ,
ਠ ⠫  ᫥   ०  ᥬ    ࠫ-
 믮 ࠪ᪨ .
         ⥫ ।। ⥫  ᫥饬.   ⠫
業 ந⥫쭮 ⥬  ᮫⭮ ࠦ,  ᠫ   -
ࠬ஢ 䨣樨, 室  ⠫樨 ⥬.   -
   ᨬ  ⨯ 設, 䨣樨  孨᪨ ।-
, ᨨ  ॠ樨 ⥬, ⠢ . ஬ ⮣,    ᮧ⥫쭮
   ।᪠   쭥襣 ࠧ 樮 -
⥬ UNIX.  ᮢ, 易  ࠧ⨥,  ९  易-
⥫⢮ ௮樨 AT&T ᯥ ᮮ⢥騥 ࠪ⨪,  
࠭  ,   ᮮ⢥騥   ꥪ⮬ ᫥-
.
     ⭮ ࠧ ୮        
  ᠭ  ⮩    ⨢ ᪨ 砭, ᪠-
    㪮.   ࠧ  㡮砩  ਧ-
⥫쭮   ⮭,  ᮢ⮢    , 
 প  砫쭮 ⠯  ᬮ५ ᮪  .   -
    ᥪ ६᫠   ᥣ    । .  -
 ⠪ ন   ᠬ 砫,   ᥣ  業   -
    ⥫쭮.     ஢쭮 ⢥⨫  ᫥
, 騥 ᪮  孨᪮ ᯥ⮢ ⥬. ⢮
 ⢮ ᢮ ६  ᨫ    ਠ⠬  -
,  ⮩    易 ᪠  ஡ -
砭.  ।   ,  ,  , ⨢ , 
⫥,  ,  ,  ३,  ,   ,
ࠩ  ୨,    ⨭,  ,  ,  , ਫ
࠭,  ,  ,  ,  ,     -
.  ⠪  ⮢ 㪮  .  ⥫    ⠪
    㪮⢮  ﭭ প,   頫 
ᥬ 殮 ࠡ,   ⬮, ᯮᮡ⢮   ࠡ,
  ⥫ ᫮, ।⠢ ମ AT&T  Bell  Laboratories.
    ᮭ ⥫⢠ Prentice-Hall  ᠬ ࠧࠧ
  ਤ   ⥫쭮 . ᫥  ᯨ,    
  稭       , , 襩  樮
প,  ன    ⨣ ᯥ.






















                                     5


     1

           


      ६,  襤襥        1969 , ⥬ UNIX
⠫ 쭮 ୮  稫 ࠭  設   ࠧ筮
魮  ࠡ⪨,  ய஢   , ᯥ稢  
騥 ᫮ 믮 ணࠬ. ⥬    .   
⠢  ணࠬ  ࢨ 㭪樨, ,   樮 ।
UNIX ⠪ ୮;    㯭 짮⥫,   砥
⠪ ணࠬ,   ,  ᮮ饭ﬨ,  ࠡ-
 ⥪⮢  ⥬ ࠡ⪨ 室 ⥪⮢ ணࠬ. 㣠  -
砥   ᥡ ᮡ⢥ 樮 ⥬, ন  ணࠬ 
㭪樨.  ⮩   ⠫쭮 ᠭ ᮡ⢥ 樮 -
⥬. ᭮  業  ᠭ ⥬ UNIX  ᨨ  V,
࠭ ன  ௮ AT&T,  ⮬ ᬠਢ-
   ᮡ  㣨 ᨩ. ਢ ᭮ ଠ樮-
   , ᯮ㥬  樮 ⥬    筮
⮣  ᮧ騥 ᫮  㭪樮஢ ⠭⭮ 짮⥫᪮
䥩.
      㦨   ⥬ UNIX.     -
ਨ  ᮧ    饩   ⥬.    ᫥饩
 ᮤন  ⠫쭠  ଠ  樮 ⥬.


        1.1 

      1965   ଠ Bell Telephone Laboratories, ꥤ ᢮ ᨫ 
 General Electric  ஥⮬ MAC  ᪮  孮᪮
,  㯨    ࠧࠡ⪥  樮 ⥬, 稢襩
 Multics [Organick 72]. । ⥬ Multics 뫨 ⠢ -
 - ᯥ ६     ᠬ    讣  ⢠
짮⥫,  ᯥ  ᪮ ᫥  ࠭ 
   짮⥫  砥 室 ᮢ⭮  ᯮ짮-
  .  ࠧࠡ稪, ᫥⢨ ਭ訥 ⨥  ᮧ
࠭ ।権 ⥬ UNIX, ⢮  ࠡ   ⥬  Multics  
ଥ  Bell Laboratories.  ࢠ  ⥬ Multics  뫠 饭
 1969    GE 645,   ᯥ稢 믮    ᫨-
⥫ ,  襭   ।砫,   뫮  ᭮,
  楫  ࠧࠡ⪨    ⨣.  ⮬ ଠ Bell Laboratories
४⨫ ᢮ ⨥  ஥.
     砭 ࠡ  ஥⮬ Multics  㤭  ᫥⥫᪮
業  ଠ⨪  Bell Laboratories ⠫  "筮 -
ࠪ⨢  ᫨⥫쭮  ।⢠" [Ritchie 84a].  ᮢ襭⢮-
 । ணࠬ஢,  ᮭ,    㣨 ᠫ  
㬠  ஥  䠩  ⥬,  稢訩  쭥襥 ࠧ⨥ 
࠭ ᨨ 䠩 ⥬ UNIX. ᮭ 뫨 ᠭ ணࠬ, -
騥  । 䠩 ⥬  ० 窨  
,  뫮  ᮧ ⥩襥  樮 ⥬    
GE  645.        ६    ᠫ  ࠭ ஢ ணࠬ "Space
Travel" ("ᬨ᪮ ⢨")  ⥬ GECOS  (Honeywell  635),  
ணࠬ  ᬮ 㤮⢮ 짮⥫, ᪮ ࠢ "ᬨ-
᪨  ࠡ"  ᫮, ஬ ⮣,  㧪 ணࠬ -
  .  ᮭ 㦨 ᯮ㥬   PDP-7,
᭠饭  訬  ᪨  ᯫ  騩 襢 設 ६.
 ணࠬ "ᬨ᪮ ⢨"  PDP-7, ᮭ 稫 -
  設,  ᫮ ࠧࠡ⪨ ணࠬ ॡ  -

                                     6

짮  -ᥬ   ࠭樨 ணࠬ  設  ⥬
GECOS  ᯮ짮 䮫    PDP-7.  ⮣, ⮡ 
᫮ ࠧࠡ⪨, ᮭ   믮  PDP-7 ᢮  ஥  ⥬,
稢訩     䠩 ⥬ UNIX, ⥬ ࠢ -
ᠬ  让  ⨫.   殢,   ⥬    
㦤  প  ஭ ⥬ GECOS  ⢥ 樮 ।
ࠧࠡ⪨     ন ᥡ ᠬ.  ⥬ 稫 
UNIX,  室  Multics  ਤ㬠    㤭  ᫥⥫-
᪮ 業  ଠ⨪ ࠩ ୨.
    ᬮ  ,   ࠭  ⥬ UNIX 㦥 뫠 -
饩,       ॠ ᢮ ⥭樠   ,   稫
ਬ  ॠ쭮 ஥. ,  ⮣, ⮡ ᯥ  㭪樮-
   ⥬   ࠡ⪨   ⥪⮢     ⥭⭮  ⤥    Bell
Laboratories,  1971  ⥬ UNIX 뫠 ७ᥭ   PDP-11. -
 ⫨砫 訬 ꥬ: 16   ⥬, 8    ணࠬ
짮⥫, 㦨  ꥬ 512   ⢮   䠩
    64 . ᫥ ᢮ ࢮ ᯥ ᮭ ᮡࠫ 뫮 -
   ⥬ ࠭  ࠭,   ⮣  몮
 (B), ।⢥ ண   BCPL [Richards 69].   -
㥬 몮  ᥬ ⪠, 騬  몠, -
⮬  ।    ࠧ, 稢   (C)  
ࠧ  ஢  設  ,  ⨯   ।
 .  1973  ⥬ 뫠 ᠭ    ,    
蠣,  堭   ⮣ ६,  訩 ஬ १ । -
஭ 짮⥫. ⢮ 設  Bell Laboratories,    
뫠  ⠫஢ ⥬, ᫮  25,  १ 祣 뫠 ᮧ
㯯  ⥬ ᮯ஢ UNIX  .
      ६ ௮ AT&T       த  
த⮢   裡  ᮮ⢥騬 ᮣ襭, ᠭ   䥤ࠫ-
 ࠢ⥫⢮  1956 ,  ࠭﫠 ⥬ UNIX ।  㭨-
⮢,      뫠 㦭  祡 楫.  㪢 ᮣ襭,
௮ AT&T  ४஢,  த     ᮯ஢  ⥬.
ᬮ  , ୮ ⥬ ⮩稢 ᫠.  1974  ᮭ 
 㡫 , 뢠 ⥬ UNIX,  ୠ Communications
of the ACM [Thompson 74],       ࠭ -
.    1977  ⢮ 設,   㭪樮஢ ⥬ UNIX,
㢥稫  500,  祬 125    ࠡ⠫    㭨.  ⥬
UNIX  ୮ । ⥫䮭 , ᪮ ᯥ稢-
  訥 ᫮  ࠧࠡ⪨ ணࠬ, 㦨 ࠡ    -
   ࠡ  ॠ쭮 ⠡ ६ (    ⥬  MERT
[Lycklama 78a]).  㭨⮢, 業  ⥬ UNIX 뫨 ।-
  ᪨  ࣠.    1977  ௮ Interactive Systems
⠫ ࢮ ࣠樥, 稢襩 ࠢ  ९த  ⥬  UNIX  
  業  ⥫ 㣨 (*),  砫  -
樨  ⥬  㭪樮஢  ⮬⨧஢ ⥬ ࠢ -
०᪮ ⥫쭮. 1977  ⠪  ⬥祭  "७ᮬ"  ⥬
UNIX  設, ⫨  PDP ( 祬 ⠫   ⥬
  㣮  設      訬 ﬨ),   
Interdata 8/32.
     ⮬ ୮ ய஢ 㣨  ⠫  ७
⥬  UNIX    設,     ᭮ 㤨 
ࠧࠡ稪  ᠬ⥫쭮 ࠧ ⥬,   १  祣  뫮

---------------------------
(*) ࣠樨, 稢訥 ࠢ  ९த    業    -
     ⥫  㣨, ᭠ ᫨⥫ ⥬ ਪ묨 ண-
     ࠬ, 騬  ⥩ ਬ, ६  㤮-
       ॡ  뭪.    ࣠樨   த ਪ
     ணࠬ,  樮 ⥬,    ࠢ    
     ணࠬ ࠡ.
                                     7

ᮧ  ᪮쪮  ਠ⮢  ᭮ ⥬.  ਮ  1977  1982
 ଠ Bell Laboratories ꥤ ᪮쪮 ਠ⮢,  ࠧࠡ⠭
 ௮樨 AT&T,  , 稢訩 ᪮  UNIX  III.
  쭥襬  ଠ Bell Laboratories    III ᪮쪮 
ᮡ⥩,   த UNIX  V (**),       ⠫
樠쭮  ࠭  ௮樥  AT&T   ﭢ 1983 .   
६ 㤭 ୨᪮ 㭨  ફ  ࠧࠡ⠫  ਠ
⥬ UNIX, 稢訩  BSD 4.3  設 ਨ VAX  ⫨騩
묨 묨, 묨 ᮡﬨ. ᭮   ⮩ 
業    ᠭ ⥬ UNIX ᨨ V,  ६  ६
 㤥   ᮡ⥩ ⥬ BSD.
     砫 1984  ⥬ UNIX 뫠 㦥  ⠫஢  ਡ⥫쭮
  100000  設  ᥬ ,  祬  設  ப  -
᫨⥫ ⥩ -  ய஢     -    ࠧ
⮢⥫.    㣮 樮 ⥬  뫮  ᪠
⮣  . ୮  ᯥ ⥬ UNIX 﫨 ᪮쪨 稭-
:

* ⥬ ᠭ  몥 ᮪ ஢,  祬   ,
  ,   ७  㣨 設.    業,  ᤥ
  ,  ਠ ⥬     20-40 % 訩 ꥬ  ࠡ⠫
     ࠢ  ਠ⮬  ᥬ,  २⢠ -
  짮 몠 ᮪ ஢    ॢ訢  ⪨  (.
  [Ritchie 78b], . 1965).
* 稥 쭮 ⮣ 짮⥫᪮ 䥩,  ஬ 
   ।⠢  室 짮⥫ 㣨.
* 稥  ।,  ᮧ ᫮  ணࠬ  
   .
* 稥 ᪮ 䠩 ⥬,   ᮯ஢  䥪⨢-
    ࠡ.
* ᯥ祭 ᮣᮢ ଠ⮢  䠩, ࠡ  ᫥⥫ -
  ⮪ ⮢,  祬 砥 ⥭ ਪ ணࠬ.
* 稥 ⮣, ᫥⥫쭮 䥩  ਩묨 ன⢠-
  .
* ⥬  짮⥫᪮, 筮;  짮⥫
   ६ 믮 ᪮쪮 ᮢ.
* ⥪ 設   짮⥫,  ⮬  祭  -
    ᠭ ணࠬ, ࠡ  ࠧ 䨣 
  ।.
        ᫥⥫쭮  ⫨ ⥬ UNIX  
設⢮  襯ਢ    .
     樮 ⥬  設⢮  ᠭ   ,  ⥬
UNIX  ন    㣨  몮, ⠪  ࠭, ᨪ, ᪠,
, ,   ஫. ⥬ UNIX  ন    ண-
ࠬ஢,  ண    ,  ᯥ-
  ⥬  䥩, ⠭騩 ᮮ⢥⢨  짮⥫-
᪨ ᠬ  樮 ⥬  ஬ ᮢ, ਭ  UNIX.


        1.2  

     㭪 1.1 ࠦ ⥪ 孥 ஢ ⥬ UNIX. -
᪨ ।⢠,   業 ࠬ, 믮 㭪樨, ᯥ-
稢騥 㭪樮஢ 樮 ⥬    ᫥    ࠧ
1.5.  樮  ⥬      ன ।⢥

---------------------------
(**)      IV ? 䨪 ७ ਠ ⥬ 稫
      " V".
                                     8

(***), ᯥ稢 㦨 ணࠬ   ᨬ  ⠫ -
⭮ 䨣樨. ᫨ ।⠢ ⥬ 饩   ⮢,    
 뤥 ⥬ , ஢  짮⥫᪨

            +---------+----------------------------------+
            |         |  㣨 ਪ ணࠬ     |
            |    +----+-------+--------+-------+----+    |
            |    | | nroff |   sh   |  who  |    |    |
            |    |    +-------+--------+-------+ a. |    |
            |    +----+                    |out |    |
            |    |    |    +--------------+    |    |    |
            |    |co|    |              |    +----+    |
            |    |    |    | 孨᪨  |    |    |    |
            | cc +----+    |              |    |date|    |
            |    |    |    |   ।⢠   |    |    |    |
            |    | as |    |              |    +----+    |
            |    |    |    +--------------+    |    |    |
            |    +----+                        |    |    |
            |    |    +-------+--------+-------+ wc |    |
            |    | ld |  vi   |   ed   |  grep |    |    |
            |    +----+-------+--------+-------+----+    |
            |         |  㣨 ਪ ணࠬ     |
            +---------+----------------------------------+

                㭮 1.1. ⥪ ⥬ UNIX


ணࠬ. ᪮ ணࠬ    ,    ७
    ⥬ UNIX  , 㭪樮  㣮  孨-
᪨ ।, ᫨ ⮫쪮   ணࠬ   ࠧ㬥  ࠡ  
  㤮.  ਬ, ணࠬ, ⠭  ।
ࠧ 設 ᫮, ࠧ 㤭 ॢ  㣨 設  ࠢ-
  ணࠬ,  ॡ騬  ⠭.
    ணࠬ,    shell  ।ࠬ (ed  vi) 
  譥  ⭮襭   ᫮,   ஬  
  ।  饭  樮 ⥬. -
    樮 ⥬ 㦤   믮 ࠧ 権,
 ॡ 뢠 ணࠬ,  ᯥ稢  묨  -
஬  ணࠬ.   ணࠬ, ਢ  㭪,  ⠭-
 䨣 ⥬   ,    ஢  -
  ᯮ  㯭 짮⥫ ணࠬ, ⠪    ண-
ࠬ a.out, ⠭⭮   ᯮ塞 䠩, ᮧ ஬
  몠  . 㣨 ਪ ணࠬ ᯮ  㪠 ண-
ࠬ,  孥 ஢,     㭪. ਬ,  ⠭
   몠 , cc, ᯮ  ᠬ 譥 ᫮:  뢠
९  , ᥬ   稪  (騪),  ..  ⤥
ணࠬ ।饣 ஢.   㭪 ਢ ஢ -
 ਪ ணࠬ, 짮⥫    -
   ⮫쪮 ஢, ᪮쪮 室.  ᠬ , ⨫ ணࠬ-

---------------------------
(***)   ॠ ⥬ UNIX 樮 ⥬ -
          ᮡ⢥  樮  ⥬, ,  ᢮ ।,
        ன  믮 室 㭪樨   -
      㦨  ⥬.  ⠪ ॠ ᪠ ⠫ 㣨
      樮 ⥬  㧪   ࠢ ਪ ணࠬ
      ࠫ쭮  ⥬ UNIX. ᪨ ਬ஬  ॠ樨
       ⥬ MERT [Lycklama 78a].   ਬ஬    -
        ॠ樨    ஢  ਨ IBM 370 [Felton 84]  UNIVAC
      1100 [Bodenstab 84].
                                     9

, ਭ  ⥬ UNIX, ᪠  ࠧࠡ  樨  ணࠬ,
믮    ,  .
      ਪ  ⥬  ணࠬ, ⠢騥 孨 ஢
⥬, ⠪    shell, ।, SCCS (⥬ -
⪨ 室 ⥪⮢ ணࠬ)   ணࠬ ⮢  㬥樨,
⥯ ⠭ ᨭ  "⥬ UNIX".    -
  㣠  ணࠬ   ஢   筮    
 饭  樮 ⥬.  ᨨ V ਭ 64 ⨯  -
  樮 ⥬,      ᯮ
.     ᫮ ࠬ,  砥  ᯮ짮, -
⠢  ⮬ 訥  짮⥫.  饭   -
樮 ⥬   ॠ騬  ७ ⬠ ⠢-
  "⥫" ,  裡  祬 ᬮ७ 樮 ⥬ UNIX  ⮩
 ᢮  ஡ 祭   饭  ⥬   -
⢨  ᮡ.  ,  ॠ 㭪樨,    
᭮뢠 믮  ਪ ணࠬ  ⥬ UNIX,    -
।   㭪樨.    㯮ॡ ନ "⥬ UNIX",
""  "⥬",   ⮬    樮 -
 UNIX,    ⥪  ⥪.


        1.3     

     ⮬ ࠧ ⪮ ᬠਢ   ⠫  ⥬  UNIX,  
⭮  䠩 ⥬, । 믮 ᮢ   -
  (ਬ, ). ஡  ᫥  ⢨  
⠫  ஬ ᮤন  ᫥ .


        1.3.1  ⥬

     ⥬ UNIX ࠪਧ:
    * ᪮ ன,
    * ᮣᮢ ࠡ⪮ ᨢ ,
    *  ᮧ  㤠 䠩,
    * ᪨ ७ 䠩,
    * ⮩ ଠ樨  䠩,
    * ࠪ⮢ ਩ ன (⠪  ନ   -
      ன⢠)  䠩.
      ⥬  ࣠   ॢ   室 設,
 뢠 ୥ (뢠: "/");  設   ॢ
 䠩 ⥬, ஬ 쥢,  ⠫ 䠩,  䠩-

                               /
    +-------------+------------+---------+---------+---------+
    |             |            |         |         |         |
   fsl           bin          etc       usr       unix      dev
  +-+-+       +---+---+        |       +-+-+               +-+-+
  |   |       |   |   |        |       |   |               |   |
 mjb maury   sh  date who    passwd   src bin          tty00 tty01
                                       |
                                       |
                                      cmd
                                   +---+---+
                                   |       |
                                 date.c  who.c

    㭮 1.2. ਬ ॢ  䠩 ⥬


                                     10


,  ᮮ⢥騥 ୨ 設,   ⠫,  -
묨 䠩,  䠩 ன.  䠩 । 㪠 
᪠,  뢠  ᯮ 䠩  ᪮ 
䠩 ⥬.   ᪠ ⮨   ,  ࠧ  
ᮡ  ⮩ (/);  
।⠢ ᮡ  ᨬ, ⠢  設 (䠩), ஥
  㭨  ⠫ (।饩 ),  ஬  -
ন.    ᪠ 稭   㪠      
  䠩  (設),   ண   ୥ 設
ॢ 䠩 ⥬  室  ⢥ ॢ 䠩,  ᮮ⢥-
  ⤥ . ,    "/etc/passwd",  "/bin/who"  
"/usr/src/cmd/who.c"  㪠뢠  䠩, 騥 設 ॢ, -
ࠦ  㭪 1.2,   "/bin/passwd"  "/usr/ src/date.c" ᮤঠ
 .   ᪠ 易⥫쭮  稭  , 
 ᫥ 㪠뢠  ⭮⥫쭮 ⥪饣  믮塞 -
 ⠫,  ⮬ ।騥 ᨬ  "  "      
᪠.  ,  ਬ,  ᫨    室  ⠫ "/dev",  
"tty01" 㪠뢠 䠩,    ᪠  ண "/dev
/tty01".
    ணࠬ, 믮塞  ࠢ ⥬ UNIX,  ᮤঠ 
ଠ樨 ⭮⥫쭮 ७ ଠ,   ஬    ࠭  䠩
,      ணࠬ ।⠢  ଠ ⮪ ⮢.
ணࠬ  ஢ ⮪ ⮢  ᢮  ,    ⮬
      㤥 易  䠪᪨ ᯮᮡ ࠭
  樮 ⥬. , ᨭ⠪᪨ ࠢ, ।騥 -
 ⮤ 㯠    䠩, ⠭ ⥬    
묨     ணࠬ,  ᥬ⨪  । ⭮
ணࠬ. ਬ, ணࠬ ଠ஢ ⥪  troff      
  ப  ⥪  ᨬ  室   ப,  ணࠬ 
⥬ ᮢ acctcom ࠡ⠥    ﬨ  䨪஢  .  
ணࠬ     ⥬  ⥬묨 ।⢠  ⢫-
 㯠    䠩   ⮪ ⮢,   ᥡ  ८ࠧ
  ⮪    ᮮ⢥饬 ଠ. ᫨   ணࠬ 㦨,
 ଠ  ७,  ਭ ᮮ⢥騥 .
    ⠫ 宦   䠩   ⭮襭; ⥬ ।⠢
ଠ  ⠫ ஬ ⮢,   ଠ 砥  ᥡ -
 䠩  ⠫   ଠ  ⮣, ⮡ 樮 -
⥬  ணࠬ, ⠪  ls (뢮 ᯨ᮪      ਡ⮢  䠩),
  㦨.
    ࠢ 㯠  䠩 ॣ㫨 ⠭ ᯥ樠 ⮢ ࠧ-
 㯠, 易  䠩. ⠭  ࠧ襭 㯠, 
ᨬ  ࠢ  뤠祩 ࠧ襭  ⥭,   믮 
 ⥣਩ 짮⥫:   䠩,  㯯  짮⥫  
. 짮⥫  ᮧ 䠩, ᫨ ࠧ襭   ⠫.
  ᮧ  䠩 ⠭ ﬨ  ॢ  䠩
⥬.
     짮⥫ ⥬ UNIX ࠪ ன⢠ ⠪,  ᫨    
뫨 䠩. ன⢠,   祭 ᯥ樠 䠩 ன,
⠭ 設   䠩 ⥬. 饭 ணࠬ  -
ன⢠    ᠬ ᨭ⠪,   饭   䠩; -
⨪ 権 ⥭    ⭮襭  ன⢠  让 ⥯-
  ᮢ    ᥬ⨪ 権 ⥭    䠩. ᮡ
 ன ᮢ  ᯮᮡ   䠩: ⥬ ᮮ⢥-
饩 ⠭ ⮢ ࠧ襭 㯠   (䠩). ᪮  
ன  룫 ⠪ ,     䠩,  ᪮  -
ன⢠   묨 䠩 믮     樨, 設-
 ணࠬ  室 ࠧ   ᥡ  ⨯  ࠡ뢠
䠩.

                                     11

    ਬ, ᬮਬ ணࠬ  몥  (㭮 1.3),  ன ᮧ-
    饣 䠩. ।,  ᯮ塞 
ணࠬ   copy.  ᪠ ணࠬ 짮⥫ 
 ନ:

     copy oldfile newfile

 oldfile -  饣 䠩,  newfile -   ᮧ  䠩.
⥬  믮  楤 main, ᢠ 㬥 argc 祭 -
⢠ ࠬ஢  ᯨ᪥ argv,     ᨢ  argv  祭
ࠬ,  ᮮ饭 짮⥫.  ਢ ਬ argc  -
祭 3,  argv[0] ᮤন ப ᨬ "copy" ( ணࠬ  -
    㫥 ࠬ஬), argv[1] - ப ᨬ "oldfile", 
argv[2] - ப ᨬ "newfile". ⥬ ணࠬ  ஢,  ࠢ쭮
 ⢮ ࠬ஢ 뫮 㪠   ᪥. ᫨  ⠪, ᪠-
    open  ()    䠩 oldfile  ࠬ஬ "read-only"
(⮫쪮  ⥭),  砥 ᯥ譮 믮 ன ᪠  -
  creat  ()   䠩 newfile.  㯠   ᮧ
䠩 뢠 ᫮ 0666 ( 쬨筮 ),  砥 ࠧ襭
㯠  䠩  ⥭     짮⥫.  饭  
樮  ⥬    砥 㤠   -1; ᫨  㤠筮
 樨 open  creat, ணࠬ 뤠  ᮮ饭    ᪠
  exit  ()    饭  ﭨ, ࠢ 1, 
᢮ ࠡ  㪠뢠   訡.
    樨 open  creat  楫 祭, 饥 ਯ஬
䠩  ᯮ㥬 ணࠬ  ᫥ 뫪  䠩. ᫥  ⮣
ணࠬ 뢠 ணࠬ copy, 믮  横  read (-
),   ன ந ⥭   樨 ᨬ  -
饣 䠩,   write ()   ଠ樨      䠩.
  read  ࠧ 頥 ⢮ ⠭ ⮢ (0 - ᫨
⨣  䠩).  蠥, ᫨ ⨣  䠩  -
 ந諠 訡  믮 樨 read ( ஫  -
  訡  믮 樨 write). ⥬ ࠢ  -
ணࠬ copy 頥  ᭮ ணࠬ  ᪠   exit
  ﭨ 0  ⢥ ࠬ,  㪠뢠  ᯥ譮 -
 믮 ணࠬ.

    ணࠬ   䠩, 㪠   맮  ⢥ -
⮢,    ᫮,  ࠧ襭 ⨥ 饣 䠩  ᮧ
 䠩.     ᥡ  ⥪,    뢥-
  饥 ன⢮, ਬ, 室 ⥪ ணࠬ, ⠪  ᨬ-
,  뢮  ,  ᠬ ணࠬ.  ࠧ,   맮-
:

    copy copy.c newcopy.c
    copy copy newcopy

  ⨬묨.  騩 䠩 ⠪   ⠫. -
,  맮:

    copy . dircontents

 ᮤন ⥪饣 ⠫, 祭 ᨬ ".",  -
 䠩 "dircontents"; ଠ   䠩 ᮢ,   -
 ,  ᮤন ⠫, ⮫쪮  䠩 筮 ⨯ (  ᮧ-
   ⠫ ।祭  mknod). ,   䠩
  䠩 ன⢠. ਬ, ணࠬ, 맢 ᫥騬 -
:


                                     12

    +------------------------------------------------------------+
    | #include <fcntl.h>                                         |
    | char buffer[2048];                                         |
    | int version = 1;        /* 㤥 ᭥   2 */    |
    |                                                            |
    | main(argc,argv)                                            |
    |      int argc;                                             |
    |      char *argv[];                                         |
    | {                                                          |
    |      int fdold,fdnew;                                      |
    |                                                            |
    |      if (argc != 3)                                        |
    |      {                                                     |
    |             printf("need 2 arguments for copy program\n);  |
    |             exit(1);                                       |
    |      }                                                     |
    |      fdold = open(argv[1],O_RDONLY);  /*  室  |
    |                                          䠩 ⮫쪮    |
    |                                          ⥭ */         |
    |      if (fdold == -1)                                      |
    |      {                                                     |
    |             printf("cannot open file %s\n",argv[1]);       |
    |             exit(1);                                       |
    |      }                                                     |
    |      fdnew = creat(argv[2],0666);  /* ᮧ  䠩  |
    |                                       ࠧ襭 ⥭  |
    |                                          -|
    |                                       ⥫ */         |
    |      if (fdnew == -1)                                      |
    |      {                                                     |
    |             printf("cannot create file %s\n",argv[2]);     |
    |             exit(1);                                       |
    |      }                                                     |
    |      copy(fdold,fdnew);                                    |
    |      exit(0);                                              |
    | }                                                          |
    |                                                            |
    | copy(old,new)                                              |
    |      int old,new;                                          |
    | {                                                          |
    |      int count;                                            |
    |                                                            |
    |      while ((count = read(old,buffer,sizeof(buffer))) > 0) |
    |             write(new,buffer,count);                       |
    | }                                                          |
    +------------------------------------------------------------+

              㭮 1.3. ணࠬ ஢ 䠩


    copy /dev/tty terminalread

⠥ ᨬ,   ନ (䠩 /dev/tty ᮮ⢥  ନ
짮⥫),       䠩 terminalread,  ࠡ ⮫쪮 
⮬ 砥, ᫨ 짮⥫ 
<Ctrl/d>. 宦 ଠ ᪠ ணࠬ:

    copy /dev/tty /dev/tty


                                     13

뢠 ⥭ ᨬ  ନ   ஢ ⭮  ନ.


        1.3.2 । 믮 ᮢ

    ணࠬ 뢠 ᯮ塞 䠩,  ᮬ 뢠  ᫥-
⥫쭮 権 ணࠬ   ணࠬ   믮.  -
⥬  UNIX    ६ 믮 ⢮ ᮢ ( ᮡ-
  뢠 ⨯ணࠬ஢      ०),
  祬   ᫮ ᪨  ࠭稢,  ⢮ ⥩ ணࠬ
(⠪  copy)  ६ 室  ⥬.   ⥬-
 樨  ᠬ ஦  ,  -
,  ᨭ஭  믮 ⠯   ࠢ ॠ樥  -
㯫 ࠧ ᮡ⨩.  ࠧ  饭    樮
⥬,  믮 ᨬ   㣠.
    ਬ,  ,  믮騩    ணࠬ, ਢ  㭪
1.4, ᪠  fork, ⮡ த  .    ,
㥬  ஦ ᮬ, 砥 祭  襭 樨
fork, ࠢ 0,  ⨢  execl,   믮  ணࠬ
copy  (㭮 1.3).  execl 㦠 䠩 "copy",  ।-
⥫쭮 室  ⥪饬 ⠫,  ᭮ ࠭⢮  ஦
  ᪠ ணࠬ  ࠬࠬ, 祭묨  짮⥫. 
砥 ᯥ譮 믮 樨 execl ࠢ  맢訩  
 頥, ᪮  믮   ᭮ ࠭⢥
(஡    ⮬   7).  ६, , ⨢訩 
fork (த⥫᪨ ), 砥  㫥  祭    襭
樨, 뢠  wait,  ਮ⠭  믮 
 ,    믮 ணࠬ copy,  蠥 (
ணࠬ  室    楤, ᫥ ன ᯮ
ணࠬ  ⠭  ⥪  ,  砥   樨).
ਬ, ᫨ ᯮ塞 ணࠬ 뢠 run, 짮⥫  ᪠
 ᫥騬 ࠧ:

    +------------------------------------------------------------+
    | main(argc,argv)                                            |
    |      int argc;                                             |
    |      char *argv[];                                         |
    | {                                                          |
    | /* ।ᬮ७ 2 㬥: 室 䠩   䠩 */|
    |      if (fork() == 0)                                      |
    |            execl("copy","copy",argv[1],argv[2],0);         |
    |      wait((int *)0)                                        |
    |      printf("copy done\n");                                |
    | }                                                          |
    +------------------------------------------------------------+

    㭮  1.4. ணࠬ ஦  , 믮饣 -
                   䠩


    run oldfile newfile

 믮 ஢ 䠩     "oldfile"    䠩    
"newfile"    뢮  ᮮ饭.    ணࠬ    
ணࠬ "copy",     ᭮ 饭    樮
⥬, ࠢ騥 믮 ᮢ: fork, exec, wait  exit.
      ᯮ짮  饭  樮 ⥬  
짮⥫ ᮧ ணࠬ, 믮騥 ᫮ ⢨,   ᫥-
⢨,  樮 ⥬ UNIX  砥  ᥡ  㭪樨,  -

                                     14

騥   ""  㣨 ⥬.  㭪樨,  ।  -
  ।,  ⥬ UNIX    ணࠬ  짮⥫᪮
஢.    ࠪ ਬ஬  ணࠬ  㦨 -
  shell,   筮  짮⥫ ᫥
室  ⥬. Shell  ࢮ ᫮  ப   
:     ,  ⮬ ᫥    fork (த 
)  exec (믮 ஦ ), ᠬ   樨
  ,  ⠫ ᫮   ப ࠪ  ࠬ
.
    Shell  ࠡ뢠    ⨯. -,  ⢥  -
   㪠  ᯮ塞 䠩  ꥪ⭮ , 祭-
  १ 樨 室 ⥪ ணࠬ  (ਬ,  ணࠬ
 몥 ). -,       䠩, -
ঠ饣     ப, ࠡ뢠 shell'. , 
  ७  몠 shell ( ⫨稥   ᯮ塞  䠩-
). 稥 ७   shell 몮 ணࠬ஢  -
  㭪  ;   shell 砥 -
  ࣠樨  横 (for-in-do-done  while-do-done),  믮
 ᫮ (if-then-else-fi),  롮,     ⥪饣
    ⠫ (cd)   㣨. ⠪ shell' ᪠
ࠢ  ࠧ殬  ࠡ ࠬ஢. 짮⥫, ᪠騬  -
,  室 ,  ⨯  .
        shell     㪠  ⠫-
,       짮⥫,  맢  shell.  Shell
筮 ᯮ  ᨭ஭,   襭 믮 -
 ०, 祬  ᫥  ப.   , ᪠
 ᨭ஭ ᯮ,  ।  ப 뢠  -
,     襭 믮 ।饩 .  -
, 믮塞 ᨭ஭, ,   믮  䮭 㣨 -
. ਬ,  

    who

뢠 믮  ⥬  ணࠬ,  ࠭饩      䠩
/bin/who (****)  ⢫饩 뢮 ᯨ᪠ 짮⥫,  -
  騩  ࠡ  ⥬.   who  믮,
    shell   襭  믮  ⮫쪮 ⥬
訢  짮⥫ ᫥ . ᫨   

    who &

⥬ 믮 ணࠬ who  䮭  shell ⮢  ਭ ᫥-
 .
     । 믮    ⥬  UNIX  砥  ⥪騩
⠫.  騩   ⠫  砫 ⠫,  -
ண ᮥ  ᥬ  ⥩ ᪠,    稭  
  . 짮⥫   ७  shell' cd
( ⠫)  ६饭  ॢ 䠩 ⥬      ᬥ
⥪饣 ⠫.  ப

    cd /usr/src/uts

 ⥪騬 ⠫ "/usr/src/uts".  ப

    cd ../..

---------------------------
(****)  ⠫ "/bin" ᮤন 設⢮ 室   筮 -
         ᫮ ⠫,           
       shell.
                                     15

  ⥪騬  ⠫,     設 ""   (୥
⠫): ࠬ ".." ⭮  ⠫, 饬 த⥫᪨  
⥪饣.

    ᪮  shell  짮⥫᪮ ணࠬ   室  -
⠢  樮 ⥬,   ஢      -
  ᫮  ᯫ樨. ਬ,    ୠ
(뢠 ⠪    ᮧ⥫, ⨢ ୠ),  饣  
ᨨ  V ⠭⭮ ⥬,  ᯮ짮   , -
稢騩 ࠡ 堭  ਨ   騩 
୮  ⮫쪮  ᯮ짮 .      
    ᯮ짮   ஬ shell  ࠭祭묨
ﬨ, 騬 ।饩 ᨥ 筮 shell'. ⥬ 
ࠡ  ᪮쪨 묨  ࠬ  ६.  짮⥫
   ᪠ ६ ⢮ ᮢ,   
᢮ ।  ᪨ ஦      ᨭ஭஢
  믮.     ᯥ稢   
ணࠬ   ।, ⠢ ।  믮  ᮢ.
 ਢ⥫쭮 shell'  襩 ⥯ ।  -
ﬨ   몠 ணࠬ஢   ﬨ  ࠡ⪥ 㬥-
⮢,   ࠧ ᭮  業  ।  믮
ᮢ,  ࠢ  ன    ⥬    
shell. 㣨  ᮡ shell' 室   ࠬ  饩  
(஡ ᠭ shell' .  [Bourne 78]).



        1.3.3  樮 

      㦥 ਫ ࠭, 楯 ࠧࠡ⪨ ⥬ UNIX 砫
 ஥ 樮 ⥬  ⮢,    짮-
⥫ ᮧ 訥 ணࠬ 㫨, 㯠騥  ⢥ -
樮   ᮧ  ᫮ ணࠬ.    ⠪  -
⮢,        ⠫ 짮⥫  ࠡ  
஬ shell,   ७祭 -뢮.  
᫮,      ६ 䠩:    䠩 ⠭-
 , 뢠  䠩 ⠭⭮ 뢮    뢮  ᮮ饭  
訡  ⠭ 䠩 訡. , ᪠  ନ, 筮
ᯮ ନ     䠩,   䠩 -
ᨬ  㣨   "७祭". ਬ, 

    ls

뢮 ᯨ᮪  䠩 ⥪饣 ⠫  ன⢮ ( 䠩) ⠭-
⭮ 뢮,  

    ls > output

७砥  뢮 ⮪  ⠭⭮ 뢮  䠩 "output"  ⥪-
饬 ⠫, ᯮ 㯮 ⥬ 맮  creat.    
ࠧ, 

    mail mjb < letter

뢠  (  ⥬ 맮 open) 䠩 "letter"  ⢥ 䠩
⠭⭮   뫠  ᮤন 짮⥫    "mjb".
   ७ ६  ,  뢮, , ਬ, 
 ப:


                                     16

    nroff -mm < doc1 > doc1.out 2> errors

 ணࠬ ଠ஢ nroff ⠥  䠩 doc1,  ⢥ 䠩-
 ⠭⭮ 뢮  䠩 doc1.out  뢮 ᮮ饭  訡 
䠩 errors ("2>" 砥  ७祭  뢮,  ।砢襣  
䠩    ਯ஬  2,  ᮮ⢥ ⠭⭮ 䠩 訡).
ணࠬ ls, mail  nroff  ,  䠩 ࠭   ⢥  䠩
⠭⭮  ,  ⠭⭮ 뢮   ᮮ饭  訡; -
  shell ᠬ ᯮ ᨬ "<", ">"  "2>"  砥 
ᮮ⢥⢨   㪠 䠩  ⠭⭮ , ⠭⭮ 뢮-
   ᮮ饭  訡 ।⢥ । ᪮ ᮢ.
     樮 ⮬  , 堭,  ᯥ稢-
騩 ଠ樮   ᠬ, 믮  易  -
ﬨ  ⥭    .     ७ 뢮 ⮪ 
⠭⭮ 뢮    ⥭   㣨 ᠬ,  ७-
稢訬   ᢮ ⠭ . , 뫠   묨
ᠬ,    室묨   ᮢ.   ⠪ 
 ७ ᢮ 뢮 ⮪  ⠪ ,  ᨬ   -
  ணࠬ.  ᭮, ⠪     㪠 砥, ᠬ
 室 ,  ⨯  䠩  ᯮ    ⢥  䠩
⠭⭮ 뢮;  믮    ⮣, 㤥  䠩 ⠭-
⭮  뢮    䠩,   ன⢮.   ஥
  ᫮ ணࠬ   樮  ⮢  襣  ࠧ
ணࠬ  ᯮ   ७祭 -뢮  ᡮ-
   ᮥ ⤥ ⥩.  ⢨⥫쭮, ⠪ ⨫ ணࠬ-
 室 প  ⥬,  祬  ணࠬ   -
   騬 ணࠬ.
    ਬ, ணࠬ grep ந  ⥪   䠩 (-
 ࠬࠬ ணࠬ)  ᫥饬 ࠧ:

    grep main a.c b.c c.c

 "main" - ப,  ன ந  䠩 a.c, b.c  c.c 
뤠祩   䠩 ⠭⭮ 뢮  ப,    ᮤন. -
ন 뢮 䠩   ᫥騬:

    a.c: main(argc,argv)
    c.c: /* here is the main loop in the program */
    c.c: main()

ணࠬ wc  易⥫ ࠬ஬ -l 뢠 ᫮ ப  䠩
⠭⭮ .  ப

    grep main a.c b.c c.c | wc -l

맮  ᫠ ப  㪠 䠩,  㤥 㦥  -
ப  "main";  뢮  ⮪  grep 㯨 ।⢥  室
 wc.  ।饣 ਬ १ 㤥 ⠪:
                                   3

ᯮ짮    㦭 ᮧ ६ 䠩.


        1.4   

     㭪 1.1 ஢  樮 ⥬  ࠦ  ।-
   ஢ ਪ ணࠬ 짮⥫. 믮 ࠧ -
 樨  ᠬ 짮⥫᪨ ᮢ,  ᯥ稢
㭪樮஢ 짮⥫᪮ 䥩, ᠭ . ।  㭪-

                                     17

権   ⬥:
* ࠢ 믮 ᮢ ।⢮  ᮧ,  襭  
  ਮ⠭  ࣠樨 ⢨  .
*  ஢  ।  ।⠢ 믮騬 ᠬ ६
  業ࠫ쭮  (ᯥਧ).  ࠡ  業ࠫ
  ஬  ० ࠧ ६: 業ࠫ  (*****) -
   ,  襭 뢠 ஬  ६ 
  ਮ⠭   ⨢ 믮 㣮 .  -
    ᪠ ਮ⠭ .
* 뤥 믮塞  ⨢ .  樮 -
  ⥬    ᠬ  ᮢ⭮ ᯮ짮 ⪨ ᭮
  ࠭⢠  । ᫮,   ⮬ ᭮ ࠭-
  ⢮, 뤥 ,  ⥫⢠ . ᫨ ⥬  ॡ
  ᢮  ,    ᢮ , ६ 㦠  
  譨
  騥 ன⢠,  뢠 ன⢠ 㧪. ᫨ 
  㦠   ன⢠ 㧪 楫, ⠪ ॠ -
   UNIX 뢠 ⥬  ᢮ (窮); ᫨   ன-
   㧪 뢮 ࠭ , ⠪ ⥬ 뢠 ⥬ 
  饭 ࠭.
* 뤥 譥   楫 ᯥ祭 䥪⨢ ࠭  -
  樨    롮ઠ    짮⥫.    ॠ樨 ⮩
  㭪樨 ᮧ 䠩 ⥬.  뤥    -
  ⥫᪨ 䠩,  ᯮ㥬 ,  䠩-
   ⥬  ଥ, 㯭  ,  頥  짮⥫᪨
  䠩  ᠭ樮஢ 㯠.
* ࠢ 㯮 ᮢ  ਩ ன⢠, ⠪  ନ-
  ,  ன⢠, ᪮  ⥢ 㤮.
    믮  ஬ ᢮ 㭪権 쭮 祢. ਬ,  㧭,
  䠩   䠩   ன⢮,    뢠  
ࠧ稥    짮⥫᪨  ᮢ.   , ଠ ଠ
䠩  ७ ࠭, 頥 ७ ଠ   짮⥫-
᪨ ᮢ,   ଠ஢ ⮪ ⮢. , 
ॠ   室 㭪権  ᯥ祭 믮 ᮢ -
⥫᪮ ஢,  ᪫祭 㭪権,    ॠ
 ᠬ 짮⥫᪮ ஢. ਬ,  믮 ⢨, -
 shell'   :    shell  -
    ନ , ᪨ ஦ , ᨭ஭-
஢ 믮 ᮢ, 뢠   ॠᮢ뢠  --
.  짮⥫    ࠧࠡ뢠  ᢮  ᨨ  
shell  ⥬, ⮡ ਢ ࠡ ।  ᮮ⢥⢨  ᢮  ॡ-
ﬨ,    ࠣ 㣨 짮⥫.  ணࠬ  ⥬
 㣠 ,   ⠭  shell.


        1.5   

    믮 짮⥫᪨ ᮢ  ⥬ UNIX  ⢫  
  ஢:  ஢  짮⥫  ஢ .   ந
饭  樮 ⥬, ० 믮  ४砥  
०   (짮⥫᪮)  ० : 樮 ⥬ -
 㦨  짮⥫,   訡  砥 㤠筮
襭 樨.  ᫨ 짮⥫  㦤  -  -
  㣠  樮  ⥬    頥    ᠬ,


--------------------------
(*****)     12 ᬠਢ  ⥬;  ⮣ 
        㤥   ୮ .

                                     18

⥬  믮  樨, 易  짮⥫᪨ -
ᮬ, ࠡ뢠 뢠,  ,  ࠢ  ।
  .. 設⢮ ᫨⥫ ⥬ ࠧࠧ ⥪ (
ᮮ⢥騥  樮 ⥬) ন 襥 ᫮ ஢,
祬  㪠  ,    㦥  ०, ०   ० ,
 筮  ⥬ UNIX.
    ᭮ ࠧ  ⨬  ०:
*   ०     ⮫쪮  ᢮ ᮡ⢥ -
    ,        ( 㣨  ᮢ).
      ०  ᠬ 㦥 㯭  ࠭⢠  
  짮⥫. ਬ, 㠫쭮 ᭮ ࠭⢮   
     , 㯭 ⮫쪮  ० ,   , -
  㯭   ०.
*   設   ਢ஢묨  뢠 -
   訡  ⪥  ᯮ짮  ० .  ਬ,  
  設 몥   , ࠢ ॣ஬ ﭨ -
  ; ᠬ, 믮騬 


                                   

                           A       B       C       D
                       +-------+-------+-------+-------+
              |      |       |       |      |
                       +-------+-------+-------+-------+
            |       |      |      |       |
                       +-------+-------+-------+-------+

            㭮 1.5.   ०  믮


  ० ,  㯭.
      ,  ⢨  ன 뢠  ନ
०   ०   ⥪     짮⥫᪨
ணࠬ, 믮   ०. 樮 ⥬ ࠭ ७-
     , 믮饬  ⥬.  㭪 1.5 -
  ࠧ:    A, B, C   D,  ᯮ  
ਧ⠫쭮  ,   ।⢠  ࠧ  ० -
, ᯮ묨  ⨪.
    ᬮ  ,  ⥬ 㭪樮     ०,  
      짮⥫᪮  .    -
ᮡ ᮢ㯭 ᮢ, 믮 ࠫ쭮  짮⥫᪨-
,  ᠬ 㯠 ⠢    짮⥫᪮  .
  뢮  㤥 ᪮॥ ⭮  "", ।饬 ,
  "", ந饬 ࠧ 樨,    㤥  ,  
,  믮塞  ० , ।   ந ᮮ-
騥 樨. ਬ,   shell 뢠  
⮪   ନ     樮 ⥬.  樮-
 ⥬, 㯠    shell, ࠢ 㭪樮஢
ନ  ।  ᨬ  shell.  Shell  室  
० ,  ⮪ ᨬ,  짮⥫  믮-
   ᫥⥫쭮 ⢨,   ॡ 믮-
  㣨 ⥬ 権.


        1.5.1 뢠  ᮡ 樨

    ⥬ UNIX  ⠪ ன⢠,    譨  ன⢠  -
-뢮  ⥬ , ᨭ஭ 뢠 ࠡ 業ࠫ쭮 -

                                     19

.    祭  ᨣ 뢠  樮 ⥬ ࠭
᢮ ⥪騩 ⥪ (訩 ࠧ 믮塞 ), ⠭
稭 뢠  ࠡ뢠 뢠. ᫥ ⮣,  뢠 -
 ࠡ⠭ ஬, ࢠ ⥪ ⠭  ࠡ த
⠪,   祣  稫. ன⢠ 筮 ਯ뢠 ਮ-
  ᮮ⢥⢨  । ࠡ⪨ 뢠.   ࠡ-
 뢠  뢠  ਮ   㦨 뢠-
   ਮ⮬  ६ ࠡ⪨ 뢠   ᮪ ਮ-
⮬.
    ᮡ 樨 易   ஢ ᮡ⨩, -
 ᮬ, ⠪  ⨬ ,   ਢ஢-
 ,     ..  ⫨  뢠,  -
뢠 ᮡﬨ, 譨  ⭮襭  . ᮡ 樨 -
 אַ "।" 믮 ,  ⥬, ࠡ⠢ ᮡ -
,  ⠥  १  ; ⠥,  뢠 
 믮  ,  ⮬ ⥬ ᫥  ࠡ⪨  뢠
த  믮   㦥 稭  ᫥饩 .  -
⪨ 뢠  ᮡ 権  ⥬ UNIX ᯮ    
堭.


        1.5.2 ஢ 뢠 

      易 ।०  뢠  ६ -
᪨ ⢨,   砥 뢠  ଠ.  -
,    ६  ࠡ⪨  ᯨ᪠  㪠⥫ﬨ  뢠 
᪠   ⥫쭮, ..  ࠡ⪥ 뢠    
㪠⥫,      㢨  ਬ  ᫥饩 . 筮 
 ਢ஢ , ⠭ ஢ 뢠  
  ᫮  ﭨ  . ⠭ ஢ 뢠  ।
祭 ᥪ 뢠 ⮣    ஢, ࠧ ࠡ-
 ⮫쪮 뢠   ᮪ ਮ⮬.   㭪  1.6  
᫥⥫쭮  ஢  뢠.  ᫨   뢠 
᪠,  ⮬ 砥    ⠫ 뢠, ஬ 뢠-
  ᮢ  設 ᡮ.

     +------------------------------+           ^
     |        設 ᡮ         |           |
     +------------------------------+           |
     |        ⥬         |    ᮪ ਮ
     +------------------------------+           |
     |                          |           |
     +------------------------------+           |
     |     ⥢ 㤮     |           |
     +------------------------------+           |
     |          ନ           |     ਮ
     +------------------------------+           |
     |    ணࠬ 뢠    |           |
     +------------------------------+           v

            㭮 1.6. ⠭ ஢ 뢠



        1.5.3 । 

     ﭭ ᯮ  ⨢ ,   믮騬-
    ᮬ (  ,  襩 ).    
樨 ணࠬ-  ᫥⥫쭮 ᮢ, -

                                     20

 ᠬ ६  ଠ樮 ,  ⠪ ᠬ -
権    㭪権.     㠫쭮 設 ⠪,
᫮  䨧᪮ 設  㤥 믮 ࠫ쭮  ࠭᫨㥬
  㣠 ணࠬ.
     ணࠬ ᪠  믮,  뤥    
⨢ ,  ⮬ ᮢ 㠫 ᮢ, ᣥ஢
஬,  䨧᪨ ᠬ ᮢᥬ 易⥫쭮. , -
  묨 ।⢠, ࠭᫨ 㠫    䨧᪨,
.. ⮡ࠦ , ᣥ஢ ஬,  䨧᪨, 設
.   ⮡ࠦ ࠥ    ।, -
⮬  ⥬ UNIX, 騥 ,   設-ᨬ묨.
ਬ, ⤥ ᫨⥫ 設  ᯥ樠쭮 㤮 
窨  㦥 ࠭ .  6  9 饭  ஡
ᬮ७ ᮢ, 易  । ,  ᫥  
ᮮ⭮襭  묨 ।⢠.


        1.6 

     ⮩  ᠭ   ⥬ UNIX, ⭮襭 -
 ᠬ, 믮騬  ०    ० ,  ⠪ -
⭠ । 㭪樮஢  樮 ⥬.  믮-
  ०    ० ,  ஬   㣠 -
⥬     饭  樮 ⥬. ⥪
⥬ ন ⠪ ⨫ ணࠬ஢,  ஬   
ணࠬ,  믮 ⮫쪮 ⤥ 㭪樨,  , ⠢ -
 ᫮ ணࠬ, ᯮ騥 堭    ७祭  -
-뢮.
    饭   樮 ⥬  ᠬ ந -
樨,    믮.    ࠡ⪥  -
  樮 ⥬ ⢫ 騥  樨, ࠢ
஢ ᮢ, ।   ⮩ ᮢ   -
⨢  ,  㦨  뢠, ࠢ 䠩  ன⢠ 
ࠡ뢠 ᮡ 樨, 騥  ⥬.  㭪樨   ⥬
UNIX ७  祭  㭪樨, 騥  㣨 -
 ⥬, ᪮  饭  ⥬  ᠬ 믮-
   室 樨  짮⥫᪮ ஢.  ᫥饩 
ᮤন  ⠫쭠 ଠ  , 뢠  ⥪  
    ᭮ ,  ᯮ  ᠭ 
㭪樮஢.




















                                     21


     2

             



      ।饩     ᤥ ⮫쪮 孮  ᮡ⥩
樮 । UNIX.  ⮩  ᭮  㤥   -
樮  ⥬,    ⥪     -
 ᭮   , ⢥   ᥣ ᫥-
饣 ਠ .


        2.1    UNI

     㦥 ࠭ 뫮 祭 (. [Christian  83],  .239),    ⥬
UNIX ᮧ  ⮣,  䠩 ⥬  ""    -
ᮢ    "".  魮, 䠩  ,  業ࠫ묨
ﬨ  樮 ⥬  UNIX.    㭪  2.1  ।⠢
-奬  ⥬, ࠦ ⠢ 㫥,   ⮨ ,
   裡   㣮.  ⭮,   ᫥ ࠦ 䠩-
 ⥬,  ࠢ ⥬ ࠢ ᠬ,    -
  .  奬  ᪮ ।⠢  ,   -
⥫쭮     ⪫  , ᪮ ⤥-
 㫨 뢠 ७ ⢨  ஭ 㣨 㫥.
    奬  㭪 2.1   ஢: ஢ 짮⥫, ஢ -
  ஢ . 饭  樮 ⥬  ⥪  -
⠢  ࠭  짮⥫᪨ ணࠬ  ஬, ஢ 
㭪 1.1. 饭  樮 ⥬ 룫 ⠪ ,    
맮 㭪権  ணࠬ  몥 ,  ⥪ ⠭ ᮮ⢥-
⢨  ⨬ 맮 㭪権  묨 ⥬묨 -
,  祬  ஡ .   6.  ⮬ ணࠬ  ᥬ -
   樮  ⥬  ।⢥,    ᯮ짮
⥪  ⥬ 맮. ணࠬ    㣨 -
, ⠪  ⥪ ⠭ ணࠬ -뢮, ⨣ ⥬
ᠬ   ᯮ짮 ⥬ .  ⮣  ६ -
樨 ⥪ 뢠  ணࠬ  筮   ணࠬ
짮⥫.   ந㥬    ਬ.

     㭪 ᮢ㯭 饭  樮 ⥬ ࠧ  
饭,    ⥬ ࠢ 䠩,    ,
     ⥬ ࠢ ᠬ.  -
⥬ ࠢ 䠩,  ࠧ頥    䠩,  ࠢ  ᢮
࠭⢮, 㯮  䠩  ᪮   짮⥫. -
    ⥬ ࠢ 䠩, ᯮ  ⮬ -
㯭 ᯥ樠 饭    樮  ⥬, ⠪    open
( ⮣, ⮡  䠩  ⥭  ),close, read, write, stat
( ਡ 䠩), chown (   ଠ樥  
䠩)  chmod ( ࠢ 㯠  䠩).   㣨 樨 -
ਢ   5.
    ⥬  ࠢ  䠩  頥  ,  ࠭ 
䠩, ᯮ  堭, ࠢ騩 ⮪   ஬ 
ன⢠ 譥 .  堭,    ࠩࠬ
ன -뢮 , 樨 ।     ⭮.
ࠩ ன  ⠪ ﬨ  ⠢ ,  ࠢ-
 ࠡ⮩ ਩ ன. ன⢠ -뢮  ⭮



                                     22

                ணࠬ 짮⥫
                          ^
                          |         +----------------------+
       窠 -        |         |      ⥪      |
       祭   ---------|-------  +----------------------+
                    -     |           -         ^
஢ 짮⥫   -  |                 -   |
--------------------------|---------------------|-----------------
஢               v                     v
           +---------------------------------------------------+
           |      ^  饭  樮 ⥬  ^       |
           +------+------------------------------------+-------+
                  |                                    |
+-----------------+---------------+   +----------------+---------+
|                 v               |   |                v         |
|                                 |   |                          |
|       ⥬ ࠢ-       |   |              ............|
|            䠩           |   |              .  - .|
|                             <---+-+ |              . ⢨ .|
|                                 | | |              . ᮢ.|
|       ^              ^          | | |  ⥬  ............|
|       |              |          | | |              ............|
+-------+--------------+----------+ | |              . ஢-.|
        |              v            +-+> ࠢ  .    騪   .|
        |       +--------------+      |              ............|
        |       |  ᢥ- |      |              ............|
        |       | ⨢  |      |  ᠬ  . ।-.|
        |       |  () |      |              .     .|
        |       +--------------+      |              .    .|
        |              ^              |       ^      ............|
        |              |              |       |                  |
        |              v              +-------+------------------+
+-------+----------------------+              |
|       v        .             |              |
|     ᨬ     .         |              |
|                .             |              |
+------------------------------+              |
|                              |              |
|      ࠩ ன      |              |
|              ^               |              |
+--------------+---------------+              |
               |                              |
+--------------+------------------------------+------------------+
|              v      ஫      v                  |
+----------------------------------------------------------------+
஢ 
------------------------------------------------------------------   ஢

+----------------------------------------------------------------+
|              孨᪨ ।⢠ ()                 |
+----------------------------------------------------------------+

        㭮 2.1. -奬  樮 ⥬


 ⨯  ன  ந쭮 롮મ;  ࠩ ஥
⠪ ࠧ,   ⠫  ⥬ ਭ  ன-
⢠   騥 ன⢠  ந쭮 롮મ. ਬ, ࠩ
饣 ன⢠  ⭮    ⥬ ਭ-

                                     23

  ன⢮  饥  ன⢮    ந쭮  롮મ.
⥬  ࠢ 䠩 ⠪ ।⢥   ࠩ-
ࠬ ன "஢" -뢮,  ⥫⢠  -
୮  堭.   ன⢠ ஢ -뢮, 
㥬 ன⢠ ᨬ쭮  -뢮  (⥪⮢묨),  ⭮
ன⢠, ⫨  ன -뢮 .
    ⥬  ࠢ  ᠬ  ⢥砥  ᨭ஭ ᮢ,
⢨ ᮢ, ।      ஢  믮
ᮢ.  ⥬ ࠢ 䠩  ⥬ ࠢ ᠬ
  ᮡ,  䠩 㦠      믮
(.   7): ⥬ ࠢ ᠬ ⠥   ᯮ塞
䠩 । ⥬,   믮.
    ਬࠬ 饭  樮 ⥬, ᯮ㥬   ࠢ
ᠬ,    㦨 fork (ᮧ  ), exec (
ࠧ ணࠬ  믮塞 ), exit (襭  믮  -
),  wait (ᨭ஭ த 믮 ᭮   -
⮬ 室  ஦ ), brk  (ࠢ  ࠧ஬  ,
뤥 )  signal (ࠢ ॠ樥   
࠮न ᮡ⨩).  7 饭 ᬮ७   㣨 -
⥬ 맮.
     ।  ஫ 뤥  ᠬ. -
    -  ⥬ 뢠 ⮪  䨧᪮  
᪠  ᮢ,  뫠    ᭮    譥
    ⥬, ⮡     믮.   9
뢠  ᯮᮡ ࠢ । : 㧪  (-
)    饭 ࠭. ணࠬ 窨  뢠 ஢騪,
..  "" 뤥  ᠬ  뢠 ﭨ  ࠡ-
 ஢騪 業ࠫ쭮 .   쭥襬   㤥  -
 뫠     "ணࠬ 窨", ⮡  ⠭
 ஢騪 業ࠫ쭮 .
      "஢騪"  ।   ᠬ ६ 業ࠫ쭮
.   । 믮 ᮢ    ,  
  ஢쭮    ᢮  業ࠫ ,  뤥
.-. ,    ,   ⥬  㧨  ᫥  ⮣,
   ६ 믮 ॢ ࠭ ।  ६. -
஢騪 롨ࠥ  믮 ⮢     訬  ਮ-
⮬;  믮 ।饣  (ਮ⠭) 㤥 த
⮣,   ਮ 㤥 訬 । ਮ⮢  ⮢  
  ᮢ.  ᪮쪮  ⢨ ᮢ 
ᮡ,  ᨭ஭  ᨣ  ᮡ  ᨭ஭  -
饭ﬨ.
    ,  ஫ ⢥砥  ࠡ 뢠   
 設.  ன⢠,  ᪨  ନ,   뢠  ࠡ
業ࠫ쭮    ६ 믮 .  ⮬  ⥬
᫥ ࠡ⪨ 뢠   믮 ࢠ  -
. 뢠 ࠡ뢠  ᠬ ᠬ,  ᯥ樠묨 㭪ﬨ
 ⥬, ᫥묨  ⥪ 믮塞 .


        2.2     

        ࠧ    ᭮ ଠ樮 ,
ᯮ㥬 ஬ ⥬,    ஡  뢠  㭪樮஢
㫥 ,   㭪 2.1.


        2.2.1  ᮡ⥩ ⥬ ࠢ 䠩

    ७  ।⠢  䠩 뢠  ,  ᮤন

                                     24

ᠭ ࠧ饭 ଠ樨 䠩  ᪥   ଠ, ⠪ 
 䠩, ࠢ 㯠   䠩    ६  㯠.  ନ  ""
(inode)  ப ᯮ    ⥬ UNIX.  䠩 
 ,    易  ᪮쪨 ,   ࠦ-
  .    㪠⥫.    頥  
䠩   ,  ⥬   ।   
䠩, ஢ ࠢ   ᬮ 室   ᪠ ⠫,
   殢 頥  䠩. ਬ, ᫨   頥
 ⥬:

    open("/fs2/mjb/rje/sourcefile", 1);

  ⥬  頥     䠩 "/fs2/mjb/rje/sourcefile". ᫨
 ᮧ  䠩,  ᢠ ⮬ 䠩 ᯮ㥬  -
.   ࠭  䠩 ⥬ (    㢨),  
ࠡ⪥ 䠩     ⠡ ᮢ  ⨢ .
     ন   ଠ樮  ,  ⠡  䠩  
짮⥫  ⠡  ਯ஢ 䠩.  䠩 㯠 -
쭮 ன ,  짮⥫᪠ ⠡ ਯ஢ 䠩 뤥-
  . ᫨  뢠  ᮧ 䠩,  뤥 
 ⠡ , ᯮ騩  ᮬ 䠩.    
    -  짮⥫᪮ ⠡ ਯ஢ 䠩,  ⠡
䠩   ⠡ ᮢ - ࠭ ଠ  ﭨ 䠩   -
 짮⥫  .  ⠡ 䠩 ࠭ ᬥ饭     -
砫  䠩  ⮣ , 㤠 筥 믮 ᫥  -
⥫ read  write,

    짮⥫᪠
    ⠡ ਯ-   ஢ 䠩 䠩 ᮢ
      +---------+             +-----+             +-----+
      |       - + - +         |     |             |     |
      +---------+             |     |             |     |
      |       - + + |         |     |             |     |
      +---------+             |     |             +-----+
      |       - ++| + - - - ->+-----+   + - - - ->|     |
      +---------+ + - - - - ->|   - + - +         +-----+
      |         ||            +-----+             |     |
      |         |+ - +        |     |             |     |
      |         |    |        +-----+   + - - - ->|     |
      |         |    +- - - ->|   - + - +         +-----+
      |         |             +-----+             |     |
      |         |             |     |             |     |
      +---------+             +-----+             +-----+

    㭮 2.2.  䠩, ਯ஢ 䠩  ᮢ


 ⠪ ଠ  ࠢ 㯠  뢠 .    -
ਯ஢  䠩        䠩.  㭪
2.2   ⠡  裡  .  ⥬  open (-
)  creat (ᮧ)  頥 ਯ 䠩, ஬ ᮮ⢥-
 㪠⥫  ⠡ ਯ஢ 䠩.  믮 権  read
()   write ()  ᯮ ਯ 䠩  室  ⠡-
 ਯ஢ , ᫥ 㪠⥫  ⠡ 䠩   ⠡ -
ᮢ, 室 ଠ  䠩.  ஡  ଠ樮 
ᬠਢ   4  5.  筮 ᪠,  ᯮ짮
 ⠡ ᯥ稢 ࠧ ⥯ ࠧ 㯠  䠩.
     䠩  ⠫ ࠭  ⥬  UNIX    ன⢠  -
-뢮 , ⠪     ᪨. ᪮ 

                                     25

஥ ࠧ稥  ६ 㯠  ⨬ ன⢠,  ⠭ -
⥬ UNIX   ࠧ 䠩 ⥬.   ᪮ ⮬-
⨧஢ ࠡ稥  ⠭ 騬 砥,  䠩  ᯮ
  㤠  ⥬,   ன 㤥 ⢫ १  (.
 13).  , ⥬  ,  ᫥饬 ⥪  ࠧ㬥
ᯮ짮  ᪮.   ⥬   ᪮쪮 䨧᪨ ᪮, 
    ࠧ    䠩  ⥬.  
᪠   ᪮쪮 䠩 ⥬ 砥  ࠢ -
묨 묨.  ᪮ ஢     䠩묨  ⥬,
    ᪠,  ⮬  ⥬ ࠪ  ᪮ ன-
, 㥬 ஬. ८ࠧ ᮢ ᪮  ன⢠
(䠩  ⥬)   䨧᪮ ன⢠ (᪠)  ⭮ 믮-
 ᪮ ࠩ஬. ନ "ன⢮"  ⮩  ᯮ 
祭 ᪮ ன⢠, ஬ ᯥ樠쭮 ७ 砥.
     ⥬ ⮨  ᫥⥫쭮 ᪨   
512,  1024, 2048  㣮 ᫠ , ⭮ 512,  ᨬ  ॠ-
樨 ⥬.  ᪮    䠩 ⥬ -
ﭥ,   ஢  ࠧ 䠩 ⥬    䨣-
樨. ᯮ짮 ᪨  讣 ࠧ 㢥稢 ᪮
।   ᪮  , ᪮  ᬮ । -
  ଠ樨     ᪮ ,  ᮪頥 ⢮ த-
⥫ 権. ਬ, ⥭ 1   ᪠    -
⢫ ॥, 祬 ⥭ 512   . , ᫨ ࠧ ᪮-
  ᫨誮 ,  ꥬ   㬥,    㤥
    5.   ନ ""  ⮩  㤥 ᯮ짮-
  祭 ᪮ ,  ⮬ ࠧ㬥  -
  ࠧ஬ 1 , ஬ ᯥ樠쭮 ७ 砥.

    +---------+---------+-------------------+-----------------+
    |         |         |                   |                 |
    +---------+---------+-------------------+-----------------+
        㯥- ᯨ᮪ ᮢ ଠ樮 㧪  

               㭮 2.3. ଠ 䠩 ⥬


     ⥬  ᫥  (㭮 2.3).
*   㧪 ᯮ  砫 ࠭⢠, ⢥  䠩-
   ⥬, 筮  ࢮ ᥪ,  ᮤন ணࠬ 砫쭮  -
  㧪,   뢠  設  㧪  樠樨 -
  樮 ⥬.   ᪠ ⥬ ॡ ⮫쪮    -
  㧪,  䠩 ⥬  ᢮ (  ⮩)  -
  .
*  㯥࡫  뢠  ﭨ  䠩  ⥬  -   ࠧ,
  ᪮쪮 䠩    ࠭,  ᯮ  ᢮  -
  ࠭⢮, 㯭  䠩 ⥬,  㣠 ଠ.
* ᮪ ᮢ  䠩 ⥬ ᯮ ᫥  㯥࡫. -
    㪠뢠 ࠧ ᯨ᪠ ᮢ  樨 䠩 -
  ⥬.  樮 ⥬ 頥  ᠬ, ᯮ 㪠⥫
   ᯨ᪥ ᮢ.   ᮢ   ୥  ᮬ  䠩
  ⥬:  ,  ஬ ⢫    ⠫-
    䠩  ⥬ ᫥ 믮 ⥬ 樨 mount (-
  ) (ࠧ 5.14).
* ଠ樮  ᯮ ࠧ ᫥ ᯨ᪠ ᮢ   ᮤঠ
    䠩    ࠢ騥 . ⤥쭮  ଠ樮 
   ਭ   ⮫쪮  䠩  䠩 ⥬.




                                     26

        2.2.2 

      ⮬  ࠧ  ᬮਬ  ஡ ⥬ ࠢ -
ᠬ.  ࠧ᭥        -
樮  , ᯮ㥬  ।   . -
⥬  ।⥫  ࠬ ﭨ ᮢ   ࠣ-
 ࠧ , 易  室   ﭨ  㣮.
    ᮬ 뢠 ᫥⥫쭮 権  믮 ணࠬ-
,    ।⠢ ᮡ  ⮢, 㥬 業ࠫ
஬  設 樨 (.. "⥪"),   ⥪ -
.  ⫥,  ६ 믮 ⢮  -
ᮢ,  ᪮    믮   ஬, , ஬ ⮣, ᪮쪮
ᮢ   ࠬ  ணࠬ. 믮   -
砥  筮 ᫥  権,    
  ।  ࠢ   権 㣮 ;  뢠 
뢠 ଠ  ࠧ    ⥪,   㯭    
⥪ 㣨 ᮢ.     㣨 ᠬ 
 ⠫ ஬ ।⢮ 饭  樮 ⥬.
      ࠪ᪮  窨  ७   ⥬ UNIX  ꥪ⮬,
ᮧ  १ 믮 ⥬ 樨 fork.  ,
 ᪫祭 㫥, ஦  १ ᪠  㣨  ᮬ
樨  fork. , ⨢訩  fork, 뢠 த⥫᪨,
  ᮧ  - ஦.     த-
,   த  ᮢ.   ⥬    
      ,  뢠 䨪஬  (PID).
㫥   ᮡ ᮬ,  ᮧ ""  
१  㧪  ⥬;  ᫥ ஦   ( 1)
㫥  ⠭ ᮬ 窨.  1,   -
 init,  ।  㣮   ⥬  易  -
 ᮬ ᮡ ࠧ, 뢠   7.
    짮⥫, ࠭᫨ 室 ⥪ ணࠬ,  ᮧ  ᯮ塞
䠩,  ⮨  ᪮쪨 ⥩:
    *  "", 뢠 ਡ 䠩,
    * ⥪ ணࠬ,
    * ।⠢  設 몥 ,    砫
祭    ᪥  ணࠬ    믮,  㪠  , ᪮쪮
࠭⢠   ⥬ 뤥    樠஢  ,
⠪ 뢠 bss (*) ( ⠭   0   ᪠),
    * 㣨 ᥪ権, ⠪  ଠ ᨬ᪨ ⠡.
      ணࠬ,  ਢ    㭪  1.3, ⥪ ᯮ塞 䠩
।⠢ ᮡ ᣥ஢   㭪権 main  copy,  ।-
  ⭮ ६ version (⠢  ணࠬ    ⮣,
⮡  ᫥   । ),   ।
- ᨢ buffer.   몠   ⥬ ᨨ V ᮧ ⤥쭮
⥪⮢ ᥪ  㬮砭,   ᪫砥  祭 -
権 ணࠬ   ᥪ ,   ।  ⥬.
     㦠 ᯮ塞 䠩    믮 ⥬ -
樨  exec,  ⮬ 㦥  ⮨  襩    -
⥩, ⠪ 뢠 ⥩: ⥪,   ⥪.  ⥪   -
 ᯮ  ᥪﬨ ⥪  bss- ᯮ塞 䠩,  -
  ⥪ ᮧ ⮬᪨   ࠧ ᪨ ⠭
஬ ⥬  ६ 믮. ⥪ ⮨  ᪨ ᥩ  -
樨,  頥    ⥪   맮 㭪樨  ⠫  ⥪ 
 ࠢ  맢 楤;  ᯥ樠  ॣ,  㥬
㪠⥫ 設 ⥪, 뢠 ⥪ 㡨 ⥪.  ⨢樨
砥 ࠬ ।-
------------------------------------------------
(*)  饭 bss  ந宦  ᥬ୮ ᥢ 
設 IBM 7090  ஢뢠  "block started by symbol" (", -
稭騩  ᨬ").
                                     27

 㭪樨,   ६,  ⠪ , 室   -
⠭ ।饩  ⨢樨,  ⮬ ᫥ 祭 稪 
  㪠⥫ 設 ⥪   맮 㭪樨.  ணࠬ 砥

    ⥪             ࠢ             ⥪ 
  +--------------+       㢥祭 ⥪     +------------------+
  |     |              ^             |                  |
  |  ६  |              |             |         ^        |
  | ( )|              |             |         .        |
  |--------------|              |             |         .        |
  |  2|              |             |         .        |
  |--------------|              |             |         .        |
  | |              |             |         .        |
  | ᫥ 맮 |              |             |         .        |
  |    write     |              |             |         .        |
  |--------------|              |             |         .        |
  |ࠬ, -|              |             |         .        |
  |  ।  |              |             |         .        |
  |    write     |              |             |         .        |
  |(new, buffer, |              |             |         v        |
  |    count)    |  3                   |                  |
  +--------------+ call write()       3 +------------------+
  |     |                            |         |
  |  ६  |                            |    ६    |
  |   (count)    |                            |                  |
  |--------------|                            |------------------|
  |  1|                            |    1  |
  |--------------|                            |------------------|
  | |                            |     |
  | ᫥ 맮 |                            |   ᫥ 맮   |
  |     copy     |                            |      func2       |
  |--------------|                            |------------------|
  |ࠬ, -|                            | ࠬ, - |
  |  ।  |                            |  㭪樨 |
  |     copy     |                            |    func2     |
  |  (old, new)  |  2           2 |                  |
  +--------------+ call copy()   call func2() +------------------+
  |     |                            |         |
  |  ६  |                            |    ६    |
  |(fdold, fdnew)|                            |                  |
  |--------------|                            |------------------|
  |  0|                            |    0  |
  |--------------|                            |------------------|
  | |                            |     |
  | ᫥ 맮 |                            |   ᫥ 맮   |
  |     main     |                            |      func1       |
  |--------------|                            |------------------|
  |ࠬ, -|                            | ࠬ, - |
  |  ।  |                            |  㭪樨 |
  |     main     |                            |    func1     |
  | (argc, argv) |  1           1 |                  |
  +--------------+ call main()   call func1() +------------------+

                    0           0
                                䥩
                                     饭  樮 ⥬

     㭮 2.4. ⥪     ணࠬ ஢.


                                     28

᫥⥫쭮 , ࠢ騥 㢥祭 ⥪,   ⥬ -
, ᫨ 㦭,   ⥪.  ணࠬ    㭪  1.3  ࠬ
argc  argv,  ⠪ ६ fdold  fdnew, ᮤঠ騥  맮 㭪樨
main,      ⥪,   ⮫쪮 ⨫ 饭  㭪樨 main
( ࠧ   ணࠬ,  ᫮), ⠪   ࠬ old    new  
६  count,  ᮤঠ騥   맮 㭪樨 copy,   ⥪ 
 饭  㪠 㭪樨.
    ᪮   ⥬ UNIX  믮   ०, ०-
   ० ,       ०  ⤥
⥪. ⥪  ᮤন 㬥,  ६   -
  ⭮⥫쭮  㭪権,  믮塞  ० .   㭪
2.4  ⥪   ,  易    믮  ⥬
樨  write    ணࠬ copy. 楤 ᪠  (祭 
⥪) ⨫  㭪樨 main  ।祩   ࠬ஢, -
⨢  ⥪   1;   1        -
 㭪樨 main. 㭪 main ⥬ 뢠 㭪 copy  ।祩 
  ࠬ஢,  old   new,  頥  ⥪   2;   2
   쭮 ६  count.  ,    ⨢
⥬   write, 맢  㭪  ⥬  . -
 ⥬ 樨 ᮮ⢥ 窠 室  ⥪ ⥬ -
権; ⥪ ⥬ 権 ᠭ  몥 ᥬ  砥
ᯥ樠  뢠, , 믮, ஦ "뢠",
뢠饥 ४祭   ० .      ⥪
 室, ᮮ⢥ ⤥쭮 ⥬ 樨,  ⮬, 
 뢠   㭪権, ᮧ  ⮬  筮 㭪樨 -
  ⨢樨.   믮 ᯥ樠 ,  ४-
砥  ० , 믮 樨   ᯮ ⥪ .
    ⥪  ᮤন  ⨢樨  㭪権, 믮   ०
.    㭪権    ⥪  ᮮ⢥ 㭪  -
, ⭮騬  ,    ணࠬ 짮⥫, ⥬  , -
 ⥪   樨 ⥪ . ⥪    
, ᫨  믮  ० . ࠢ  㭪 2.4 ।-
⠢ ⥪    믮 ⥬ 樨 write  ணࠬ-

                               ஬筠
                               ⠡ -        ⠡
                               ⥩ ᮢ         ⥩
  +---------------------+     +-------------+     +------------+
  |  ᭮ -|     |             |     |            |
  | ࠭⢠ ,   |     |             |     |            |
  | 뤥  |     |             |     |            |
  +---------------------+     +-------------+     +------------+
             ^             +--+->        ---+-----+->          |
             |             |  +-------------+     +-----+------+
  +----------+----------+  +--+->        ---+--+  |     |      |
  |          |          |  |  +-------------+  |  |     |      |
  |          |          |  |  |             |  |  +-----+------+
  +----------+----------+  |  |             |  +--+->   |      |
  |          v     -----+--+  |             |     +-----+---+--+
  +---------------------+     |             |     |     |   |  |
  |                     |     +-------------+     +-----+---+--+
  |                     |                               |   |
  +---------------------+                               |   |
     ⠡ ᮢ        +-------------------------+---+--+
                              |     ⨢   v   v  |
                              +--------------------------------+

       㭮 2.5. ଠ樮   ᮢ


                                     29


 copy. ஡  믮 ⥬ 樨 write  -
  ᫥ ࠧ.
        ᮮ⢥  窠  室  ⠡ ᮢ ,
஬ ⮣,   뤥  ⨢ , ⢥
  짮⥫.  ᮢ 砥  ᥡ 㪠⥫  -
 ⠡ ⥩ ᮢ, 窨 室   㦠  -
⢥ 㪠⥫  ᮡ⢥ ⠡ ⥩.  뢠 -
 
᭮ ࠭⢠, 뤥塞   ࠧ饭 ⥪,   
⥪. 窨 室  ⠡ ⥩ 뢠 ਡ ,  -
,  ࠭     ⥪ ணࠬ  ,    -
   ᮢ⭮ ᯮ㥬,   ⭮      ࠧ頥
ᮤন . 譨 ஢ ᢥ 樨 (१ ஬
⠡  ⥩,  ᯮ㥬  ᠬ,  ᮡ⢥ ⠡ ⥩)
 ᨬ ᠬ ᮢ⭮ ᯮ짮 .    -
 ᪠ ⥬  exec,  ⥬ 뤥   
⥪,   ⥪, ᢮  ,  ᯮ짮 -
ᮬ. ᫨  ᪠  fork,  㤢 ࠧ ᭮-
  ࠭⢠ ண ,  ᠬ ᮢ⭮ ᯮ짮
,   , ,  㣮 ஭, ந 䨧᪮ -
஢. ᫨  ᪠  exit,  ᢮ , -
 ᯮ짮 ᮬ.   㭪  2.5  ࠦ  ଠ樮
,  易    ᪮  .  ᮢ 뫠 
஬ ⠡ ⥩, ᯮ㥬 ᮬ,  ன ᮤঠ
㪠⥫    ᮡ⢥ ⠡ ⥩, ᮮ⢥騥  
 ⥪,   ⥪ .
       ⠡ ᮢ   ᭮ ࠭⢠ , 뤥-
 , ᮤঠ ࠢ ଠ     ﭨ  -
.  ᭮ ࠭⢮  ७ ᮮ⢥饩 
  ⠡  ᮢ,  ࠧ  묨 ꥪ⠬  ᬮ७ 
 6.  ⢥   ⠡  ᮢ,    ᬠਢ  
᫥ ࠧ, 㯠:
    *  ﭨ,
    * 䨪,  ࠪਧ 짮⥫,  饣  -
楬  ( 짮⥫  UID),
    * 祭 ਯ ᮡ,   ਮ⠭ (室 
ﭨ "᭠").
    ᭮  ࠭⢮ , 뤥 , ᮤন 뢠
 ଠ,   ன  ᯥ稢 ⮫쪮    ६
믮 . 묨 ﬨ :

    *  㪠⥫       ⠡ ᮢ, ᮮ⢥ ⥪饬
,
    * ࠬ ⥪饩 ⥬ 樨,  頥  祭    
訡,
    * ਯ 䠩    䠩,
    * ७ ࠬ -뢮,
    * ⥪騩 ⠫  ⥪騩 ७ (.  5),
    * ࠭ 䠩  .
     ⥬  ।⢥    ᭮ ࠭-
 , 뤥 믮塞 ,      ᮮ⢥-
騬    㣨  ᮢ.  窨 ७ ७ ⬠, 
饭  ᭮ ࠭ , 뤥 믮塞  -
,   뫠   ६ u, ,  ᪠  -
 㣮 ,  ७ࠨ 㠫  ⠪ -
, ⮡ ୠ ६ u 㪠뢠     ᭮  ࠭⢮
    .  ⥬ ॠ樨 ।ᬮ७ 祭
䨪樨 ⥪饣    㪠⥫  ᮮ⢥-

                                     30

   ⠡ ᮢ  ᭮ ࠭⢠ .


        2.2.2.1 ⥪ 

    ⥪⮬    ﭨ, ।塞 ⥪⮬, -
ﬨ  ६ 짮⥫  ଠ樮묨 ࠬ, -
祭ﬨ ᯮ㥬 設 ॣ஢,  祭ﬨ,  ࠭묨    樨
⠡  ᮢ   ᭮ ࠭⢥ ,  ⠪ ᮤন -
   , ⭮   .  権 ⥬  
   ଠ樮  ᮢ⭮ ᯮ ᥬ -
ᠬ,    ⠢  ⥪ .
    ,   ᪥  ⥬ ᯮ   ⥪  -
.   ⥬ 蠥  㣮 ,  믮 -
४祭  ⥪    ⥬, ⮡ ⥬ ᯮ﫠  ⥪ 㣮
.  ⢫ ४祭 ⥪ ⮫쪮    ।
᫮,    㢨  쭥襬. 믮 ४祭 ⥪, 
࠭ ଠ,     ⮣,  ⮡    ४
         믮.  ࠧ,
 室  ०   ० ,  ⥬ ࠭  ଠ-
,    ⮣, ⮡    ०   த-
 믮  ࢠ . , 室  ०    -
     ᬥ ०,   ४祭 ⥪. ᫨ -
  ࠧ  㭪 1.5,  ᪠,   믮 ४祭
⥪,   ⥪  A  ⥪  B;   -
  ० 믮  ०   ०   , ⠢ 
⥪  , ਬ,  A.
     ࠡ뢠 뢠  ⥪ ࢠ ,  -
    뢠  뢠. ࢠ       ⮬
믮    ० , ⠪   ० .  ࠭ -
,   ⮣, ⮡  뫮     믮
ࢠ  ,   ࠡ뢠 뢠  ० .   -
஦    ஦ - ᮡ      ࠡ⪥
뢠.


        2.2.2.2 ﭨ 

    ६      ࠧ  ᪮쪮 ﭨ,  
  । ࠪ⨪, 뢠騥 .   -
    ᬠਢ   6,  ।⠢ ⢥
  ᫨   ﭨ 㦥 ᥩ:
    1.  믮  ० .
    2.  믮  ० .
    3.   믮,  ⮢  믮  ,  ஢-
騪 롥 .  ⮬ ﭨ  室  ᮢ,   -
 ஢ ⠭,   ᮢ 㤥 믮 ᫥-
騬.
    4.   ਮ⠭ ("ᯨ").  "  ᮭ",   
  த 믮, ਬ,      襭  -
-뢮.
    ᪮       ६ 믮 ⮫쪮  -
,  ﭨ 1  2  室 ᠬ 襥    .  
  ﭨ ᮮ⢥  ० 믮, ०   ०
.





                                     31

        2.2.2.3 室  ﭨ  ﭨ

    ﭨ , ᫥ ,  ᪮ ।⠢ 
,   뢭 室  ﭨ    ﭨ  
ᮮ⢥⢨  ।묨 ࠢ. ࠬ 室 ।⠢ -
  ਥ஢  , 設 ண ।⠢ ᮡ ﭨ, 
  ३ ,  㣨 - ᮡ, 騥 稭  -
室     ﭨ  㣮. 室   ﭨﬨ
ࠧ襭, ᫨  㣠  ࢮ ﭨ  ஥. ᪮쪮 
 室   ﭨ,   室 ⮫쪮  
   ᨬ  ⮣,  ᮡ⨥ ந諮  ⥬.   㭪
2.6 ।⠢ ࠬ 室  ﭨ, ᫥ .
      㦥  ਫ ,  ० ࠧ ६  믮
६ ᪮쪮 ᮢ,      ६  ࠡ  
०  .  ᫨   ࠧ ᢮ 믮  ० ,  
 ᯮ   ଠ樮  ,  ਭ騥  .
  ந쭮 ४祭 ⥪⮢  ࠢ  -
⨩,  頥 ᢮ 楫⭮.
     ࠧ蠥 ४祭 ⥪ ⮫쪮 ⮣,    -
室    ﭨ "  ० "  ﭨ "᭠  ". -
, 饭  ० ,    㦥 㣨 ᠬ;
⮬  ,   㦠,  ⮬ , 室騥-
  ० ,  㦠 ⥬.    ন  楫-
 ᢮ ଠ樮 , ᪮  㦠, ⠪ -
   ஡ " ᪫祭" - ᯥ祭 ⮣,  -
 ᥪ樨 ணࠬ 믮      ६    ࠬ  ᠬ
襥  .
     ⢥ ਬ ᬮਬ ணࠬ (㭮 2.7) 祭 ଠ-
樮  , 祩  ᮤন  㪠⥫ bp1,  ᯨ᮪  ᯮ-
 㪠⥫ ᫥ , 祩  ᮤন  bp. ᫨ ⥬
ࠧ訫 ४祭 ⥪  믮 ஬  ࠣ  ணࠬ,
  ᫥饩 樨. ।,  믮 ண-
ࠬ

                      +-------+
                     ०- |       |
                     -  |   1   |
                        |       |
                            +-+-----+
                    饭 |   ^ 
                     ⥬ |   |
                     -  |   |
                    뢠   |   |
                              v   |
                      +-----+-+
                     ०- |       |<---------+ 뢠,
                     -  |   2   |          |  
                          |       |<---------+ 뢠
                            +-+-----+
                      ਮ-|   ^  -
          +-------+        |   | ஢  +-------+
  |       |<----------+   +------------+       | ⮢
   ("ᮭ")|   4   +--------------------------->|   3   |  믮
          +-------+        ஡㦤         +-------+
      ४祭
   ⥪ ⨬

        㭮 2.6. ﭨ   室  


                                     32



 ਥ  ⥬ ⢫ ४祭 ⥪.  ᮪    -
짮  ᤢ  㪠⥫   ⨢稢 :  bp1
⮫쪮  室   ᯨ᮪. ᫨   ᫥    ।
㪠⥫ﬨ,  㦨 bp1   ᯨ᪥,  ᫨  ᫥  䮭-
묨 㪠⥫ﬨ,      bp1 (㭮 2.8). ᫨ -
   ࠡ뢠 㪠⥫  ᯨ᪥   ୮ -
᪠ ࢮ ,  ᯨ᪠  ﭭ ࠧ. -
 UNIX ।०   権,  ४祭
⥪⮢   ६ 믮   ० . ᫨  -
  ﭨ "᭠",  ⨬  ४祭  ⥪,  
 ᯥ稢  楫⭮ ଠ樮  ⥬.
    ஡,   ਢ  襭 楫⭮ ଠ樨 -
,   ࠡ⪠ 뢠,     ଠ 
ﭨ . ਬ, ᫨  믮﫮 ணࠬ, ਢ   -
㭪 2.7,  稫 뢠  ⨦ ਥ, ணࠬ -
⪨ 뢠-


 +-----------------------------------------------------------+
 | struct queue {                                            |
 |                                                           |
 |                                                           |
 |                                                           |
 | } *bp, *bp1;                                              |
 | bp1 - > forp = bp - > forp;                               |
 | bp1 - > backp = bp;                                       |
 | bp - > forp = bp1;                                        |
 | /*  ᬮ  ४祭 ⥪ */|
 | bp1 - > forp - > backp = bp1;                             |
 +-----------------------------------------------------------+

 㭮 2.7. ਬ ணࠬ, ᮧ饩 ᯨ᮪  㭠ࠢ묨 㪠-
               ﬨ

                            +-------+
                            |       |
                            |  bp1  |
                            |       |
                            +-------+
        +-------+                               +-------+
  ----->|       +------------------------------>|       +---->
        |  bp   |                               |       |
  <-----+       |<------------------------------+       |<----
        +-------+                               +-------+

      祭 bp1  ᯨ᮪  㭠ࠢ묨 㪠⥫ﬨ

        +-------+           +-------+           +-------+
  ----->|       +---------->|       +---------->|       +---->
        |  bp   |           |  bp1  |           |       |
  <-----+       |<----------+       |     +-----+       |<----
        +-------+<----+     +-------+     |     +-------+
                      +-------------------+

  㭮 2.8. ᮪  㪠⥫ﬨ, ४ - ४祭 ⥪-
                


                                     33

   ࠧ 뫪, ᫨ 㤥 㫨஢ 㪠⥫ﬨ,  뫮
 ࠭. ⮡   ஡, ⥬       
뢠  ६ ࠡ  ० ,   ⮬ 㫠  ࠡ-
 뢠,   筮  ᫮   ந⥫쭮 -
⥬.    ⮣  蠥 ਮ 뢠 , 
뢠  ६ 믮 ᪨ ᥪ権 ணࠬ.  ணࠬ-
  ᪮, ᫨    믮  ணࠬ -
⪨ ந쭮 뢠  ਢ   ஡, -
 ⭮襭  襭 楫⭮. ਬ,  ᫨  ணࠬ  ࠡ⪨
뢠    ᪠  ࠡ⠥   묨 ।ﬨ,   뢠
ணࠬ,  믮 ன  ࠡ뢠  ।,  -
  ᪮  ᥪ樥   ⭮襭  ணࠬ ࠡ⪨ 뢠 
᪠. ᪨ ᥪ樨   ࠧ   , ⮬
 ⢮  뢠 ࠪ᪨  ⢨  ந-
⥫쭮 ⥬.  㣨 樮 ⥬   蠥 -
⥬ 饭  뢠  ࠡ   ⥬  ०    ⥬
ࠧࠡ⪨  奬  ஢,  ᯥ稢 楫⭮.   12  
୥  ⮬ ,  㤥    ⥬,
 ਬ 㪠   襭 ஡ 筮.
    ⮡  ,  ࠧ ᪠,     頥  ᢮  楫-
, ࠧ ४祭 ⥪ ⮫쪮 ⮣,   室
 ﭨ "᭠",  ⠪ ९ ⢨    㣮
  楫  ﭨ ᫥.  ⠪ 蠥 ਮ -
   ६ 믮 ᪨ ᥪ権  ணࠬ,  
⠪ ࠧ 뢠,   ⨢ 砥  맢 襭
楫⭮. ஢騪 ᮢ ਮ᪨ 㦠 , 믮-
騥  ० ,  ⮣, ⮡    쭮 ᯮ-
 業ࠫ .


        2.2.2.4 ""  ஡㦤

    , 믮騩  ० ,  ⥫ ⥯ ⮭-
    襭 ⮣,   ᫥ ॠ஢   ⥬
ᮡ⨩.     ᮡ  "।"  ࠧ  -
ୠ⨢,     ⮬ ⥫쭮 襭  ਭ ᠬ⥫쭮.
  㢨,    ࠢ,    稭  
ᮢ    ࠧ  ⥫⢠,     筮 ⮣
᫥ ⨬ ࠢ  ᢮ ᮡ⢥ 樠⨢. ਬ,  ᫨  -
  ६ ਮ⠭ 믮 ("३  "),   -
   ᢮ ன . ⥫쭮, ணࠬ ࠡ⪨ 뢠 
 ਮ⠭ ᢮ 믮,  ᫨  , ࢠ  -
    "३  "  㬮砭.
      ਮ⠭  ᢮ 믮, ⮬    -
 ண ᮡ, ਬ, 襭 -뢮   -
਩  ன⢥,  室, 뤥 ⥬ ᮢ  ..  -
,   ਮ⠭  ᮡ,    ,    
室  ﭨ "᭠"  㯫 ᮡ, ᫥ 祣  ஡㤨
  ३  ﭨ "⮢  믮". ६  ਮ-
⠭  ᮡ  ᮢ;  ᮡ⨥ 㯠,   -
,  ਮ⠭   ᮡ, ஡㦤, ᪮ 祭 ᫮,
易  ᮡ⨥,    "⨭".    ஡-
,    室  ﭨ "᭠"  ﭨ "⮢  믮-
", 室  ஬  㦥   ࠭ ஢騪; ᫥ -
   ,     믮  .  ਮ⠭
   業ࠫ .  ⥬   -
ﭭ ஢ ,     ਮ⠭, ..  -
 ᮡ,  ⥬ 㤨 .
    ਬ,  , 믮塞  ० ,   ஢

                                     34

   砩 ਮ⠭  饬; , 騥  -
  ஢ , 易 ஢ 稥 ஢ 
ਮ⠭  ᢮  믮, ᫨  ஢ 㣨 -
ᮬ.  믮 ஢ ⠪ த ᫥騬 ࠧ:

    while (᫮ "⨭")
          sleep (ᮡ⨥: ᫮ ਭ 祭 "");
    set condition true;
 :
     (᫮ "⨭")
         ਮ⠭ ( 㯫 ᮡ,   ஬
                          ᫮ ਭ 祭 "");
    ᢮ ᫮ 祭 "⨭";

     ᭨  ஢  "㤨"  ,  ਮ⠭-
 - ⮩ ஢, ᫥騬 ࠧ:

    set condition false;
    wakeup (ᮡ⨥: ᫮ "");
 :
    ᢮ ᫮ 祭 "";
    १ ( 㯫 ᮡ,  ஬ ᫮
                     ਭ 祭 "");

     㭪 2.9 ਢ ਬ,  ஬  , A, B  C ᯠ-
  ஢ . 室  ﭨ "᭠" 뢠 -
 . ,  ⨢,  㦨,    
஢,   ਮ⠭ ᢮ 믮  㯫 ᮡ, 
஬  㤥 ࠧ஢.   殢 ஢    ᭨-
    "஡㦤", 室  ﭨ "⮢  -
".    롨ࠥ   ᮢ, ᪠, B,  믮-
.  B, 믮 横 "while", 㦨,     ࠧ-
,    த ᢮ 믮. ᫨  B  쭥襬
᭮ ਮ⠭   ஢   (ਬ,  -
襭 樨 -뢮),  ᬮ 㯨  ஢ 믮-
  㣨  ᮢ.  ᫨ 㤥  ⮬ ࠭  A,  ,
믮 横 "while", 㦨,   ஢,  ᭮ ३ 
ﭨ "᭠";    ᠬ ந   ᮬ  C.    
殢 믮  B   ஢   㤥 ,
  १ 祣  A  C    .  ࠧ, 横
"while-sleep" ᯥ稢 ⠪ ,  ஬ ᠬ  襥  
     .
      室  ﭨ "᭠"  ஡㦤  ஡ 
ᬮ७   6.  ६     "묨".  -
 室  ﭨ "᭠"   室     , -
   㤥 "ࠧ㦥". ᫥ ⮣,   ਮ⠭,  ⥬
稭 ஢ 믮 ᫥饣    ४砥  ⥪
 .


        2.3   

    設⢮ ଠ樮   ࠧ頥  ⠡ 䨪-
  ࠧ,     ᪨ 뤥 . २⢮ ⠪
室 ⮨  ⮬,  ணࠬ  ,       ࠭稢
᫮  ⮢ ଠ樮   祭, ।⥫쭮 -
  樨 ⥬. ᫨   ६  㭪樮஢  ⥬  ᫮
⮢  ଠ樮    멤  㪠 祭, 
 ᬮ ᪨ 뤥    ⮢     ᮮ

                                     35

 訡 짮⥫, ᤥ襬 . ᫨,  㣮 ஭,  ᣥ-
஢ ⠪ ࠧ,  室  ࠭ ⠡筮 ࠭⢠ 㤥
⥭,  ⥫쭮  ⠡筮 ࠭⢮   ,
᪮     ᯮ짮  㣨 楫.      -
,  ⬮  ।⠢  , 祬 ᦠ⨥ ᫥-
 ⮢ ⨢ . 筮  ⬠  ᪠ ᢮ 
  ⠡ ᯮ ᫮ 横   ⮤  ⥭  
 䥪⨢  ࠢ   ᫮묨 奬 뤥 .


        2.4  

     ࠢ騬 ᠬ, 㡮 , ⭮    ,  
믮  ࠧ 㭪樨  ᯥ祭 筮 ࠡ 짮-
 ⥬.  ⠪ 㭪 ⭮ ଠ஢ ᪮, ᮧ  -
 䠩 ⥬, ⠭ ࠧ襭 䠩 ⥬, ⫠ -
  .  楯㠫쭮

    ६        A         B         C
    +-------------------------------------------------------------
    |        ஢
    |         ਮ⠭
    |               .         ஢
    |               .          ਮ⠭
    |               .                .         ஢
    |               .                .          ਮ⠭
    |  +----------------------------------------------------------+
    |  | ࠧ஢    ஡㦤  "" ᮢ|
    |  +----------------------------------------------------------+
    |            ⮢           ⮢           ⮢ 
    |           믮       믮       믮
    |               .                                 .
    |               .             饭             .
    |               .         ࠧ஢      .
    |               .         ஢        .
    |               .                .                .
    |               .          ਮ⠭         .
    |               .        ந쭮 稭     .
    |               .                .                .
    |            饭             .                .
    |        ஢       .                .
    |          ਮ⠭          .                .
    |               .                .             饭
    |               .                .         ஢
    |               .                .           ਮ⠭
    |               .           ஡㦤           .
    |               .         ⨥ ஢       .
    |               .                           .
    |            ⮢       ஡㦤      ⮢ 
    |           믮   "" ᮢ   믮
    |
    v                      ४祭 ⥪

                 饭


    㭮  2.9.  ⭠ ਮ⠭ 믮 ᮢ, 맢
                  ஢


                                     36

窨 ७,  ࠢ騬  짮⥫᪨ ᠬ  ࠧ.
 ᯮ      饭  樮 ⥬, -
  . ࠢ騥  ⫨      짮⥫᪨
ᮢ  ⮫쪮  ࠢ   ਢﬨ, 묨  . ਬ,
० ࠧ襭 㯠  䠩  ।ᬠਢ ।⠢  -
  ࠡ  䠩  ࠢ ᮢ  ⢨ ⠪ -
   짮⥫.   ⥬    뤥  ᮡ
짮⥫, 㥬 㯥௮짮⥫,    ᮡ묨 ਢ-
ﬨ,   祬   ਬ . 짮⥫   㯥௮짮-
⥫, ᫨ ᮮ⢥騬 ࠧ ॣ  ⥬   
ᯥ樠 ணࠬ. ਢ 㯥௮짮⥫  ᬮ७  ᫥-
  .  ᫨  ᪠ ⪮,  ⥬  뤥 ࠢ騥
  ⤥ .


        2.5     

     ⮩  ᠭ ⥪  樮 ⥬;  ᭮-
 ⠬ 㯠 ⥬ ࠢ 䠩  ⥬  ࠢ-
 ᠬ. ⥬ ࠢ 䠩 ࠢ ࠭  롮-
      짮⥫᪨  䠩.  ࣠   䠩
⥬,  ࠪ  ᪨ ன⢠; 䨧᪮ ன⢮,
⠪  ,  ᮤঠ  ᪮쪮  ᪨  ன  (䠩
⥬).    䠩  ⥬    㯥࡫,  ஬ 뢠
  ᮤন 䠩 ⥬,  䠩  䠩 ⥬ -
뢠 ᮬ, ࠭騬 ਡ 䠩. ⥬  樨  ࠡ  
䠩, ᯮ .
      室    ࠧ  ﭨ  室  ﭨ 
ﭨ, ᫥ । ࠢ 室.  ⭮, , -
騥  ० ,  ਮ⠭ ᢮ 믮   ३  
ﭨ  "᭠",       ॢ   ﭨ -
 .   㦠   砥,  , 믮-
騩  ० , 㤥 த ᢮ 믮   ,  
३  ﭨ "᭠"    ୥  ० .  ᯥ-
稢 楫⭮ ᢮ ଠ樮   ᢮ 㦠-
,  ⠪ ⥬ ஢ 뢠  ६ 믮 ᪨
ᥪ権 ணࠬ.
     ⠫   ⠫쭮 뢠  ⥬,  ࠦ
  㭪 2.1,  ⠪ ⢨  , 稭  ⥬ -
ࠢ 䠩   ⥬  ࠢ  ᠬ.    ᫥饩
  ᬠਢ  ᢥ宯⨢  ()  뢠 -
 ࠢ ஬, ᯮ㥬   4, 5  7.   4  -
ਢ  ७  䠩 ⥬,  ࠡ -
ᮢ,  䠩, ८ࠧ    .    5  -
ਢ ⥬ 樨, , ᯮ ਢ   4 -
,    䠩 ⥬, .. ⠪,  open, close, read 
write.  6    ⨥ ⥪     -
࠭⢮,   7 ᬠਢ ⥬ 樨, 易   ࠢ-
  ᠬ  ᯮ騥   6.  8 ᠥ -
 믮 ᮢ,   9  㦤    ।
.  10 饭 ࠩࠬ ன, ᬮ७   ⮣
⪫뢠, ⮡ ० ᭨  ࠩ ନ  ࠢ
ᠬ.   11 ।⠢ ᪮쪮  ⢨ ᮢ.
,  ᫥   ᬠਢ , 易  㣫-
 祭 ᮡ⥩ ⥬,  ⭮, ᮡ -
 ⥬  । ⥬.




                                     37

        2.6 

1. ᬮਬ ᫥騩  :

     grep main a.c b.c c.c > grepout &
     wc -1 < grepout &
     rm grepout &

   ᠭ (ᨬ "&")     ப  
     shell   ⮬,   ᫥ 믮  䮭,  ⮬
   shell  믮   ப  ࠫ쭮.  祬    
   ࠢ業 ᫥饩  ப ?

     grep main a.c b.c c.c | wc -1

2. ᬮਬ ਬ ணࠬ, ਢ  㭪 2.7. ।, 
       ,    믮 ⨫ ਩, ந諮
   ४祭 ⥪  㣮  ࠫ ᮤন   ᯨ᪠
   㪠⥫   ᫥ :

     remove(gp)
          struct queue *gp;
     {
          gp - > forp - > backp = gp - > backp;
          gp - > backp - > forp = gp - > forp;
          gp - > forp = gp - > backp = NULL;
     }

   ᬮਬ  :
   -  㡨ࠥ  ᯨ᪠  㪠⥫ﬨ  bp1.
   -  㡨ࠥ  ᯨ᪠    㪠⥫ﬨ  ,  ᫥  ᫥
      bp1.
   -  㡨ࠥ  ᯨ᪠ ,  ࢮ砫쭮 ᫥ 
     bp1  ⮣,   bp 뫠  祭  㪠 ᯨ-
     ᮪.
       ﭨ  㤥 ᯨ᮪ ᫥ ⮣,    
   믮  ணࠬ, ᯮ ᫥ ਥ ?
3.  ந諮   ⮬ 砥, ᫨  ⠫   믮-
     ᮢ, ਮ⠭  ᮡ,   ⥬    뫮
     ⮬    ⠪  ?




















                                     38

