<title>Unix overview CHAPAPP</title>



    

         



      ਫ  ⪨  㭪権 ⥬ UNIX.  ᠭ
 㭪権 ᮤন   㪮⢥  ணࠬ-짮⥫  ᨨ  V
⥬ UNIX. , ਢ ,  筮  ⮣, ⮡
ࠧ  ਬ ணࠬ, ।⠢  .
     䠩, 㯮  ⥪, ।⠢ ᮡ ᫥⥫쭮-
  ᨬ, 騥  ᨬ  騥  , ࠧ-
  ⮩.  砥 訡  㭪樨   -
, ࠢ -1,   ᠬ 訡 뫠   ६  errno,  
⨯  external.    砥  ᯥ譮 襭    祭,
ࠢ 0.   饭  樮 ⥬  窮 -
 ࠧ  ᪮쪨 㭪権:  砥,   㭪樨 ᯮ
    ᥬ 䥩. ਢ ᯨ᮪ 㭪権 㤮⢮-
 ⠭ ᫮, ਭ  ࠢ 㪮⢠  ⥬ UNIX,
 ⮬ , 易  ⥬,    饭  樮
⥬ 窮 室    ᪮쪨 㭪権,  ᬠਢ  -
쭮.


    access
      ______________________________

      access(filename,mode)
      char *filename;
      int mode;

    㭪  access ஢,    ࠧ襭  ⥭, 
 ᯮ 䠩 (஢塞 ⨯ 㯠   祭  ࠬ
mode).  祭  mode  樥  ᮪ 4 ( ⥭), 2
( )  1 ( ᯮ).  ᯮ⥫쭮  䨪樨
짮⥫  ஢થ  䠪᪨ .


    acct
      ______________________________

      acct(filename)
      char *filename;

    㭪 acct 砥  ⥬ ᮢ,  ᫨  ࠬ  filename
⮩,  몫砥 -  ⨢ 砥.


        lar
      ______________________________

      unsigned alarm(seconds)
      unsigned seconds;

    㭪  alarm  뫪 뢠饬   ᨣ ॢ
१ 㪠 ⢮ ᥪ㭤 (seconds).   頥  ᫮  ᥪ㭤,
⠢襥  뫪 ᨣ   맮 㭪樨.


                                    400

        brk
      ______________________________

      int brk(end_data_seg)
      char *end_data_seg;

    㭪 brk ⠭  ࠭ (訩 )  
   ᮮ⢥⢨  祭 ࠬ end_data_seg.   㭪-
, sbrk, ᯮ    室  㢥稢  孥  ࠭
  㪠 稭.


        hdir
      ______________________________

      chdir(filename)
      char *filename;

    㭪  chdir    ⥪騬  ⠫ 뢠饣  ⠫,
㪠  ࠬ filename.


        hmod
      ______________________________

      chmod(filename,mode)
      char *filename;

    㭪 chmod  ࠢ 㯠  㪠 䠩    ᮮ⢥⢨
  祭  ࠬ  mode, 騬 樥  ᫥  (
쬥筮 ⥬):
      04000     ⠭  䨪樨 짮⥫
      02000     ⠭ 㯯  䨪樨
      01000    ਧ sticky bit
      00400    ⥭ 楬
      00200     楬
      00100    ᯮ 楬
      00040    ⥭ 㯯 짮⥫
      00020     㯯 짮⥫
      00010    ᯮ 㯯 짮⥫
      00004    ⥭ 稬 짮⥫
      00002     稬 짮⥫
      00001    ᯮ 稬 짮⥫


        how
      ______________________________

      chown(filename,owner,group)
      char *filename;
      int owner,group;

    㭪 chown   䨪樨   㯯  㪠-
 䠩  , 㪠  ࠬ owner  group.


        hroot
      ______________________________


                                    401

      chroot(filename)
      char *filename;

    㭪 chroot   ७ 뢠饣   ᮮ⢥-
  祭 ࠬ filename.


        los
      ______________________________

      close(fildes)
      int fildes;

    㭪 close 뢠 ਯ 䠩, 祭  १ 믮-
 㭪権 open, creat, dup, pipe  fcntl,  㭠᫥   㭪-
樨 fork.


        reat
      ______________________________

      creat(filename,mode)
      char *filename;
      int mode;

    㭪  creat ᮧ  䠩  㪠묨   ࠢ 㯠.
ࠬ mode    ,    㭪樨 access,   ⮬  ਧ
sticky-bit  饭,  ࠧ, ⠭ 㭪樥 umask, 襭. 㭪-
 頥 ਯ 䠩  ᫥饣 ᯮ짮  㣨 -
.


        d
      ______________________________

      dup(fildes)
      int fildes;

    㭪 dup ᮧ  㪠 ਯ 䠩,   -
ਯ   訬 ஬    ⥬.    ਯ-
 ᯮ     㪠⥫  䠩,  ⠪  㣨  ᮢ-
騥 ਡ.


        
      ______________________________

      execve(filename,argv,envp)
      char *filename;
      char *argv[];
      char *envp[];

    㭪 execve ᯮ 䠩   filename, 㦠   ᭮
࠭⢮  ⥪饣 . ࠬ argv ᮮ⢥ ᯨ 㬥-
⮢ ᨬ쭮 ⨯, । ᪠ ணࠬ, ࠬ envp  -
⢥ ᨢ, 뢠饬 । 믮  .




                                    402
        it
      ______________________________

      exit(status)
      int status;

    㭪  exit  蠥  뢠騩  ,    த⥫ 8
 ࠧ冷  ᫮ ﭨ .  ᠬ   뢠  
㭪  ⢥  㯫 । ᨣ.


        fcntl
      ______________________________

      fcntl(fildes,cmd,arg)
      int fildes,cmd,arg;

    㭪  fcntl  ᯥ稢 믮  ࠧࠧ 権 
⭮襭   䠩, 㥬   ਯ  fildes.
ࠬ  cmd  arg  ᫥騬 ࠧ (। 㪢-
 ⠭ ࠭  䠩 "/usr/include/fcntl.h"):

      F_DUPFD     襥 祭 ਯ,  襥
                   ࠢ 祭 arg
      F_SETFD    ⠭ 䫠 "close-on-exec"  襬 ࠧ-
                  arg (䠩 㤥  㭪樥 exec)
      F_GETFD     ﭨ 䫠 "close-on-exec"
      F_SETFL    ⠭  䫠,  ࠢ騥 ﭨ 䠩
                 (O_NDELAY -  ਮ⠭   -
                 襭 -뢮,   O_APPEND - 뢠
                     䠩)
      F_GETFL     祭 䫠, ࠢ ﭨ
                 䠩

      struct flock
              short l_type;   /* F_RDLCK - ஢     ⥭,
                                 F_WRLCK - ஢     ,
                                 F_UNLCK - ⨥ ஢ */
              short l_whence; /*  砫 㥬 -
                                     ᬥ饭  ⭮-
                                 ⥫쭮 砫 䠩 (0), ⭮-
                                 ⥫쭮 ⥪饩 樨  㪠-
                                 ⥫ (1),    ⭮⥫쭮  
                                 䠩 (2) */
              long l_start;   /* ᬥ饭  , -
                                   ᮮ⢥⢨  祭
                                 l_whence */
              long l_len;     /*   㥬  ⪠   
                                 . ᫨ 㪠 0,  -
                                  ⮪  l_start  
                                 䠩 */
              long l_pid;     /* 䨪 , -
                                 饣 䠩 */
              long l_sysid;   /* ⥬ 䨪  -
                                 , 饣 䠩 */

      F_GETLK        ஢,  饩  -
                 짮 祭 arg     .   ᫨
                 ஢ ,  祭 l_type
                  arg  F_UNLCK

                                    403

      F_SETLK    ⠭   ஢ 䠩   -
                   祭 arg.    砥  
                 ⠭ ஢  -1
      F_SETLKW   ⠭   ஢  ᮤঠ  
                 䠩     ᨬ  祭 arg.  
                 砥  ⠭ ஢  -
                 ⠭ 믮

      ஢,  易  ⥭  䠩,  ४뢠  -
. ஢, 易  , ४뢠  .


        fork
      ______________________________

      fork()

    㭪 fork ᮧ  . ஦  ।⠢ -
   -த⥫.  室  㭪樨  -த-
⥫ 頥  䨪樨 ⮬, ⮬ - 㫥 祭.


        getpid
      ______________________________

      getpid()

    㭪  getpid  頥  䨪  뢠饣 .  
 室 ᯮ 㭪樨: getpgrp,  䨪  㯯,
    室 뢠騩 ,  getppid,  䨪
,   த⥫ ⥪饣 .


        getuid
      ______________________________

      getuid()

    㭪 getuid 頥 䠪᪨  䨪樨 짮⥫ -
뢠饣 .    室 ᯮ 㭪樨: geteuid,  -
  ᯮ⥫   䨪樨 짮⥫, getgid, 
㯯 ,  getegid,  ᯮ⥫ 㯯   -
䨪樨 뢠饣 .


        ioctl
      ______________________________

      ioctl(fildes,cmd,arg)
      int fildes,cmd;

    㭪 ioctl 믮  ᯥ樠 権  ⭮襭  -
⮬ ன, ਯ ண 㪠  ࠬ fildes.  ,
믮塞    ⭮襭  ன, 뢠 ࠬ஬ cmd,  -
 arg  㬥⮬ .


        kill
      ______________________________

                                    404

      kill(pid,sig)
      int pid,sig;

    㭪 kill 뫠 ᠬ, 䨪  㪠   -
 pid, ᨣ, 뢠 ࠬ஬ sig.

      pid           ᨣ 뫠   䨪-
      ⥫-        ஬ pid
       祭
      pid = 0            ᨣ 뫠  ᠬ,  㯯
                         䨪   ᮢ  -
                         䨪஬ ࠢ⥫
      pid = -1           ᫨ -ࠢ⥫ ᯮ 
                         䨪஬ 㯥௮짮⥫,  ᨣ-
                          뫠 ᥬ ᠬ,  ⨢-
                          砥, ᨣ 뫠 ᠬ,
                         䠪᪨   䨪樨 짮-
                         ⥫   ᮢ  䨪-
                         ஬ 㯥௮짮⥫
      pid < -1           ᨣ 뫠  ᠬ,  㯯
                         䨪  ᮢ  pid

    ᯮ⥫   䨪樨 짮⥫ -ࠢ⥫ -
 㪠뢠  㯥௮짮⥫,  ⨢ 砥, 䠪᪨   -
⥫  䨪樨 ࠢ⥫  ᮢ  ᮮ⢥-
騬  ᮢ-⥫.


        link
      ______________________________

      link(filename1,filename2)
      char *filename1,*filename2;

    㭪  link ᢠ 䠩 filename1   filename2.  -
 㯭     .


        lseek
      ______________________________

      lseek(fildes,offset,origin)
      int fildes,origin;
      long offset;

    㭪 lseek   㪠⥫  ⥭-    䠩  
ਯ஬ fildes  頥  祭.  㪠⥫ 
 祭 ࠬ origin:

      0    ⠭ 㪠⥫  ,  ᮮ⢥ 㪠-
            ᬥ饭    砫 䠩
      1    ᤢ 㪠⥫   ⥪饩 樨   㪠
           ᬥ饭
      2    ⠭ 㪠⥫  ,  ᮮ⢥ 㪠-
            ᬥ饭     䠩


        knod
      ______________________________

                                    405

      mknod(filename,modes,dev)
      char *filename;
      int mode,dev;

    㭪  mknod ᮧ ᯥ樠 䠩, ⠫   
(।  ਭ樯 " 襫 -  襫")  ᨬ  -
 ࠬ modes:

      010000    
      020000   ᯥ樠 䠩 ன⢠ -뢮 ᨬ
      040000   ⠫
      060000   ᯥ樠 䠩 ன⢠ -뢮 

    12  ࠧ冷 ࠬ modes    ᠬ ,      
㭪樨  chmod. ᫨ 䠩  ᯥ樠 ⨯, ࠬ dev ᮤন -
訩  訩  ன⢠.


        ount
      ______________________________

      mount(specialfile,dir,rwflag)
      char *specialfile,*dir;
      int rwflag;

    㭪 mount 믮 ஢ 䠩 ⥬,   㪠-
 ࠬ specialfile,  ⠫ dir. ᫨ 訩  ࠬ rwflag
⠭, 䠩 ⥬  ⮫쪮  ⥭.


        sgctl
      ______________________________

      #include <sys/types.h>
      #include <sys/ipc.h>
      #include <sys/msg.h>

      msgctl(id,cmd,buf)
      int id,cmd;
      struct msgid_ds *buf;

     ᨬ  樨, 㪠  ࠬ cmd, 㭪 msgctl -
 ᠬ  ⠭  訢 ଠ   
।  ᮮ饭  䨪஬ id,  ⠪ 㤠 ।  ⥬.
 msquid_ds । ᫥騬 ࠧ:

    struct ipc_perm {
         ushort  uid;  /* 䨪 ⥪饣 짮⥫ */
         ushort  gid;  /* 䨪 ⥪饩 㯯 */
         ushort cuid;  /* 䨪 짮⥫-ᮧ⥫ */
         ushort cgid;  /* 䨪 㯯 ᮧ⥫ */
         ushort mode;  /* ࠢ 㯠 */
         short  pad1;  /* ᯮ ⥬ */
         long   pad2;  /* ᯮ ⥬ */
    };

    struct msquid_ds {
          struct ipc_perm   msg_perm; /* ,   뢠
                                         ࠢ 㯠 */

                                    406

          short             pad1[7];  /* ᯮ ⥬ */
          ushort            msg_qnum; /* ⢮  ᮮ饭  
                                         । */
          ushort            msg_qbytes; /* ᨬ    ࠧ
                                           ।   */
          ushort            msg_lspid; /* 䨪 ,
                                          易   ᫥
                                          뫪 ᮮ饭 */
          ushort            msg_lrpid; /* 䨪 ,
                                          易   ᫥
                                          祭 ᮮ饭 */
          time_t            msg_stime; /* ६ ᫥ 뫪
                                          ᮮ饭 */
          time_t            msg_rtime; /* ६ ᫥  -
                                          祭 ᮮ饭 */
          time_t            msg_ctime; /* ६ ᫥  -
                                           */
    };

     権:

    IPC_STAT       । ᮮ饭, -
               樨஢  䨪஬ id
    IPC_SET    ⠭   祭  ६    msg_perm.uid,
               msg_perm.gid, msg_perm.mode  (9    ࠧ冷
                msg_perm)  mgr_qbytes  ᮮ⢥⢨ 
               祭ﬨ, ᮤঠ騬  
    IPC_RMID     ⥬ । ᮮ饭  䨪-
               ஬ id


        sgget
      ______________________________

      #include <sys/types.h>
      #include <sys/ipc.h>
      #include <sys/msg.h>

      msgget(key,flag)
      key_t key;
      int flag;

    㭪 msgget 頥 䨪 । ᮮ饭,    ன
㪠   key. ࠬ key  㪠뢠  ,  頥 -
䨪 ⭮  ⭮ । (IPC_PRIVATE),  ⮬  砥  ᮧ
  ।  ᮮ饭.   ࠬ flag  ᤥ 㪠 
室 ᮧ । (IPC_CREAT),  ⠪  ⮬,  ᮧ -
।  믮 쭮 (IPC_EXCL).  ᫥ 砥, ᫨ -
। 㦥 , 㭪 msgget  ⪠.


        sgsnd  msgrcv
      ______________________________

      #include <sys/types.h>
      #include <sys/ipc.h>
      #include <sys/msg.h>

      msgsnd(id,msgp,size,flag)

                                    407

      int id,size,flag;
      struct msgbuf *msgp;

      msgrcv(id,msgp,size,type,flag)
      int id,size,type,flag;
      struct msgbuf *msgmp;

    㭪 msgsnd 뫠 ᮮ饭 㪠 ࠧ   (size)  
 msgp  । ᮮ饭  䨪஬ id.  msgbuf -
 ᫥騬 ࠧ:

      struct msgbuf {
              long mtype;
              char mtext[];
      };

    ᫨   ࠬ flag  IPC_NOWAIT 襭, 㭪 msgsnd 㤥 -
⠭   ,  ࠧ ⤥쭮 ᮮ饭    ᫮
ᮮ饭  ⥬ ॢ ⨬ ᨬ. ᫨  IPC_NOWAIT -
, 㭪 msgsnd    뢠 ᢮ 믮.
    㭪 msgrcv ਭ ᮮ饭  ।  䨪஬ id. ᫨
ࠬ  type    㫥 祭,  । 㤥 ࠭ ᮮ饭,
ࢮ  ; ᫨ ⥫쭮 祭,  ।  롨ࠥ  ࢮ
ᮮ饭    ⨯; ᫨ ⥫쭮 祭,  । 롨ࠥ
ᮮ饭, 饥 ᠬ 訩 ⨯ ।  ⨯,  祭    
ॢ蠥  ᮫⭮  祭 ࠬ type.  ࠬ size 㪠뢠
ᨬ ࠧ ᮮ饭,  짮⥫.  ᫨    ࠬ
flag  ⠭  MSG_NOERROR,  ⮬ 砥,  ࠧ 砥 -
饭 ॢ ।, ⠭ ࠬ஬ size,  ०  -
饭. ᫨  ᮮ⢥騩  襭,    㭪 -
  訡. ᫨  ࠬ flag  IPC_NOWAIT 襭, 㭪
msgrcv ਮ⠭ ᢮ 믮   ,  ᮮ饭, 㤮⢮-
饥 㪠  ࠬ type ᫮,  㤥 祭. ᫨ ᮮ⢥-
騩  襭, 㭪  ᢮ ࠡ . 㭪  msgrcv
頥 ࠧ 祭 ᮮ饭 ( ).


        i
      ______________________________

      nice(increment)
      int increment;

    㭪  nice 㢥稢 祭 ᮮ⢥饩 , -
饩  ᫥ ਮ  ஢  ⥪饣  ,    稭
increment.  祭  祭 nice   ᭨ ਮ ஢-
.


        pe
      ______________________________

      #include <fcntl.h>

      open(filename,flag,mode)
      char *filename;
      int flag,mode;

    㭪 open 믮 ⨥ 㪠 䠩  ᮮ⢥⢨   -

                                    408

祭 ࠬ flag. 祭 ࠬ flag ।⠢ ᮡ 
 ᫥ ࠧ冷 (祬    ࠧ冷   ᯮ짮
⮫쪮 ):

      O_RDONLY    ⮫쪮  ⥭
      O_WRONLY    ⮫쪮  
      O_RDWR       ⥭  
      O_NDELAY   ᫨  䠩    ᯥ樠 䠩 ன-
                 ⢠, 㭪 頥 ࠢ,   -
                  ⢥⭮ ᨣ; ᫨ 䠩  -
                  ,   㭪    砥   㤠
                 頥 ࠢ    ( 樥
                 訡,   O_WRONLY ⠭),  -
                   䠩 㣨 ᮬ
      O_APPEND   塞  뢠   䠩
      O_CREAT    ᫨ 䠩  , ᮧ ; ० ᮧ-
                  (mode)    ,    㭪樨
                 creat; ᫨ 䠩 㦥 ,  䫠 -
                 
      O_TRUNC    㪮  䠩  0
      O_EXCL     ᫨      O_CREAT ⠭   䠩
                 , 㭪    㤥  믮; 
                 ⠪ 뢠 "쭮 ⨥"

    㭪  open 頥 ਯ 䠩  ᫥饣 ᯮ짮
 㣨 ⥬ 㭪.


        aus
      ______________________________

      pause()

    㭪 pause ਮ⠭ 믮 ⥪饣   祭
ᨣ.


        ip
      ______________________________

      pipe(fildes)
      int fildes[2];

    㭪 pipe 頥 ਯ ⥭    (ᮮ⢥⢥,  
fildes[0]    fildes[1])   .  । १  
浪 㯫;         ⠭ .


        lock
      ______________________________

      #include <sys/lock.h>

      plock(op)
      int op;

    㭪 plock ⠭  ᭨ ஢ ⥩   -
  ᨬ  祭 ࠬ op:


                                    409

      PROCLOCK   ஢      
      TXTLOCK    ஢    
      DATLOCK    ஢    
      UNLOCK      ஢  ⥩


        rofil
      ______________________________

      profil(buf,size,offset,scale)
      char *buf;
      int size,offset,scale;

    㭪 profil 訢   䨫 믮 .  ࠬ
buf  ।  ᨢ, 騩 ᫮  , 믮 
ࠧ . ࠬ size । ࠧ ᨢ buf,  offset  -  -
砫  ⪠ 䨫஢, scale - 樥 ⠡஢.


        tra
      ______________________________

      ptrace(cmd,pid,addr,data)
      int cmd,pid,addr,data;

    㭪  ptrace  ⥪饬   믮 ஢
㣮 , 饣 䨪 pid,   ᮮ⢥⢨    祭
ࠬ cmd:

      0     ࠧ ஢ ⮬ (  㪠)
      1,2    ᫮,  ᯮ   addr  -
            ࠭⢥ 㥬   䨪஬ pid
      3      ᫮, ᯮ  ࠭⢥ -
                 ᬥ饭 addr
      4,5    祭   addr  ࠭⢥ -
            㥬 
      6      祭    ᬥ饭 addr
      7     ⠢ 㥬     ᢮ -
            
      8     ⠢ 㥬    ᢮ 믮-
            
      9     設-ᨬ  - ⠭  ᫮ -
            ﭨ ணࠬ      ⫠  ० 蠣
            믮


        read
      ______________________________

      read(fildes,buf,size)
      int fildes;
      char *buf;
      int size;

    㭪 read 믮 ⥭  䠩  ਯ஬ fildes  짮-
⥫᪨  buf 㪠  ࠬ size ⢠ . 㭪 -
頥  ᫮  䠪᪨  ⠭ . ᫨ 䠩  ᯥ樠
䠩 ன⢠    ᫨  맮 㭪樨  open    ⠭
  O_NDELAY,  㭪 read  砥 ⢨ 㯭  ⥭ 

                                    410

 ࠢ .


        semctl
      ______________________________

      #include <sys/types.h>
      #include <sys/ipc.h>
      #include <sys/sem.h>

      semctl(id,num,cmd,arg)
      int id,num,cmd;
      union semun {
              int val;
              struct semid_ds *buf;
              ushort *array;
      } arg;

    㭪 semctl 믮 㪠  ࠬ cmd   ।
ᥬ஢  䨪஬ id.

      GETVAL     祭 ⮣ ᥬ,   㪠-
                 ࠬ num
      SETVAL    ⠭ 祭 ᥬ,   㪠뢠-
                 ࠬ num, ࠢ 祭 arg.val
      GETPID     䨪 , 믮襣 -
                 㭪 semop   ⭮襭  ⮬ ᥬ-
                ,   㪠뢠 ࠬ num
      GETNCNT    ᫮  ᮢ,  ⮣ ,
                 祭 ᥬ ⠭ ⥫
      GETZCNT    ᫮  ᮢ,  ⮣ ,
                 祭 ᥬ ⠭ 㫥
      GETALL      祭     ᥬ஢      ᨢ
                arg.array
      SETALL    ⠭ 祭  ᥬ஢  ᮮ⢥⢨
                 ᮤন ᨢ arg.array
      IPC_STAT     ᥬ   -
                ஬ id   arg.buf
      IPC_SET   ⠭   祭   ६  sem_perm.uid,
                sem_perm.gid  sem_perm.mode (訥 9  ࠧ冷
                 sem_perm)    ᮮ⢥⢨  ᮤন
                 arg.buf
      IPC_RMID  㤠 ᥬ, 易  䨪஬ id,
                 ⥬

    ࠬ num 頥  ⢮ ᥬ஢  ࠡ뢠 .
 semid_ds । ᫥騬 ࠧ:

      struct semid_ds {
             struct ipc_perm   sem_perm;   /* , 뢠-
                                                ࠢ  -
                                               */
             int *             pad;        /* ᯮ -
                                               */
             ushort            sem_nsems;  /* ⢮  ᥬ-
                                              ஢   */
             time_t            sem_otime;  /* ६    믮
                                              ᫥  樨
                                               ᥬ஬ */

                                    411

             time_t            sem_ctime;  /* ६    ᫥
                                               */
      };

     ipc_perm    ,    㭪樨 msgctl.


        semget
      ______________________________

      #include <sys/types.h>
      #include <sys/ipc.h>
      #include <sys/sem.h>

      semget(key,nsems,flag)
      key_t key;
      int nsems,flag;

    㭪 semget ᮧ ᨢ ᥬ஢, ᯮ騩   ࠬ஬
key. ࠬ key  flag    ,    㭪樨 msgget.


        se
      ______________________________

      semop(id,ops,num)
      int id,num;
      struct sembuf **ops;

    㭪  semop  믮   権, ᮤঠ   ops,
 ᨢ ᥬ஢, 易  䨪஬ id. ࠬ num  ᮤ-
 ⢮ ᥩ, ⠢  ops.  sembuf ।-
 ᫥騬 ࠧ:

      struct sembuf {
             short    sem_num;   /*  ᥬ */
             short    sem_op;    /* ⨯ 樨  ᥬ஬ */
             short    sem_flg;   /* 䫠 */
      };

    ६ sem_num ᮤন 㪠⥫  ᨢ ᥬ஢, 樨஢-
      樥,  ६ sem_flg - 䫠   樨.
६ sem_op  ਭ ᫥騥 祭:

      ⥫쭮     ᫨ 㬬 祭 ᥬ    祭
                        sem_op >= 0, 祭 ᥬ 
                         稭 sem_op;   ⨢  砥,
                        㭪 ਮ⠭ ᢮ 믮,
                        ᫨  ࠧ襭 䫠
      ⥫쭮     㢥 祭 ᥬ    稭
                        sem_op
      㫥           ᫨  祭  ᥬ ࠢ 0, த-
                         믮;  ⨢ 砥, -
                        ⠭ 믮,  ᫨  ࠧ-
                         䫠

    ᫨      樨    ६   sem_flg   ⠭   䫠
IPC_NOWAIT,  㭪  semop  頥 ࠢ    ,
   뫠  ਮ⠭.  ᫨  ⠭  䫠  SEM_UNDO,

                                    412

⠭ ।饥 祭 ᥬ (sem_op ⠥  ⥪饩
㬬  ⨯  権).     , 祭 ᥬ 㤥
㢥祭   㬬. 㭪 semop 頥 祭 ᫥ 樨
 ᥬ஬.


        setpgr
      ______________________________

      setpgrp()

    㭪 setpgrp ࠢ 祭 䨪 㯯,    ன
ਭ ⥪騩 , 祭 䨪 ᠬ   -
頥  祭 䨪 㯯.


        setuid
      ______________________________

      setuid(uid)
      int uid;

      setgid(gid)
      int gid;

    㭪 setuid ⠭ 祭 䠪᪮  ᯮ⥫쭮 -
  䨪樨  짮⥫  ⥪饣 . ᫨ 뢠騩 
ᯮ  ࠢ 㯥௮짮⥫, 㭪  뢠  祭
㪠  .    ⨢  砥,  ᫨ 䠪᪨  䨪樨
짮⥫  祭, ࠢ 祭 uid, 㭪 setuid  ࠢ-
 ⮬ 祭  ᯮ⥫  䨪樨  짮⥫.    
ᠬ  ந室, ᫨ 祭 uid ࠢ , ࠭ ᫥ 믮
setuid-ணࠬ, ᪠   㭪樨 exec. 㭪  setgid  
    ⭮襭   㯯 .


        shmctl
      ______________________________

      #include <sys/types.h>
      #include <sys/ipc.h>
      #include <sys/shm.h>

      shmctl(id,cmd,buf)
      int id,cmd;
      struct shmid_ds *buf;

    㭪 shmctl 믮 ࠧ 樨   ࠧ塞 -
,  樨஢    䨪஬ id.  shmid_ds ।
᫥騬 ࠧ:

      struct shmid_ds {
            struct ipc_perm   shm_perm;   /* , 뢠-
                                              ࠢ 㯠 */
            int               shm_segsz;  /* ࠧ ᥣ */
            int *             pad1;       /* ᯮ  -
                                              */
            ushort            shm_lpid;   /* 䨪   -
                                             , 易  

                                    413

                                             ᫥  樥
                                               */
            ushort            shm_cpid;   /* 䨪   -
                                             -ᮧ⥫ */
            ushort            shm_nattch; /* ⢮ ᮥ-
                                               ᠬ */
            short             pad2;       /* ᯮ  -
                                              */
            time_t            shm_atime;  /* ६     ᫥
                                             ᮥ */
            time_t            shm_dtime;  /* ६     ᫥
                                             ᮥ */
            time_t            shm_ctime;  /* ६     ᫥
                                             ᥭ     -
                                              */
      };

    樨:

      IPC_STAT        buf ᮤন  -
                  , 樨஢  䨪஬ id
      IPC_SET     ⠭  祭  ६  shm_perm.uid,
                  shm_perm.gid  shm_perm.mode (9   ࠧ-
                   )      ᮮ⢥-
                  ⢨  ᮤন  buf
      IPC_RMID    㤠  ⥬   ࠧ塞 ,
                  樨஢  䨪஬ id


        shmget
      ______________________________

      #include <sys/types.h>
      #include <sys/ipc.h>
      #include <sys/shm.h>

      shmget(key,size,flag)
      key_t key;
      int size,flag;

    㭪 shmget 頥   ࠧ塞    ᮧ  .
ࠬ size  ࠧ   . ࠬ key  flag  
 ,    㭪樨 msgget.


        sh
      ______________________________

      #include <sys/types.h>
      #include <sys/ipc.h>
      #include <sys/shm.h>

      shmat(id,addr,flag)
      int id,flag;
      char *addr;

      shmdt(addr)
      char *addr;


                                    414

    㭪 shmat ᮥ  ࠧ塞 , 樨஢ 
䨪஬  id,    ᭮ ࠭ . ᫨ ࠬ addr
 㫥 祭,  ᠬ 롨ࠥ  ᮥ   -
騩 .  ⨢ 砥  ⠥ ᮥ , ᯮ
  ⢥ 祭 ࠬ addr  ⢥ . ᫨  ࠬ flag
⠭  SHM_RND,   砥 室 㣫 . 㭪
shmat 頥 ,  ஬  ᮥ 䠪᪨.
    㭪 shmdt ᮥ  ࠧ塞 , ᮥ -
   addr.


        signal
      ______________________________

      #include <signal.h>

      signal(sig,function)
      int sig;
      void (*func)();

    㭪 signal  ⥪饬    ࠢ  ࠡ⪮
ᨣ. ࠬ sig  ਭ ᫥騥 祭:

      SIGHUP    "ᠭ"
      SIGINT    뢠
      SIGQUIT   ४饭 ࠡ
      SIGILL    饭 
      SIGTRAP   ७ 뢠, 易  ஢
      SIGIOT     IOT
      SIGEMT     EMT
      SIGFPE    ᮡ   ࠡ   ᫠  饩 ⮩
      SIGKILL   㤠  ⥬
      SIGBUS    訡  設
      SIGSEGV   襭 ᥣ樨
      SIGSYS    ⨬ 㬥  맮 ⥬ 㭪樨
      SIGPIPE       ⢨ 뢠 ᮢ
      SIGALRM   ᨣ ॢ
      SIGTERM   襭 ணࠬ
      SIGUSR1   ᨣ, ।塞 짮⥫
      SIGUSR2   ன ᨣ, ।塞 짮⥫
      SIGCLD     ⮬
      SIGPWR    ⪠ ⠭

    ࠬ function  ᫥騬 ࠧ:
      SIG_DFL   ⢨    㬮砭. 砥 襭 -
                  砥 㯫  ᨣ,  -
                祭 SIGPWR  SIGCLD.  ᫨ ᨣ  ⨯
                SIGQUIT, SIGILL, SIGTRAP, SIGIOT, SIGEMT, SIGFPE,
                SIGBUS, SIGSEGV      SIGSYS,   ᮧ  䠩
                "core", ᮤঠ騩  ࠧ   
      SIG_IGN   ஢ 㯫 ᨣ
      㭪    楤  ࠭⢥ .   -
                饭   ०  ந 饭 
                㪠 㭪樨  ।祩   ᨣ 
                ⢥ 㬥. ᫨ ᨣ  ⨯, ⫨-
                  SIGILL,  SIGTRAP  SIGPWR,   ⮬-
                ᪨ ⠭    ணࠬ ࠡ⪨
                ᨣ  SIG_DFL.  ⨯ SIGKILL ᮬ
                 ࠡ뢠

                                    415



.te1        stat
      ______________________________

      stat(filename,statbuf)
      char *filename;
      struct stat *statbuf;

      fstat(fd,statbuf)
      int fd;
      struct stat *statbuf;

    㭪 stat 頥 ଠ   (ﭨ) 㪠 䠩-
. 㭪 fstat 믮   ᠬ  ⭮襭 ⮣ 䠩, -
 ਯ fd.  statbuf । ᫥騬 ࠧ:

      struct stat {
            dev_t   st_dev;   /*  ன⢠,  ஬ -
                                 室 䠩 */
            ino_t   st_ino;   /*   */
            ushort  st_mode;  /* ⨯ 䠩  (. mknod)    ࠢ
                                 㯠   (. chmod) */
            short   st_nlink; /* ᫮  痢,  㪠뢠  䠩 */
            ushort  st_uid;   /*  䨪樨  䠩 */
            ushort  st_gid;   /*  䨪樨 㯯 */
            dev_t   st_rdev;  /* 訩  訩  ன⢠ */
            off_t   st_size;  /* ࠧ   */
            time_t  st_atime; /* ६ ᫥ 饭 */
            time_t  st_mtime; /* ६ ᫥ ᥭ   */
            time_t  st_ctime; /* ६ ᫥    */
      };


        sti
      ______________________________

      stime(tptr)
      long *tptr;

    㭪  stime  ⠭  ⥬  ६    ᮮ⢥⢨ 
祭, 㪠  ࠬ  tptr.  ६  㪠뢠    ᥪ㭤  
00:00:00 1 ﭢ 1970   ਭ.


        sy
      ______________________________

      sync()

    㭪  sync 㦠 ᮤঠ  ⥬  ଠ (-
  䠩 ⥬)  .


        ti
      ______________________________

      time(tloc)


                                    416

      long *tloc;

    㭪 time 頥 ⥬ ६  ᥪ㭤  00:00:00 1  ﭢ
1970   ਭ.


        times
      ______________________________

      #include <sys/types.h>
      #include <sys/times.h>

      times(tbuf)
      struct tms *tbuf;

    㭪  times  頥  ६  ⠩ ⨪, ॠ쭮 襤襥 
 ந쭮   諮,       tbuf  ᫥饩
⭮ ଠ樥:

      struct tms {
            time_t   tms_utime;  /* த⥫쭮 ᯮ짮-
                                       ०  */
            time_t   tms_stime;  /* த⥫쭮 ᯮ짮-
                                       ०  */
            time_t   tms_cutime; /* 㬬  祭  tms_utime  
                                    tms_cutime  ⮬ */
            time_t   tms_sutime; /* 㬬  祭  tms_stime  
                                    tms_sutime  ⮬ */
      };


        limit
      ______________________________

      ulimit(cmd,limit)
      int cmd;
      long limit;

    㭪 ulimit    ⠭ ࠧ ࠭-
祭  ᨬ  祭 ࠬ cmd:

      1   ᨬ ࠧ 䠩 (   512 ),  
              
      2 ⠭ ࠭祭 ᢥ  ࠧ 䠩 ࠢ 祭  -
            limit
      3    祭  孥 窨 뢠 (ᨬ 㯭
              )


        ask
      ______________________________

      umask(mask)
      int mask;

    㭪 umask ⠭ 祭 ᪨, 뢠饩  ०  ᮧ
䠩 (mask),  頥 ஥ 祭.  ᮧ 䠩  ࠧ-
 㯠,  ᮮ⢥ ⠭ ࠧ  mask,  -
襭.

                                    417


        ount
      ______________________________

      umount(specialfile)
      char *specialfile

    㭪  umount 믮 ஢ 䠩 ⥬, ᯮ
 ன⢥ -뢮  specialfile.


        a
      ______________________________

      #include <sys/utsname.h>

      uname(name)
      struct utsname *name;

    㭪 uname 頥 ଠ,  ⥬  ᮮ⢥-
⢨  ᫥饩 ன:

      struct utsname {
            char   sysname[9];  /*  */
            char   nodename[9]; /*  ⥢ 㧫 */
            char   release[9];  /* ଠ  ᨨ ⥬ */
            char   version[9];  /* ⥫쭠  ଠ  ᨨ */
            char   machine[9];  /* 孨᪨  */
      };


        link
      ______________________________

      unlink(filename)
      char *filename;

    㭪 unlink 㤠  ⠫   㪠 䠩.


        stat
      ______________________________

      #include <sys/types.h>
      #include <ustat.h>

      ustat(dev,ubuf)
      int dev;
      struct ustat *ubuf;

    㭪 ustat 頥 ᪨ , ࠪਧ騥 䠩
⥬  䨪஬ dev (訩  訩  ன⢠).  -
 ustat । ᫥騬 ࠧ:

      struct ustat {
            daddr_t  f_tfree;     /* ⢮  ᢮    */
            ino_t    f_tinode;    /* ⢮  ᢮ ᮢ */
            char     f_fname[6];  /*  䠩 ⥬ */
            char     f_fpack[6];  /* ᮪饭    (㯠)

                                    418

                                      䠩 ⥬ */
      };


        ti
      ______________________________

      #include <sys/types.h>

      utime(filename,times)
      char *filename;
      struct utimbuf *times;

    㭪  utime ⠭ ६ ᫥ 饭  㪠
䠩  ᫥ ᥭ   ᮮ⢥⢨  祭ﬨ,  -
 㪠뢠 ࠬ times. ᫨ ࠬ ᮤন 㫥  祭,  -
 ⥪饥 ६.  ⨢ 砥 ࠬ 㪠뢠  ᫥
:

      struct utimbuf {
            time_t   axtime;   /* ६ ᫥ 饭 */
            time_t   modtime;  /* ६ ᫥ ᥭ  */
      };

     祭 뢠  00:00:00 1 ﭢ 1970   ਭ.


        wait
      ______________________________

      wait(wait_stat)
      int *wait_stat;

    㭪  wait 㦤  ਮ⠭ ᢮ 믮  
襭 ⮬    ਮ⠭ 㥬  .  ᫨
祭 ࠬ wait_stat 㫥,  ।⠢ ᮡ ,  -
஬ 㭪 뢠 頥  ଠ.  ⮬ ᯮ-
  ⮫쪮 16  ࠧ冷  . ᫨ 㦥 訢訩
᢮ 믮 ⮬, 8  ࠧ冷   ᮤঠ  0,    8
 ࠧ冷 -   (㬥) 㭪樨 exit. ᫨ ⮬ -
訫  ᢮  믮    १ 祭 ᨣ,   㭪樨
exit ᮤন  ᨣ. ஬ ⮣, ᫨ ࠧ -⮬  -
   䠩 "core", ந ⠭  0200. ᫨ 㦥 ਮ-
⠭訩 ᢮ 믮 㥬 ,  8    ࠧ冷  
 㭪樨 wait ᮤঠ  ਢ襣   ਮ⠭ ᨣ, 
8  ࠧ冷 - 쬨筮 ᫮ 0177.


        writ
      ______________________________

      write(fd,buf,count)
      int fd,count;
      char *buf;

    㭪  write  믮  㪠  count ⢠  -
, 稭   buf,  䠩  ਯ஬ fd.



                                    419


        


    [Babaoglu 81] Babaoglu, O., and W.Joy, "Converting a  Swap-Based  System
          to  do  Paging  in  an Architecture Lacking Page-Referenced Bits",
          Proceedings of the 8th Symposium on Operating Systems  Principles,
          ACM Operating Systems Review, Vol. 15(5), Dec. 1981, pp. 78-86.
    [Bach  84]  Bach,  M.J.,  and S.J.Buroff, "Multiprocessor UNIX Systems",
          AT&T Bell Laboratories Technical Journal, Oct. 1984, Vol. 63,  No.
          8, Part 2, pp. 1733-1750.
    [Barak  80]  Barak, A.B. and Aapir, "UNIX with Satellite Processors",
          Software - Practice and Experience, Vol. 10, 1980, pp. 383-392.
    [Beck  85]  Beck,  B.  and  B.Kasten,  "VLSI  Assist   in   Building   a
          Multiprocessor UNIX System", Proceedings of the USENIX Association
          Summer Conference, June 1985, pp. 255-275.
    [Berkeley   83]   UNIX   Programmer's   Manual,  4.2  Berkeley  Software
          Distribution, Virtual VAX-11 Version, Computer  Science  Division,
          Department   of   Electrical  Engineering  and  Computer  Science,
          University of California at Berkeley, August 1983.
    [Birrell  84]  Birrell,  A.D.  and  B.J.Nelson,   "Implementing   Remote
          Procedure  Calls",  ACM  Transactions on Computer Systems, Vol. 2,
          No. 1, Feb. 1984, pp. 39-59.
    [Bodenstab 84] Bodenstab, D.E.,  T.F.Houghton,  K.A.Kelleman,  G.Ronkin,
          and  E.P.Schan,  "UNIX Operating System Porting Experiences", AT&T
          Bell Laboratories Technical Journal, Vol. 63, No.  8,  Oct.  1984,
          pp. 1769-1790.
    [Bourne  78]  Bourne,  S.R., "The UNIX Shell", The Bell System Technical
          Journal, July-August 1978, Vol. 57, No. 6, Part 2, pp. 1971-1990.
    [Bourne 83] Bourne, S.R., The UNIX System, Addison-Wesley, Reading,  MA,
          1983.
    [Brownbridge  82]  Brownbridge,  D.R., L.F.Marshall, and B.Randell, "The
          Newcastle Connection or UNIXes of the World Unite!" in Software  -
          Practice and Experience, Vol. 12, 1982, pp. 1147-1162.
    [Bunt  76]  Bunt,  R.B.,  "Scheduling Techniques for Operating Systems",
          Computer, Oct. 1976, pp. 10-17.
    [Christian 83] Christian, K., The UNIX Operating System,  John  Wiley  &
          Sons Inc., New York, NY, 1983.
    [Coffman  73]  Coffman, E.G., and P.J.Denning, Operating Systems Theory,
          Prentice-Hall Inc., Englewood Cliffs, NJ, 1973.
    [Cole 85] Cole, C.T., P.B.Flinn, and A.B.Atlas, "An Implementation of an
          Extended  File  System  for  UNIX",  Proceedings  of  the   USENIX
          Conference, Summer 1985, pp. 131-149.
    [Denning 68] Denning, P.J., "The Working Set Model for Program Behavior,
          Communications  of  the  ACM,  Volume  11,  No.  5,  May 1968, pp.
          323-333.
    [Dijkstra 65] Dijkstra, E.W.,  "Solution  of  a  Problem  in  Concurrent
          Program Control", CACM, Vol. 8, No. 9, Sept. 1965, p. 569.
    [Dijkstra  68]  Dijkstra,  E.W.,  "Cooperating Sequential Processes", in
          Programming Languages, ed. F.Genuys, Academic Press, New York, NY,
          1968.
    [Felton  84]  Felton,  W.A.,  G.L.Miller,  and   J.M.Milner,   "A   UNIX
          Implementation  for  System/370", AT&T Bell Laboratories Technical
          Journal, Vol. 63, No. 8, Oct. 1984, pp. 1751- 1767.
    [Goble 81] Goble, G.H. and M.H.Marsh, "A  Dual  Processor  VAX  11/780",
          Purdue University Technical Report, TR-EE 81-31, Sept. 1981.
    [Henry   84]   Henry,  G.J.,  "The  Fair  Share  Scheduler",  AT&T  Bell
          Laboratories Technical Journal, Oct. 1984, Vol. 63, No. 8, Part 2,
          pp. 1845-1858.

                                    420

    [Holley 79] Holley, L.H., R.P421rmelee, C.A.Salisbury,  and  D.  N.Saul,
          "VM/370 Asymmetric Multiprocessing", IBM Systems Journal, Vol. 18,
          No. 1, 1979, pp. 47-70.
    [Holt  83]  Holt,  R.C.,  Concurrent Euclid, the UNIX System, and Tunis,
          Addison-Wesley, Reading, MA, 1983.
    [Horning  73]  Horning,  J.J.,  and  B.Randell,  "Process  Structuring",
          Computing Surveys, Vol. 5, No. 1, March 1973, pp. 5-30.
    [Hunter  84]  Hunter, C.B. and E.Farquhar, "Introduction to the NSI16000
          Architecture", IEEE Micro, April 1984, pp. 26- 47.
    [Johnson 78] Johnson, S.C. and D.M.Ritchie, "Portability of  C  Programs
          and  the UNIX System", The Bell System Technical Journal, Vol. 57,
          No. 6, Part 2, July-August, 1978, pp. 2021-2048.
    [Kavaler 83] Kavaler, P. and A.Greenspan, "Extending UNIX to  Local-Area
          Networks", Mini-Micro Systems, Sept. 1983, pp. 197-202.
    [Kernighan  78]  Kernighan,  B.W.,  and  D.M.Ritchie,  The C Programming
          Language, Prentice-Hall, Englewood Cliffs, NJ, 1978.
    [Kernighan  84]  Kernighan,  B.W.,  and  R.Pike,  The  UNIX  Programming
          Environment, Prentice-Hall, Englewood Cliffs, NJ, 1984.
    [Killian  84]  Killian,  T.J.,  "Processes as Files", Proceedings of the
          USENIX Conference, Summer 1984, pp. 203-207.
    [Levy  80]  Levy,  H.M.,  and  R.H.Eckhouse,  Computer  Programming  and
          Architecture: The VAX-11, Digital Press, Bedford, MA, 1980.
    [levy  82] Levy, H.M., and P.H.Lipman, "Virtual Memory Management in the
          VAX/VMS Operating System", Computer, Vol. 15, No. 3,  March  1982,
          pp. 35-41.
    [Lu 83] Lu, P.M., W.A.Dietrich, et. al., "Architecture of a VLSI MAP for
          BELLMAC-32 Microprocessor", Proc. of IEEE Spring Compcon, Feb. 28,
          1983, pp. 213-217.
    [Luderer  81]  Luderer,  G.W.R.,  H.Che,  J.P.Haggerty, P.A.Kirslis, and
          W.T.Marshall, "A  Distributed  UNIX  System  Based  on  a  Virtual
          Circuit  Switch", Proceedings of the Eighth Symposium on Operating
          Systems Principles, Asilomar, California, December 14-16, 1981.
    [Lycklama 78a] Lycklama, H. and D.L.Bayer, "The MERT Operating  System",
          The  Bell  System  Technical  Journal,  Vol.  57,  No.  6, Part 2,
          July-August 1978, pp. 2049-2086.
    [Lycklama 78b] Lycklama, H. and C.Christensen, "A Minicomputer Satellite
          Processor System", The Bell System Technical Journal, Vol. 57, No.
          6, Part 2, July- August 1978, pp. 2103-2114.
    [McKusick 84] McKusick, M.K., W.N.Joy, S.J.Leffler, and R.S.  Fabry,  "A
          Fast  File System for UNIX", ACM Transactions on Computer Systems,
          Vol. 2(3), August 1984, pp. 181-197.
    [Mullender 84] Mullender, S.J.  and  A.S.Tanenbaum,  "Immediate  Files",
          Software  -  Practice  and Experience, Vol. 14(4), April 1984, pp.
          365-368.
    [Nowitz 80] Nowitz, D.A. and  M.E.Lesk,  "Implementation  of  a  Dial-Up
          Network  of  UNIX Systems", IEEE Proceedings of Fall 1980 COMPCON,
          Washington, D.C., pp. 483-486.
    [Organick 72] Organick, E.J., The Multics System: An Examination of  Its
          Structure", The MIT Press, Cambridge, MA, 1972.
    [Peachey  84]  Peachey,  D.R., R.B.Bunt, C.L.Williamson, and T.B.Brecht,
          "An Experimental Investigation of Scheduling Strategies for UNIX",
          Performance  Evaluation  Review,  1984  SIGMETRICS  Conference  on
          Measurement and Evaluation of Computer Systems, Vol. 12(3), August
          1984, pp. 158-166.
    [Peterson  83]  Peterson,  James L. and A.Silberschatz, Operating System
          Concepts, Addison-Wesley, Reading, MA, 1983.
    [Pike 84] Pike, R., "The Blit: A Multiplexed  Graphics  Terminal",  AT&T
          Bell  Laboratories  Technical  Journal, Oct. 1984, Vol. 63, No. 8,
          Part 2, pp. 1607-1632.

                                    421

    [Pike 85] Pike, R., and P.Weinberger, "The Hideous Name", Proceedings of
          the USENIX Conference, Summer 1985, pp. 563-568.
    [Postel  80]  Postel,  J.  (ed.),  "DOD  Standart  Transmission  Control
          Protocol", ACM Computer Communication Review, Vol. 10, No. 4, Oct.
          1980, pp. 52-132.
    [Postel  81]  Postel,  J., C.A.Sunshine, and D.Cohen, "The ARPA Internet
          Protocol", Computer Networks,  Vol.  5,  No.  4,  July  1981,  pp.
          261-271.
    [Raleigh  76]  Raleigh,  T.M., "Introduction to Scheduling and Switching
          under UNIX", Proceedings of the Digital Equipment  Computer  Users
          Society, Atlanta, Ga., May 1976, pp. 867-877.
    [Richards  69]  Richards,  M.,  "BCPL:  A  Tool for Compiler Writing and
          Systems Programming", Proc. AFIPS SJCC 34, 1969, pp. 557-566.
    [Ritchie 78a] Ritchie,  D.M.  and  K.Thompson,  "The  UNIX  Time-Sharing
          System", The Bell System Technical Journal, July-August 1978, Vol.
          57, No. 6, Part 2, pp. 1905-1930.
    [Ritchie   78b]  Ritchie,  D.M.,  "A  Retrospective",  The  Bell  System
          Technical Journal, July-August 1978, Vol. 57, No. 6, Part  2,  pp.
          1947-1970.
    [Ritchie  81] Ritchie, D.M. and K.Thompson, "Some Further Aspects of the
          UNIX Time-Sharing System", Mini-Micro Software,  Vol.  6,  No.  3,
          1981, pp. 9-12.
    [Ritchie  84a]  Ritchie,  D.M., "The Evolution of the UNIX Time- sharing
          System", AT&T Bell Laboratories Technical Journal, Oct. 1984, Vol.
          63, No. 8, Part 2, pp. 1577-1594.
    [Ritchie 84b] Ritchie, D.M., "A Stream Input Output System",  AT&T  Bell
          Laboratories Technical Journal, Oct. 1984, Vol. 63, No. 8, Part 2,
          pp. 1897-1910.
    [Rochkind  85] Rochkind, M.J., Advanced UNIX Programming, Prentice-Hall,
          1985.
    [Saltzer 66] Saltzer, J.H., Traffic Control in  a  Multiplexed  Computer
          System, Ph.D. Thesis, MIT, 1966.
    [Sandberg  85] Sandberg, R., D.Goldberg, S.Kleiman, D.Walsh, and B.Lyon,
          "Design  and  Implementation  of  the  Sun  Network   Filesystem",
          Proceedings of the USENIX Conference, Summer 1985, pp. 119-131.
    [SVID  85]  System  V  Interface  Definition, Spring 1985, Issue 1, AT&T
          Customer Information Center, Indianapolis, IN.
    [System V 84a] UNIX System V User Reference Manual.
    [System V 84b] UNIX System V Administrator's Manual.
    [Thompson 74] Thompson,  K.  and  D.M.Ritchie,  "The  UNIX  Time-Sharing
          System",  Communications  of  the ACM, Vol. 17, No. 7, July, 1974,
          pp. 365-375 (ࠢ  ९⠭  [Ritchie 78a]).
    [Thompson 78] Thompson,  K.,  "UNIX  Implementation",  The  Bell  System
          Technical Journal, Vol. 57, No. 6, Part 2, July- August, 1978, pp.
          1931-1946.
    [Weinberger  84] Weinberger, P.J., "Cheap Dynamic Instruction Counting",
          The AT&T Bell Laboratories Technical Journal, Vol. 63, No. 6, Part
          2, October 1984, pp. 1815-1826.












                                    422
