the unix time-sharing system.pdf

11
The UNIX Time- Sharing System Dennis M. Ritchie and Ken Thompson Bell Laboratories UNIX is a general-purpose, m ulti-user, interactive operating system for the Digital Equipment Corporation PDP-11/40 and 11/45 computers. It offers a number of features seldom found even in larger operating systems, including: (1) a hierarchical file system incorporating demountable volumes; (2) compatible file, device, and inter-process I/O; (3) the ability to initiate asynchronous processes; (4) system command language selectable on a per-user basis; and (5) over 100 subsystems including a dozen languages. This paper discusses the nature and implementation of the file system and of the user command interface. Key Words and Phrases: time-sharing, operating system, file system, command language, PDP-11 CR Categories: 4.30, 4.32 1. Introduction There have been three versions of UNIX. The earliest version (circa 196%70) ran on the Digital Equipm ent Corporation PDP-7 and -9 computers. The second ver- sion ran on the unprotected PDP-11/20 computer. This paper describes only the PDP-I 1/40 and /45 [1] system since it is more modern and many of the differences between it and older UNIX systems result from redesign of features found to be deficient or lacking. Since PDP-11 UNIX becam e operational in February 1971, about 40 installations have been put into service; they are generally smaller than the system described here. Most of them are engaged in applications such as the preparation and formatting of patent applications and other textual material, the collection and processing of trouble data from various switching machines within the Bell System, and recording and checking telephone service orders. Our own installation is used mainly for research in operating systems, languages, com- puter networks, and other topics in computer science, and also for document preparation. Perhaps the most important achievement of UNIX is to demonstrate that a powerful operating system for interactive use need not be expensive either in equipment or in human effort: UNIX can run on hardw are costing as little as $40,000, and less than two m an- years were spent on the main system software. Yet UNIX contains a number of features seldom offered even in much larger systems. It is hoped, however, the users of UNIX will find that the most important characteristics of the system are its simplicity, elegance, and ease of use. Besides the system proper, the major programs available under UNIX are: assembler, text editor based on QED [2], linking loader, symbolic debugger, compiler for a language resembling BCPL [3] with types and structures (C), interpreter for a dialect of BASIC, text formatting program, Fortran compiler, Snobol inter- preter, top-down compiler-com piler (TMC) [4], bot- tom-up compiler-compiler (YACC), form letter generator, macro processor (M6) [5], and perm uted index program. There is also a host of maintenance, utility, recrea- tion, and novelty programs. All of these programs were written locally. It is worth noting that the system is totally self-supporting. All UNIX software is maintained under UNIX; likewise, UNIX documents are generated and formatted by the UNIX editor and text formatting program. Copyright © 1974, Association for Computing M achinery, Inc. General permission to republish, but not for profit, all or part of this material is granted provided that ACM s copyright notice is given and that reference is made to the publication, to its date of issue, and to the fact that reprinting privileges we re granted by permission of the Association for Computing M achinery. This is a revised version of a paper presented at the Fourth ACM Symposium on Operating Systems Principles, IBM Thomas J. Watson Research Center, Yorktown H eights, New York, October 15-17, 1973. Authors' address: Bell Laboratories, Murray Hill, NJ 07974. 365 2. Hardw are and Software Environment The PDP-11/45 on which our UNIX installation is implemented is a 16-bit word (8-bit byte) computer with 144K bytes of core m emory; UNIX occupies 42K bytes. This system, however, includes a very large number of device drivers and enjoys a generous allotm ent of space for I/O buffers and system tables; a minimal system Comm unications July 1974 of Volume 17 the ACM Num ber 7

Upload: tinchogleria

Post on 02-Jun-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The UNIX time-sharing system.pdf

8/11/2019 The UNIX time-sharing system.pdf

http://slidepdf.com/reader/full/the-unix-time-sharing-systempdf 1/11

T h e U N I X T im e -

Sharing System

D e n n i s M . R i tc h ie a n d K e n T h o m p s o n

B e l l L a b o ra t o r i e s

UNIX i s a g e n e r a l -p u r p o s e , m u l t i -u s e r , i n t e r a c t i v e

o p e r a t i n g s y s t e m f o r t h e D i g i t a l E q u i p m e n t C o r p o r a t i o n

P D P - 1 1 / 4 0 a n d 1 1 / 4 5 c o m p u t e r s . I t o f f e r s a n u m b e r o f

f e a t u r e s s e l d o m f o u n d e v e n in l a r g e r o p e r a t i n g s y s t e m s ,

i n c l u d i n g : (1 ) a h i e r a r c h i c a l f i le s y s t e m i n c o r p o r a t i n g

d e m o u n t a b l e v o l u m e s ; (2 ) c o m p a t i b l e f i l e , d e v i c e , a n d

i n t e r - p r o c e s s I /O ; (3 ) t h e a b i l i t y t o i n i t i a t e a s y n c h r o n o u s

p r o c e s s es ; ( 4 ) s y s t e m c o m m a n d l a n g u a g e s e l e c t a b l e o n a

p e r -u s e r b a s i s ; a n d (5 ) o v e r 1 0 0 s u b s y s t e m s i n c l u d i n g a

d o z e n l a n g u a g e s . Th i s p a p e r d i s c u s s e s t h e n a t u r e a n d

i m p l e m e n t a t i o n o f t h e f il e s y s t e m a n d o f t h e u s e r

c o m m a n d i n t e r fa c e .

K e y W o r d s a n d P h r a s e s : t i m e - s h a r i n g , o p e r a t i n g

s y s t e m , f il e s y s t e m , c o m m a n d l a n g u a g e , P D P - 1 1

C R C a t e g o r i e s : 4 . 3 0 , 4 . 3 2

1 . I n t r o d u c t i o n

T h e r e h a v e b e e n t h r e e v e r s i o n s o f U N IX . T h e e a r l ie s t

v e r s i o n ( c i rc a 1 9 6 % 7 0 ) r a n o n th e D i g i t a l E q u i p m e n t

C o r p o r a t i o n P DP -7 a n d - 9 c o m p u t e r s . T h e s e c o n d v e r -

s i o n r a n o n t h e u n p r o t e c t e d P D P - 1 1 / 2 0 c o m p u t e r . T h i s

p a p e r d e s c r i b e s o n l y t h e P D P -I 1 / 4 0 a n d / 4 5 [ 1] s y s t e m

s i nc e it i s m o r e m o d e r n a n d m a n y o f th e d i f f e r e n ce s

b e t w e e n i t a n d o l d e r U N I X s y s t e m s r e s u l t f r o m r e d e s ig n

o f f e a t u r e s f o u n d t o b e d e f i c i e n t o r l a c k in g .

S i n c e PD P -1 1 U N I X b e c a m e o p e r a t i o n a l i n F e b r u a r y

1 9 7 1 , a b o u t 4 0 i n s t a l l a t i o n s h a v e b e e n p u t i n t o s e r v i c e ;

t h e y a r e g e n e r a l l y s m a l l e r t h a n t h e s y s t e m d e s c r i b e d

h e r e . M o s t o f t h e m a r e e n g a g e d i n a p p l i c a t i o n s s u c h a s

t h e p r e p a r a t i o n a n d f o r m a t t i n g o f p a t e n t a p p l i c at i o n s

a n d o t h e r t e x t u a l m a t e r i a l , t h e c o l l e c t i o n a n d p r o c e s s i n g

o f t r o u b l e d a t a f r o m v a r i o u s s w i t c h in g m a c h i n e s w i t h i n

t h e B e l l S y s t e m , a n d r e c o r d i n g a n d c h e c k i n g t e l e p h o n e

s e r v ic e o r d e r s . O u r o w n i n s t a l l a t io n i s u s e d m a i n l y

f o r r e s e a r c h i n o p e r a t i n g s y s t e m s , l a n g u a g e s , c o m -

p u t e r n e t w o r k s , a n d o t h e r t o p i c s i n c o m p u t e r s c i e n c e ,

a n d a l s o f o r d o c u m e n t p r e p a r a t i o n .

P e r h a p s t h e m o s t i m p o r t a n t a c h i e v e m e n t o f U NIX

i s t o d e m o n s t r a t e t h a t a p o w e r f u l o p e r a t i n g s y s t e m

fo r i n t e r a c t i v e u s e n e e d n o t b e e x p e n s i v e e i t h e r i n

e q u i p m e n t o r in h u m a n e f f o r t : U N IX c a n r u n o n h a r d w a r e

c o s t i n g a s l it t le a s $ 4 0 ,0 0 0 , a n d l e s s t h a n t wo m a n -

y e a r s w e r e s p e n t o n t h e m a i n s y s t e m s o f t w a r e . Y e t

U N IX c o n t a i n s a n u m b e r o f f e a t u r e s s e l d o m o f f e r e d e v e n

i n m u c h l a r g e r s y s t e m s . I t i s h o p e d , h o w e v e r , t h e u s e r s

o f U N IX w i ll f in d t h a t t h e m o s t i m p o r t a n t c h a r a c t e r i s t i c s

o f t h e s y s t e m a r e i t s s i m p l i c i t y , e l e g a n c e , a n d e a s e o f u s e .

B e s i d e s t h e s y s t e m p r o p e r , t h e m a j o r p r o g r a m s

a v a i l a b l e u n d e r U N I X a r e : a s s e m b l e r , t e x t e d i t o r b a s e d

o n QE D [2 ] , l i n k i n g l o a d e r , s y m b o l i c d e b u g g e r , c o m p i l e r

f o r a l a n g u a g e r e s e m b l i n g B C P L [ 3] w i t h t y p e s a n d

s t r u c t u r e s (C ) , i n t e r p r e t e r f o r a d i a l e c t o f BAS IC , t e x t

f o r m a t t i n g p r o g r a m , F o r t r a n c o m p i l e r , S n o b o l i n t e r -

p r e t e r , to p - d o w n c o m p i l e r - c o m p i l e r ( T M C ) [ 4] , b o t -

t o m - u p c o m p i l e r - c o m p i l e r (Y A C C) , f o r m l e t te r g e n e r a t o r ,

m a c r o p r o c e s s o r ( M 6 ) [ 5] , a n d p e r m u t e d i n d e x p r o g r a m .

T h e r e i s a l s o a h o s t o f m a i n t e n a n c e , u t i li t y , r e c r e a -

t i on , a n d n o v e l t y p r o g r a m s . A l l o f t h e se p r o g r a m s w e r e

w r i t t e n l o c a l ly . I t i s w o r t h n o t i n g t h a t t h e s y s t e m is

t o t a l l y s e l f - s u p p o r t i n g . A l l U N I X s o f t w a r e i s m a i n t a i n e d

u n d e r U N I X ; l ik e w i s e , U N I X d o c u m e n t s a r e g e n e r a t e d

a n d f o r m a t t e d b y t h e U N I X e d i t o r a n d t e x t f o r m a t t i n g

p r o g r a m .

Copyright © 1974, Association for Com puting M achinery, Inc.

General permission to republish, but not for profit, all or part

of this material is granted provided that ACM s copyright notice

is given and that reference is made to the pub lication, to its date

of issue, and to the fact tha t reprinting privileges we re granted

by permission of the Association for Com puting M achinery.

This is a revised version of a pap er presented at the Fourth

ACM Symposium on Operating Systems Principles, IBM Thomas

J. Watson Research Center, Yorktown H eights, New York, October

15-17, 1973. Authors' address: B ell Laboratories, Murray Hill,

NJ 07974.

365

2 . H a r d w a r e a n d S o f t w a r e E n v i r o n m e n t

T h e P D P - 1 1 / 4 5 o n w h i c h o u r U N I X i n s t a l l a t io n i s

i m p l e m e n t e d i s a 1 6 - b i t w o r d ( 8 - b i t b y t e ) c o m p u t e r w i t h

1 4 4 K b y t e s o f c o r e m e m o r y ; U N IX o c c u p i e s 4 2 K b y t e s .

T h i s s y s t e m , h o w e v e r , i n c l u d e s a v e r y l a r g e n u m b e r o f

d e v i c e d r i v e r s a n d e n j o y s a g e n e r o u s a l l o t m e n t o f s p a c e

f o r I / O b u f f e r s a n d s y s t e m t a b l e s ; a m i n i m a l s y s t e m

Comm unications July 1974

of Volume 17

the ACM Num ber 7

Page 2: The UNIX time-sharing system.pdf

8/11/2019 The UNIX time-sharing system.pdf

http://slidepdf.com/reader/full/the-unix-time-sharing-systempdf 2/11

c a p a b l e o f r u n n i n g t h e s o f t w a r e m e n t i o n e d a b o v e c a n

r e q u i r e a s l it t le a s 5 0 K b y t e s o f c o r e a l t o g e t h e r .

T h e

vDv-11

h a s a 1 M b y t e f i x e d - h e a d d i s k , u s e d f o r

f il e s y s t e m s t o ra g e a n d s w a p p i n g , f o u r m o v i n g - h e a d

d i s k d ri v e s w h ic h e a c h p r o v i d e 2 . 5 M b y t e s o n r e m o v a b l e

d i s k c a rt r i d g e s , a n d a si n g l e m o v i n g - h e a d d i s k d r i v e

w h i c h u s e s r e m o v a b l e 4 0 M b y t e d i s k p a c k s . T h e r e a r e

a l s o a h i g h - s p e e d p a p e r t a p e r e a d e r - p u n c h , n i n e - t r a c k

m a g n e t i c t a p e , a n d D E c t a pe ( a v a r ie t y o f m a g n e t i c

t a p e f a c i l i t y i n w h i c h i n d i v i d u a l r e c o r d s m a y b e a d -

d r e s s e d a n d r e w r i t t e n ) . B e s i d e s t h e c o n s o l e t y p e w r i t e r ,

t h e r e a r e 1 4 v a r i a b l e - s p e e d c o m m u n i c a t i o n s i n t e r f a c e s

a t t a c h e d t o 1 0 0 - se r ie s d a t a s e t s a n d a 2 01 d a t a s e t i n -

t e r f a c e u s e d p r i m a r i l y f o r s p o o l i n g p r i n t o u t t o a c o m -

m u n a l l i n e p r i n t e r . T h e r e a r e a l s o s e v e r a l o n e - o f - a - k i n d

d e v i c e s i n c l u d i n g a P i c t u r e p h o n e ® i n t e r f a c e , a v o i c e

r e s p o n s e u n i t , a v o i c e s y n t h e s i z e r , a p h o t o t y p e s e t t e r , a

d i g i t a l s w i t c h i n g n e t w o r k , a n d a s a t e l l i t e P D P - 1 1 / 2 0

w h i c h g e n e r a t e s v e c t o r s , c u r v e s , a n d c h a r a c t e r s o n a

T e k t r o n i x 6 1 1 s t o r a g e - t u b e d i s p l a y .

T h e g r e a t e r p a r t o f U N I X s o f t w a r e i s w r i tt e n i n t h e

a b o v e - m e n t i o n e d C l a n g u a g e [ 6] . E a r l y v e r s i o n s o f t h e

o p e r a t i n g s y s t e m w e r e w r i t te n i n a s s e m b l y l a n g u a g e ,

b u t d u r i n g t h e s u m m e r o f 1 9 7 3 , i t w a s r e w r i t t e n i n C .

T h e s iz e o f t h e n e w s y s t e m i s a b o u t o n e t h i r d g r e a t e r

t h a n t h e ol d . S i n c e t h e n e w s y s t e m i s n o t o n l y m u c h

e a s i e r t o u n d e r s t a n d a n d t o m o d i f y b u t a l s o i n c l u d e s

m a n y f u n c t i o n a l i m p r o v e m e n t s , i n c l u d i n g m u l t i p r o -

g r a m m i n g a n d t h e a b i l i t y t o s h a r e r e e n t r a n t c o d e

a m o n g s e v e r a l u s e r p r o g r a m s , w e c o n s i d e r e d t h i s i n -

c r e a s e i n s i z e q u i t e a c c e p t a b l e .

3 . T h e F il e S y s t e m

T h e m o s t i m p o r t a n t r o le o f U N I X i s t o p r o v i d e a

f il e s y s t e m . F r o m t h e p o i n t o f v ie w o f t h e u s e r, t h e r e

a r e t h r e e k i n d s o f f i l e s : o r d i n a r y d i s k f i l e s , d i r e c t o r i e s ,

and spec ia l f i l es .

3 .1 O r d i n a r y F i l es

A f il e c o n t a i n s w h a t e v e r i n f o r m a t i o n t h e u s e r p l a c e s

o n i t , f o r e x a m p l e s y m b o l i c o r b i n a r y ( o b j e c t ) p r o g r a m s .

N o p a r t i c u l a r s t r u c t u r i n g i s e x p e c t e d b y t h e s y s t e m .

F i l e s o f t e x t c o n s i s t s i m p l y o f a s t r i n g o f c h a r a c t e r s ,

w i t h l in e s d e m a r c a t e d b y th e n e w - l i n e c h a r a c t e r . B i n a r y

p r o g r a m s a r e s e q u en c e s o f w o r d s a s t h e y w i ll a p p e a r

i n c o re m e m o r y w h e n t h e p r o g r a m s t a rt s e x ec u t in g . A

f e w u s e r p r o g r a m s m a n i p u l a t e f il es w i th m o r e s t r u c t u r e :

t h e a s s e m b l e r g e n e r a t e s a n d t h e l o a d e r e x p e c t s a n

o b j e c t f il e i n a p a r t i c u l a r f o r m a t . H o w e v e r , t h e s t r u c t u r e

o f f il es i s c o n t r o l l e d b y t h e p r o g r a m s w h i c h u s e t h e m ,

n o t b y t h e s y s t e m .

3 . 2 D i r e c t o r i e s

D i r e c t o r i e s p r o v i d e t h e m a p p i n g b e t w e e n t h e n a m e s

o f f il e s a n d t h e f i le s t h e m s e l v e s , a n d t h u s i n d u c e a

s t r u c t u r e o n t h e f i le s y s t e m a s a w h o l e . E a c h u s e r h a s a

d i r e c t o r y o f h i s o w n f il es ; h e m a y a l s o c r e a t e s u b d i r e c -

t o r i e s t o c o n t a i n g r o u p s o f f il es c o n v e n i e n t l y t r e a t e d

t o g e t h e r . A d i r e c t o r y b e h a v e s e x a c t l y l i k e a n o r d i n a r y

f il e e x c e p t t h a t i t c a n n o t b e w r i t t e n o n b y u n p r i v i l e g e d

p r o g r a m s , s o t h a t t h e s y s t e m c o n t r o l s t h e c o n t e n t s

o f d ir e c to r i es . H o w e v e r , a n y o n e w i th a p p r o p r i a t e p e r -

m i s s i o n m a y r e a d a d i r e c t o r y j u s t l i k e a n y o t h e r f ile .

T h e s y s t e m m a i n t a i n s s e v e r a l d i r e c t o r i e s f o r i ts o w n

u s e . On e o f th e s e i s th e

root

d i r e c t o r y . A l l f i l e s i n t h e

s y s t e m c a n b e f o u n d b y t r a c i n g a p a t h t h r o u g h a c h a i n

o f d i r e c t o r i e s u n t i l t h e d e s i r e d f il e i s r e a c h e d . T h e

s t a r t i n g p o i n t f o r su c h s e a r c h e s i s o f t e n t h e r o o t . A n o t h e r

s y s t e m d i re c t o r y c o n t a i n s a l l t h e p r o g r a m s p r o v i d e d f o r

g e n e r a l u s e ; t h a t i s , a l l t h e commands. As wi l l b e s e e n ,

h o w e v e r , i t i s b y n o m e a n s n e c e s s a r y t h a t a p r o g r a m

r e s i d e i n t h i s d i r e c t o r y fo r i t t o b e e x e c u t e d .

F i l e s a re n a m e d b y s e q u e n c e s o f 1 4 o r f e w e r

c h a r a c t e r s . W h e n t h e n a m e o f a f il e i s s p e c if i e d to t h e

s y s t e m , i t m a y b e i n th e f o r m o f a

path name,

wh i c h i s a

s e q u e n c e o f d i r e c t o r y n a m e s s e p a r a t e d b y s l as h e s

/

a n d e n d i n g i n a f il e n a m e . I f t h e s e q u e n c e b e g i n s w i t h a

s l a s h , t h e s e a r c h b e g i n s i n t h e r o o t d i r e c t o r y . T h e

n a m e

/ a l p h a / b e t a / g a m m a

c a u s e s t h e s y s t e m t o s e a r c h

t h e r o o t f o r d i r e c t o r y

alpha,

t h e n t o s e a r c h

alpha

f o r

beta,

f i n a l l y t o f i n d

g a m m a

in

beta. Gamma

m a y b e a n

o r d i n a r y f i l e , a d i r e c t o r y , o r a s p e c i a l f i l e . As a l i m i t i n g

c a s e , t h e n a m e

/

r e fe r s t o t h e r o o t i t s e l f .

A p a t h n a m e n o t s t a r t i n g w i t h / c a u s e s t h e s y s -

t e m t o b e g i n t h e s e a r c h i n t h e u s e r ' s c u r r e n t d i r e c t o r y .

T h u s , t h e n a m e alpha/be ta s p e c i f i e s t h e f i l e n a m e d

beta

i n s u b d i r e c t o r y

alpha

o f th e c u r r e n t d i r e c t o r y .

T h e s i m p l es t k in d o f n a m e , f o r e x a m p l e alpha, r e f e r s t o

a f il e wh i c h i t s e l f i s fo u n d i n t h e c u r r e n t d i r e c t o r y . As

a n o t h e r l i m i t i n g c a s e, t h e n u l l f i le n a m e r e f e r s to t h e

c u r r e n t d i r e c t o r y .

T h e s a m e n o n d i r e c t o r y f il e m a y a p p e a r i n s e v e r al

d i r e c t o r i e s u n d e r p o s s i b l y d if f e r e n t n a m e s . T h i s f e a t u r e

i s c a l l e d / i n k i n g ; a d i r e c t o r y e n t r y f o r a f il e i s s o m e t i m e s

c a l l e d a l i n k . U N I X d i f f er s f r o m o t h e r s y s t e m s i n w h i c h

l i n k i n g i s p e r m i t t e d i n t h a t a l l l i n k s t o a f il e h a v e e q u a l

s t a t u s . T h a t i s , a fi le d o e s n o t e x i s t w i t h i n a p a r t i c u l a r

d i r e c t o r y ; t h e d i r e c t o r y e n t r y f o r a f i le c o n s i s t s m e r e l y

o f it s n a m e a n d a p o i n t e r t o t h e i n f o r m a t i o n a c t u a l l y

d e s c r i b i n g t h e f il e. Th u s a f il e e x i s t s i n d e p e n d e n t l y o f

a n y d i r e c t o r y e n t r y , a l t h o u g h i n p r a c t i c e a f il e i s m a d e

t o d i s a p p e a r a l o n g w i t h t h e l a s t l i n k t o i t .

E a c h d i r e c t o r y a l w a y s h a s a t l e a s t t w o e n t r i e s . T h e

n a m e . . . . i n e a c h d i r e c t o r y r e f e r s t o t h e d i r e c t o r y i ts e lf .

T h u s a p r o g r a m m a y r e a d t h e c u r r e n t d i r e c t o r y u n d e r

t h e n a m e . w i t h o u t k n o w i n g it s c o m p l e t e p a t h n a m e .

T h e n a m e . . b y c o n v e n t i o n r e f e rs t o t h e p a r e n t o f

t h e d i r e c t o r y i n w h i c h i t a p p e a r s , t h a t i s, t o t h e d i r e c t o r y

i n w h i c h i t w a s c r e a t e d .

T h e d i r e c t o r y s t r u c t u r e i s c o n s t r a i n e d t o h a v e t h e

f o r m o f a r o o t e d t r e e . E x c e p t f o r t h e s p e c i a l e n t r i e s

a n d . . , e a c h d i r e c t o r y m u s t a p p e a r as a n e n t r y

i n e x a c t l y o n e o t h e r , w h i c h i s i t s p a r e n t . T h e r e a s o n

f o r t h i s is to s i m p l i f y t h e w r i t i n g o f p r o g r a m s w h i c h

366

Comm unications July 1974

of Volume 17

the ACM Number 7

Page 3: The UNIX time-sharing system.pdf

8/11/2019 The UNIX time-sharing system.pdf

http://slidepdf.com/reader/full/the-unix-time-sharing-systempdf 3/11

v i s i t

s u b t r e e s o f th e d i r e c t o r y s t r u c t u r e , a n d m o r e i m -

p o r t a n t , t o a v o i d t h e s e p a r a t i o n o f p o r t i o n s o f th e

h i e r a r c h y . I f a r b i t r a r y l i n k s t o d i r e c t o r ie s w e r e p e r -

m i t t e d , i t w o u l d b e q u i t e d i f f ic u l t t o d e t e c t w h e n t h e

l a s t c o n n e c t i o n f r o m t h e r o o t t o a d i r e c t o r y w a s s e v e r e d .

k e e p i n g w h i c h w o u l d o t h e r w i s e b e r e q u ir e d t o a s s u r e

r e m o v a l o f t he l i n ks w h e n t h e r e m o v a b l e v o l u m e i s

f i n a ll y d i s m o u n t e d . I n p a r t i c u l a r , i n t h e r o o t d i r e c t o r i e s

o f a l l f il e s y s t e m s , r e m o v a b l e o r n o t , t h e n a m e . .

r e f e r s t o t h e d i r e c t o r y i t s el f i n s t e a d o f t o i t s p a r e n t .

3 . 3 S p e c i a l F i l e s

S p e c i a l fi le s c o n s t i t u t e t h e m o s t u n u s u a l f e a t u r e o f

t h e U N I X f il e s y s t e m . E a c h I / O d e v i c e s u p p o r t e d b y

UNIX i s a s s o c i a t e d w i t h a t l e a s t o n e s u c h f il e. S p e c i a l

f i l e s a r e r e a d a n d wr i t t e n ju s t l i k e o r d i n a r y d i s k f i l e s ,

b u t r e q u e s t s t o r e a d o r w r i t e r e s u l t in a c t i v a t i o n o f th e

a s s o c i a t e d d e v i c e . An e n t r y fo r e a c h s p e c i a l f i l e r e s i d e s i n

d i r e c t o r y

/ d e v ,

a l t h o u g h a l i n k m a y b e m a d e t o o n e o f

t h e s e f i le s ju s t l i k e a n o r d i n a r y f i le . Th u s , fo r e x a m p l e ,

t o p u n c h p a p e r t a p e , o n e m a y w r it e o n th e f i l e / d e v / p p t .

S p e c i a l f i l e s e x i s t f o r e a c h c o m m u n i c a t i o n l i n e , e a c h

d i s k , e a c h t a p e d r i v e , a n d f o r p h y s i c a l c o r e m e m o r y .

O f c o u r s e , t h e a c t i v e d i s k s a n d t h e c o r e s p e c i a l f il e a r e

p r o t e c t e d f r o m i n d i s c r i m i n a t e a c c e s s .

T h e r e i s a t h r e e f o l d a d v a n t a g e i n t r e a t i n g I / O d e v i c e s

t h i s w a y : f i l e a n d d e v i c e I / o a r e a s s i m i l a r a s p o s s i b l e ;

f i l e a n d d e v i c e n a m e s h a v e t h e s a m e s y n t a x a n d m e a n -

i n g , s o t h a t a p r o g r a m e x p e c t i n g a f il e n a m e a s a p a r a m -

e t e r c a n b e p a s s e d a d e v i c e n a m e ; f i n a l l y , s p e c i a l f i l e s

a r e s u b j e ct t o t h e s a m e p r o t e c t i o n m e c h a n i s m a s r eg u l a r

fi les.

3 . 4 R e m o v a b l e Fi le S y s t e m s

A l t h o u g h t h e r o o t o f t h e f il e s y s t e m i s a l w a y s s t o r e d

o n t h e s a m e d e v i c e , i t i s n o t n e c e s s a r y t h a t t h e e n t i r e

f i l e s y s t e m h i e r a r c h y r e s i d e o n t h i s d e v i c e . Th e r e i s a

m o u n t

s y s t e m re q u e s t w h i c h h a s t w o a r g u m e n t s : t h e

n a m e o f a n e x i s t in g o r d i n a r y f i le , a n d t h e n a m e o f a

d i r e c t - a c c e s s s p e c i a l f i l e w h o s e a s s o c i a t e d s t o r a g e v o l -

u m e ( e . g . d i s k p a c k ) s h o u l d h a v e t h e s t r u c t u r e o f a n

i n d e p e n d e n t f i le s y s t e m c o n t a i n i n g i ts o w n d i r e c t o r y

h i e r a r c h y . T h e e f f e c t o f

m o u n t

i s t o c a u s e r e f e r e n c e s t o

t h e h e r e t o f o r e o r d i n a r y f il e t o r e f e r i n s t e a d t o t h e r o o t

d i r e c t o r y o f t h e f il e s y s t e m o n t h e r e m o v a b l e v o l u m e .

In e f fe c t ,

m o u n t

r e p l a c e s a l e a f o f th e h i e r a r c h y t r e e

( t h e o r d i n a r y f il e) b y a w h o l e n e w s u b t r e e ( t h e h i e r a r c h y

s t o r e d o n t h e r e m o v a b l e v o l u m e ) . A f t e r t h e

m o u n t ,

t h e r e i s v i r t u a l l y n o d i s t i n c t i o n b e t we e n f i l e s o n t h e

r e m o v a b l e v o l u m e a n d t h o s e i n t h e p e r m a n e n t f i l e

s y s t e m . I n o u r i n s t a l l a t i o n , f o r e x a m p l e , t h e r o o t

d i r e c t o r y r e s i d e s o n t h e f i x e d - h e a d d i s k , a n d t h e l a r g e

d i s k d r i v e , w h i c h c o n t a i n s u s e r ' s f i l e s , i s m o u n t e d b y

t h e s y s t e m i n it i a l iz a t i o n p r o g r a m ; t h e f o u r s m a l l e r d i sk

d r i v e s a r e a v a i l a b l e t o u s e r s f o r m o u n t i n g t h e i r o w n

d i s k p a c k s . A m o u n t a b l e f il e s y s t e m is g e n e r a t e d b y

wr i t i n g o n i ts c o r r e s p o n d i n g s p e c i a l f il e. A u t i l i t y p r o -

g r a m i s a v a i l a b l e t o c r e a t e a n e m p t y f i l e s y s t e m , o r o n e

m a y s i m p l y c o p y a n e x i s t i n g f i l e s y s t e m .

T h e r e i s o n l y o n e e x c e p t i o n t o t h e r u l e o f i d e n t i c a l

t r e a t m e n t o f f il es o n d i f f e r e n t d e v i c es : n o l i n k m a y e x i s t

b e t w e e n o n e f il e s y s t e m h i e r a r c h y a n d a n o t h e r . T h i s

r e s t r ic t i o n i s e n f o r c e d s o a s to a v o i d t h e e l a b o r a t e b o o k -

3 . 5 P r o t e c t i o n

A l t h o u g h t h e a c c e s s c o n t r o l s c h e m e i n U N IX i s q u i t e

s i m p l e , it h a s s o m e u n u s u a l f e a t u r e s . E a c h u s e r o f t h e

s y s t e m i s a s s i g n e d a u n i q u e u s e r i d e n t if i c a t i o n n u m b e r .

W h e n a f il e i s c r e a t e d , i t is m a r k e d w i t h t h e u s e r ID o f

i t s o wn e r . A l s o g i v e n fo r n e w f i l e s i s a s e t o f s e v e n

p r o t e c t i o n b i ts . S i x o f t h e s e s p e c i f y i n d e p e n d e n t l y r e a d ,

w r i t e , a n d e x e c u t e p e r m i s s i o n f o r t h e o w n e r o f th e

f i l e a n d fo r a l l o t h e r u s e r s .

I f t h e s e v e n t h b i t i s o n , t h e s y s t e m w i l l t e m p o r a r i l y

c h a n g e t h e u s e r i d e n t i fi c a t i o n o f t h e c u r r e n t u s e r t o

t h a t o f t h e c r e a t o r o f t h e f il e w h e n e v e r t h e f i le is e x e c u t e d

a s a p r o g r a m . T h i s c h a n g e i n u s e r ID i s e f f e c t iv e o n l y

d u r i n g t h e e x e c u t i o n o f t h e p r o g r a m w h i c h c a l ls f o r i t.

T h e s e t -u s e r - ID f e a t u r e p r o v i d e s f o r p r i v i l e g e d p r o -

g r a m s w h i c h m a y u s e f i l e s i n a c c e s s i b l e t o o t h e r u s e r s .

F o r e x a m p l e , a p r o g r a m m a y k e e p a n a c c o u n t i n g f il e

w h i c h s h o u l d n e i t h e r b e r e a d n o r c h a n g e d e x c e p t b y

t h e p r o g r a m i ts e lf . I f t h e s e t - u s e r - i d e n t if i c a t i o n b i t i s o n

f o r t h e p r o g r a m , i t m a y a c c e s s t h e f i l e a l t h o u g h t h i s

a c c es s m i g h t b e f o r b i d d e n t o o t h e r p r o g r a m s i n v o k e d b y

t h e g i v e n p r o g r a m ' s u s e r . S i n c e th e a c t u a l u s e r ID o f

t h e i n v o k e r o f a n y p r o g r a m i s a l w a y s a v a i l ab l e , s e t-

u s e r - I o p r o g r a m s m a y t a k e a n y m e a s u r e s d e s i r e d t o

s a t i s f y t h e m s e l v e s a s t o t h e i r i n v o k e r ' s c r e d e n t i a l s . T h i s

m e c h a n i s m i s u s e d t o a l l o w u s e r s t o e x e c u t e t h e c a r e -

f u l l y w r i t t e n c o m m a n d s w h i c h c a l l p r i v i l e g e d s y s t e m

e n t r ie s . F o r e x a m p l e , t h e r e i s a s y s t e m e n t r y i n v o k a b l e

o n l y b y t h e s u p e r - u s e r ( b e lo w ) w h ic h c r e a t e s a n

e m p t y d i r e c t o r y . A s i n d i c a t e d a b o v e , d i r e c t o r i e s a r e

e x p e c t e d t o h a v e e n t r i e s f o r

.

a n d . . . T h e c o m -

m a n d w h i c h c r e a t e s a d i r e c t o r y i s o w n e d b y t h e s u p e r -

u s e r a n d h a s t h e s e t -u s e r - ID b i t s e t . A f t e r i t c h e c k s i t s

i n v o k e r ' s a u t h o r i z a t i o n t o c r e a t e t h e s p e c i f i e d d i r e c t o r y ,

i t c r e a t e s i t a n d m a k e s t h e e n t r i e s f o r a n d . . .

S i n c e a n y o n e m a y s e t th e s e t - u s e r- I D b i t o n o n e o f

h i s o w n f il es , t h i s m e c h a n i s m i s g e n e r a l l y a v a i l a b l e w i t h -

o u t a d m i n i s t r a t i v e i n t e r v e n t i o n . F o r e x a m p l e , t h i s p r o -

t e c t i o n s c h e m e e a s i l y s o l v e s th e M OO a c c o u n t i n g p r o b -

l e m p o s e d i n [7 ] .

T h e s y s t e m r e c o g n i z e s o n e p a r t i c u l a r u s e r I D ( t h a t o f

t h e s u p e r - u s e r ) a s e x e m p t f r o m t h e u s u a l c o n s t r a i n t s

o n f i le a c c e ss ; t h u s ( f o r e x a m p l e ) p r o g r a m s m a y b e

w r i t te n t o d u m p a n d r e l o a d t h e f il e s y s t e m w i t h o u t u n -

w a n t e d i n t e rf e r e n c e f r o m t h e p r o t e c t i o n s y s t em .

3 . 6 I / o C a l ls

T h e s y s t e m c a ll s t o d o I / o a r e d e s i g n e d t o e l i m i n a t e

t h e d i f f e r e n c e s b e t w e e n t h e v a r i o u s d e v i c e s a n d s t y l e s o f

a c c es s . T h e r e i s n o d i s ti n c ti o n b e t w e e n r a n d o m a n d

s e q u e n t i a l I / O , n o r i s a n y l o g i c a l r e c o r d s i ze i m p o s e d

b y t h e s y s t e m . T h e s i ze o f a n o r d i n a r y f il e i s d e t e r m i n e d

367

Comm unications July 1974

of Volume 17

the

ACM Number 7

Page 4: The UNIX time-sharing system.pdf

8/11/2019 The UNIX time-sharing system.pdf

http://slidepdf.com/reader/full/the-unix-time-sharing-systempdf 4/11

b y t h e h i g h e s t b y t e w r i t t e n o n i t; n o p r e d e t e r m i n a t i o n

o f t h e s i z e o f a f i l e i s n e c e s s a r y o r p o s s i b l e .

To i l l u s t r a t e t h e e s s e n t i a l s o f

I/O

i n U N I X , s o m e o f

t h e b a s i c c a l l s a r e s u m m a r i z e d b e l o w i n a n a n o n y m o u s

l a n g u a g e w h i c h w i l l i n d i c a t e t h e r e q u i r e d p a r a m e t e r s

w i t h o u t g e t t i n g in t o t h e c o m p l e x i t i e s o f m a c h i n e

l a n g u a g e p r o g r a m m i n g . E a c h c a l l t o t h e s y st e m m a y

p o t e n t i a l l y r e s u l t i n a n e r r o r r e t u r n , w h i c h f o r s i m -

p l i c it y is n o t r e p r e s e n t e d i n t h e c a l l i n g s e q u e n c e .

To r e a d o r wr i t e a f il e a s s u m e d t o e x i s t a l r e a d y , i t

m u s t b e o p e n e d b y t h e f o l l o w i n g c a l l :

f i l e p = o p e n (n a m e , f l a g )

N a m e

i n d i c a t es t h e n a m e o f th e f ile . A n a r b i t r a r y p a t h

n a m e m a y b e g i v en . T h e

f l a g

a r g u m e n t i n d i c a te s w h e t h e r

t h e f il e i s t o b e r e a d , wr i t t e n , o r u p d a t e d , t h a t i s

r e a d a n d w r i t t e n s i m u l t a n e o u s l y .

T h e r e t u r n e d v a l u e f i l e p i s ca l l ed a f i le descr ip tor .

I t i s a s m a l l i n t e g e r u s e d t o i d e n t i fy t h e f i l e i n s u b -

s e q u e n t c a l l s t o r e a d , w r i t e , o r o t h e r w i s e m a n i p u l a t e i t.

T o c r e a t e a n e w f i l e o r c o m p l e t e l y r e w r i t e a n o l d

one , there i s a

create

s y s t e m c a l l w h i c h c r e a t e s t h e g i v e n

f i le if i t d o e s n o t e x i s t , o r t r u n c a t e s i t to z e r o l e n g t h i f i t

d o e s e x i s t .

Cr e a te

a l s o o p e n s t h e n e w f i l e fo r wr i t i n g

a n d , l i k e open, r e t u r n s a f i l e d e s c r i p t o r .

Th e r e a r e n o u s e r -v i s i b l e l o c k s i n t h e f i l e s y s t e m ,

n o r i s t h e r e a n y r e s t r i c ti o n o n t h e n u m b e r o f u se r s w h o

m a y h a v e a f i l e o p e n f o r r e a d i n g o r w r i t i n g . A l t h o u g h

i t i s p o s s i b l e f o r t h e c o n t e n t s o f a fi le to b e c o m e

s c r a m b l e d w h e n t w o u s e r s w r i t e o n i t s i m u l t a n e o u s l y ,

i n p r a c t i c e , d i f f i c u l t i e s d o n o t a r i s e . We t a k e t h e v i e w

t h a t l o c k s a r e n e i t h e r n e c e s s a r y n o r s u f f i c i e n t , i n o u r

e n v i r o n m e n t , t o p r e v e n t i n t e r f e r e n c e b e t w e e n u s e r s o f

t h e s a m e f i l e . T h e y a r e u n n e c e s s a r y b e c a u s e w e a r e

n o t f a c e d w i t h l a r g e , s i n g l e - f i l e d a t a b a s e s m a i n t a i n e d

b y i n d e p e n d e n t p r o c e s s e s . T h e y a r e i n s u ff i c ie n t b e c a u s e

l o c k s i n t h e o r d i n a r y s e n s e , w h e r e b y o n e u s e r i s p r e -

v e n t e d f r o m w r i t i n g o n a f il e w h i c h a n o t h e r u s e r i s

r e a d in g , c a n n o t p r e v e n t c o n f u s i o n w h e n , f o r ex a m p l e ,

b o t h u s e r s a r e e d i ti n g a f i le w i t h a n e d i t o r w h i c h m a k e s a

c o p y o f t h e f i l e b e i n g e d i t e d .

I t s h o u l d b e s a i d t h a t t h e s y s t e m h a s s u f f i c i e n t

i n t e r n a l i n t e r l o c k s t o m a i n t a i n t h e l o g i c a l c o n s i s t e n c y

o f t h e fi le s y s t e m w h e n t w o u s e r s e n g a g e s i m u l t a n e o u s l y

i n s u c h i n c o n v e n i e n t a c t i v i t i e s a s w r i t i n g o n t h e s a m e

f i l e , c r e a t i n g f i l e s i n t h e s a m e d i r e c t o r y , o r d e l e t i n g

e a c h o t h e r ' s o p e n f i l e s .

E x c e p t a s i n d i c a t e d b e l o w , r e a d i n g a n d w r i t i n g a r e

s e q u e n t i a l. T h i s m e a n s t h a t i f a p a r t i c u l a r b y t e in t h e

f il e w a s t h e l a s t b y t e w r i t t e n ( o r r e a d ) , t h e n e x t I / o

c a l l i m p l i c i t l y r e fe r s t o t h e f i r s t fo l l o wi n g b y t e . F o r

e a c h o p e n f il e t h e r e i s a p o i n t e r , m a i n t a i n e d b y t h e

s y s t e m , w h i c h i n d i c a t e s t h e n e x t b y t e t o b e r e a d o r

w r i t t e n . I f n b y t e s a r e r e a d o r w r i t t en , t h e p o i n t e r

a d v a n c e s b y n b y t e s .

On c e a f i le i s o p e n , t h e fo l l o wi n g c a l l s m a y b e u s e d :

n = r e a d ( f i l e p , b u f fe r , c o u n t )

n = wr i t e ( f i l e p , b u f fe r , c o u n t )

U p t o count b y t e s a r e t r a n s m i t t e d b e t w e e n t h e f i l e

s p e c i f i e d b y

f i l e p

a n d t h e b y t e a r r a y s p e c i f i e d b y

buf fer .

T h e r e t u r n e d v a l u e n i s t h e n u m b e r o f b y t e s a c t u a l l y

t r a n s m i t t e d . I n t h e

wri te

c a s e , n i s t h e s a m e a s

count

e x c e p t u n d e r e x c e p t i o n a l c o n d i t i o n s l i k e I / O e r r o r s o r

e n d o f p h y s i c a l m e d i u m o n s p e c i a l f il es ; in a read,

h o w e v e r , n m a y w i t h o u t e r r o r b e l e ss t h a n

count.

I f t h e

r e a d p o i n t e r i s s o n e a r t h e e n d o f t h e f il e t h a t r e a d i n g

count

c h a r a c t e r s w o u l d c a u s e r e a d i n g b e y o n d t h e e n d ,

o n l y s u f f i c i e n t b y t e s a r e t r a n s m i t t e d t o r e a c h t h e e n d

o f t h e f il e; a l s o , t y p e w r i t e r - l i k e d e v i c e s n e v e r r e t u r n

m o r e t h a n o n e l i ne o f i n p u t . W h e n a r e ad c a l l r e t u r n s

wi t h n e q u a l t o z e r o , i t i n d i c a t e s t h e e n d o f t h e f il e .

F o r d i s k f il es t h is o c c u r s w h e n t h e r e a d p o i n t e r b e c o m e s

e q u a l t o t h e c u r r e n t s i ze o f t h e f i le . I t i s p o s s i b l e t o

g e n e r a t e a n e n d - o f - f i le f r o m a t y p e w r i t e r b y u s e o f a n

e s c a p e s e q u e n c e w h i c h d e p e n d s o n t h e d e v i c e u s e d .

B y t e s w r i t t e n o n a f i l e a f f e c t o n l y t h o s e i m p l i e d b y

t h e p o s i t i o n o f t h e w r it e p o i n t e r a n d t h e c o u n t ; n o o t h e r

p a r t o f t h e f il e i s c h a n g e d . I f t h e l a s t b y t e l ie s b e y o n d

t h e e n d o f t h e f i l e , t h e f i l e i s g r o wn a s n e e d e d .

T o d o r a n d o m ( d i r e c t a c c e s s) I / O , it i s o n l y n e c e s s a r y

t o m o v e t h e r e a d o r w r i te p o i n t e r t o t h e a p p r o p r i a t e

loca t ion in the f i l e .

l o c a t i o n = s e e k ( f i l e p , b a s e , o f f s e t )

T h e p o i n t e r a s s o c i a t e d w i t h

f i l e p

i s m o v e d t o a p o s i t i o n

of fse t

b y t e s f r o m t h e b e g i n n i n g o f t h e f il e, f r o m t h e

c u r r e n t p o s i t i o n o f th e p o i n t e r , o r f r o m t h e e n d o f t h e

f i l e , d e p e n d i n g o n

base . Of fse t

m a y b e n e g a t iv e . F o r

s o m e d e v i c e s ( e . g . p a p e r t a p e a n d t y p e w r i t e r s ) s e e k

c a l l s a r e i g n o r e d . T h e a c t u a l o f f s e t f r o m t h e b e g i n n i n g

o f th e f i le t o w h i c h t h e p o i n t e r w a s m o v e d i s r e t u r n e d

in

location.

3 . 6. 1 O t h e r I / O C a l ls . T h e r e a r e s e v e r a l a d d i t i o n a l

s y s t e m e n t r ie s h a v i n g t o d o w i t h I / o a n d w i t h t h e f il e

s y s t e m w h i c h w i ll n o t b e d i s c u s se d . F o r e x a m p l e :

c l o s e a f il e, g e t th e s t a t u s o f a f il e, c h a n g e t h e p r o t e c -

t i o n m o d e o r t h e o wn e r o f a f il e, c r e a t e a d i r e c t o r y ,

make a l ink to an ex i s t ing f i l e , de le te a f i l e .

4 . I mp l ement at i o n o f t he F il e Sys t em

A s m e n t i o n e d i n § 3 . 2 a b o v e , a d i r e c t o r y e n t r y c o n -

t a i n s o n l y a n a m e f o r t h e a s s o c i a t e d f i l e a n d a p o i n t e r

t o t h e f i l e i t s e l f . Th i s p o i n t e r i s a n i n t e g e r c a l l e d t h e

i -nu m be r ( f o r i n d e x n u m b e r ) o f th e f il e. W h e n t h e f i le

i s a c c e s s e d , i t s i - n u m b e r i s u s e d a s a n i n d e x i n t o a

s y s t e m t a b l e ( t h e

i-l is t)

s t o r e d i n a k n o w n p a r t o f t h e

d e v i c e o n w h i c h t h e d i r e c t o r y r e s i d e s . T h e e n t r y t h e r e b y

fo u n d ( t h e f i l e 's

i -node)

c o n t a i n s t h e d e s c r i p t i o n o f t h e

f i l e as fo l lows .

1 . I t s o w n e r .

2 . I t s p r o t e c t i o n b it s .

3 . T h e p h y s i c a l d i sk o r t a p e a d d r e s s e s f o r t h e f il e

c o n t e n t s .

4 . I t s s i ze .

368

Comm unications July 1974

of Volume 17

the ACM Number 7

Page 5: The UNIX time-sharing system.pdf

8/11/2019 The UNIX time-sharing system.pdf

http://slidepdf.com/reader/full/the-unix-time-sharing-systempdf 5/11

5 . T i m e o f l a s t m o d i f i c a t i o n .

6 . T h e n u m b e r o f li n k s to t h e fi le , t h a t is , t h e n u m b e r

o f t i m e s i t a p p e a r s i n a d i r e c t o r y .

7 . A b i t i n d i c a t i n g w h e t h e r t h e f il e i s a d i r e c t o r y .

8 . A bi t indica t ing wh eth er the f i le i s a spec ia l f i le .

9 . A b i t i n d i c a t i n g wh e t h e r t h e f il e i s l a r g e o r s m a l l .

T h e p u r p o s e o f a n open o r create s y s t e m c a l l i s t o t a m

t h e p a t h n a m e g i v e n b y t h e u s e r i n t o a n i - n u m b e r b y

s e a r c h i n g t h e e x p l i c i t l y o r i m p l i c i t l y n a m e d d i r e c t o r i e s .

O n c e a f il e i s o p e n , i t s d e v ic e , i - n u m b e r , a n d r e a d / w r i t e

p o i n t e r a r e s t o r e d i n a s y s t e m t a b l e i n d e x e d b y t h e

f il e d e s c r i p t o r r e t u r n e d b y t h e open o r create. T h u s

t h e f i l e d e s c r i p t o r s u p p l i e d d u r i n g a s u b s e q u e n t c a l l t o

r e a d o r wr i t e t h e f i l e m a y b e e a s i l y r e l a t e d t o t h e i n -

fo r m a t i o n n e c e s s a r y t o a c c e s s t h e f i l e .

W h e n a n e w f i le i s c r e a t e d , a n i -n o d e i s a l l o c a t e d fo r

i t a n d a d i r e c t o r y e n t r y i s m a d e w h i c h c o n t a i n s t h e

n a m e o f t h e f il e a n d t h e i - n o d e n u m b e r . M a k i n g a l in k

t o a n e x i s t i n g f i l e i n v o l v e s c r e a t i n g a d i r e c t o r y

e n t r y w i t h t h e n e w n a m e , c o p y i n g t h e i - n u m b e r f r o m

t h e o r i g i n a l f il e e n t r y , a n d i n c r e m e n t i n g t h e l i n k - c o u n t

f i e ld o f t h e i -n o d e . R e m o v i n g (d e l e t i n g ) a f il e i s d o n e b y

d e c r e m e n t i n g t h e l i n k - c o u n t o f t h e i - n o d e s p e c if i e d b y

i ts d i r e c t o r y e n t r y a n d e r a s i n g t h e d i r e c t o r y e n t r y . I f t h e

l i n k - c o u n t d r o p s t o 0 , a n y d i s k b l o c k s i n t h e f i l e a r e

f r e e d a n d t h e i - n o d e i s d e a l l o c a t e &

T h e s p a c e o n a l l f i x e d o r r e m o v a b l e d i s k s w h i c h

c o n t a i n a f il e s y s t e m i s d i v i d e d i n t o a n u m b e r o f 5 1 2 -

b y t e b l o c k s l o g i c a l l y a d d r e s s e d f r o m 0 u p t o a l i m i t

w h i c h d e p e n d s o n t h e d e v i c e . T h e r e i s s p a c e i n t h e

i -n o d e o f e a c h f i l e fo r e i g h t d e v i c e a d d r e s s e s . A

small

(n o n s p e c i a l ) f il e f i ts i n t o e i g h t o r f e w e r b l o c k s ; i n t h i s

c a s e t h e a d d r e s s e s o f t h e b l o c k s t h e m s e l v e s a r e s t o r e d .

F o r large (n o n s p e c i a l ) f i l e s, e a c h o f t h e e i g h t d e v i c e

a d d r e s s e s m a y p o i n t t o a n i n d i r e c t b l o c k o f 2 5 6 a d d r e s s e s

o f b l o c k s c o n s t i t u t i n g t h e f i le i ts e l f . Th u s f i le s m a y b e a s

l a r g e a s 8 . 2 5 6 -5 1 2 , o r 1 , 0 4 8 , 5 7 6 (2 2o b y t e s .

T h e f o r e g o i n g d i s c u s s i o n a p p l i e s t o o r d i n a r y f i l e s .

W h e n a n I / O r e q u e s t i s m a d e t o a f il e w h o s e i - n o d e

i n d i c a t e s t h a t i t i s s p e c i a l , t h e l a s t s e v e n d e v i c e a d d r e s s

w o r d s a r e i m m a t e r i a l , a n d t h e f i r s t i s i n t e r p r e t e d a s a

p a i r o f b y t e s w h i c h c o n s t i t u t e a n i n t e r n a l device name.

T h e s e b y t e s s p e c i f y r e s p e c t i v e l y a d e v i c e t y p e a n d s u b -

d e v i c e n u m b e r . T h e d e v i c e t y p e i n d i c a t e s w h i c h s y s t e m

r o u t i n e w i l l d e a l w i t h I / o o n t h a t d e v i c e ; t h e s u b d e v i c e

n u m b e r s e l e c t s , f o r e x a m p l e , a d i s k d r i v e a t t a c h e d t o a

p a r t i c u l a r c o n t r o l l e r o r o n e o f s e v e r a l s im i l a r t y p e -

wr i t e r i n t e r fa c e s .

I n t h is e n v i r o n m e n t , t h e i m p l e m e n t a t i o n o f t h e

mount s y s t e m c a ll (§ 3 .4 ) i s q u i t e s t r a i g h t fo r w a r d . Mount

m a i n t a i n s a s y s t e m t a b l e w h o s e a r g u m e n t i s th e i - n u m -

b e r a n d d e v i c e n a m e o f t h e o r d i n a r y f il e s p e c if i e d d u r i n g

t h e mount, a n d w h o s e c o r r e s p o n d i n g v a l u e i s t h e d e v ic e

n a m e o f t h e i n d i c a t e d s p e c i a l fi le . Th i s t a b l e i s s e a r c h e d

f o r e a c h ( i - n u m b e r , d e v i c e ) - p a i r w h i c h t u r n s u p w h i l e

a p a t h n a m e i s b e i n g s c a n n e d d u r i n g a n open o r create;

i f a m a t c h i s f o u n d , t h e i - n u m b e r i s r e p l a c e d b y 1 ( w h i c h

i s t h e i - n u m b e r o f t h e r o o t d i r e c t o r y o n a l l f il e s y s t e m s ) ,

a n d t h e d e v i c e n a m e i s r e p l a c e d b y t h e t a b l e v a l u e .

T o t h e u s e r , b o t h r e a d i n g a n d w r i t in g o f f il es a p p e a r

t o b e s y n c h r o n o u s a n d u n b u f f e r e d . T h a t i s, im m e d i a t e l y

a f t e r r e t u r n f r o m a read c a l l t h e d a t a a r e a v a i l a b l e , a n d

c o n v e r s e l y a f t e r a write t h e u s e r ' s w o r k s p a c e m a y b e

r e u s e d . I n fa c t th e s y s t e m m a i n t a i n s a r a t h e r c o m p l i c a t e d

b u f f e r i n g m e c h a n i s m w h i c h r e d u c e s g r e a t l y t h e n u m b e r

o f I /O o p e r a t i o n s r e q u i r e d t o a c c e s s a fi le . S u p p o s e a

write

c a l l i s m a d e s p e c i f y i n g t r a n s m i s s i o n o f a s i n g le

b y t e .

UNiX wi l l s e a r c h i t s b u f fe r s t o s e e wh e t h e r t h e

a f f e c t e d d i s k b l o c k c u r r e n t l y r e s i d e s i n c o r e m e m o r y ;

i f n o t , i t w il l b e r e a d i n f r o m t h e d e v i c e . T h e n t h e

a f fe c t e d b y t e i s r e p l a c e d i n t h e b u f fe r , a n d a n e n t r y i s

m a d e i n a li st o f b l o c k s t o b e w r i t t en . T h e r e t u r n f r o m

t h e write c a l l m a y t h e n t a k e p l a c e , a l t h o u g h t h e a c t u a l

I / O m a y n o t b e c o m p l e t e d u n t i l a l a t e r t i m e . C o n -

v e r s e l y , i f a s i n g l e b y t e i s r e a d , t h e s y s t e m d e t e r -

m i n e s w h e t h e r t h e s e c o n d a r y s t o r a g e b l o c k i n w h i c h

t h e b y t e i s l o c a t e d i s a l r e a d y i n o n e o f th e s y s t e m ' s

b u f f e r s ; i f s o , th e b y t e c a n b e r e t u r n e d i m m e d i a t e l y . I f

n o t , t h e b l o c k i s r e a d i n t o a b u f f e r a n d t h e b y t e p i c k e d

o u t .

A p r o g r a m w h i c h r e a d s o r w r i t e s fi le s i n u n it s o f

5 1 2 b y t e s h a s a n a d v a n t a g e o v e r a p r o g r a m w h i c h

r e a d s o r wr i t e s a s i n g l e b y t e a t a t i m e , b u t t h e g a i n i s

n o t i m m e n s e ; i t c o m e s m a i n l y f r o m t h e a v o i d a n c e o f

s y s t e m o v e r h e a d . A p r o g r a m w h i c h i s u s e d r a r e l y o r

w h i c h d o e s n o g r e a t v o l u m e o f I /O m a y q u i t e r e a s o n a b l y

r e a d a n d wr i t e i n u n i t s a s s m a l l a s i t w i s h e s .

T h e n o t i o n o f t h e i - li s t i s a n u n u s u a l f e a t u r e o f

U N IX . I n p r a c t i c e , t h i s m e t h o d o f o r g a n i z i n g t h e f i le

s y s t e m h a s p r o v e d q u i t e r e l i a b l e a n d e a s y t o d e a l w i t h .

T o t h e s y s t e m i ts e lf , o n e o f i ts s t r e n g t h s i s t h e f a c t t h a t

e a c h f il e h a s a s h o r t , u n a m b i g u o u s n a m e w h i c h i s

r e l a t e d i n a s i m p l e w a y t o t h e p r o t e c t i o n , a d d r e s s i n g ,

a n d o t h e r i n f o r m a t i o n n e e d e d t o a c c e s s t h e f i l e . I t a l s o

p e r m i t s a q u i t e s i m p l e a n d r a p i d a l g o r i t h m f o r c h e c k i n g

t h e c o n s i s t e n c y o f a f il e s y s t e m , f o r e x a m p l e v e r i f i c a -

t i o n t h a t t h e p o r t i o n s o f e a c h d e v i ce c o n t a i n i n g u s e f u l

i n f o r m a t i o n a n d t h o s e f r e e t o b e a l l o c a t e d a r e d i s j o i n t

a n d t o g e t h e r e x h a u s t t h e s p a c e o n t h e d e v i c e . T h i s

a l g o r i t h m i s i n d e p e n d e n t o f t h e d i r e c t o r y h i e r a r c h y , s i n c e

i t n e e d o n l y s c a n t h e l i n e a r l y -o r g a n i z e d i - l i s t . A t t h e

s a m e t i m e t h e n o t i o n o f th e i - l is t i n d u c e s c e r t a i n

p e c u l i a r i t i e s n o t f o u n d i n o t h e r f i l e s y s t e m o r g a n i z a -

t i o n s . F o r e x a m p l e , t h e r e i s t h e q u e s t i o n o f w h o i s t o

b e c h a r g e d f o r t h e s p a c e a f il e o c c u p i e s , s i n c e a ll d i r e c t o r y

e n t r i e s f o r a f i l e h a v e e q u a l s t a t u s . C h a r g i n g t h e o w n e r

o f a f i l e i s u n fa i r , i n g e n e r a l , s i n c e o n e u s e r m a y c r e a t e a

f i l e , a n o t h e r m a y l i n k t o i t , a n d t h e f i r s t u s e r m a y d e l e t e

t h e f i le . Th e f i r s t u s e r i s s ti l l t h e o w n e r o f t h e f i l e, b u t

i t s h o u l d b e c h a r g e d t o t h e s e c o n d u s e r . T h e s i m p l e s t

r e a s o n a b l y f a i r a l g o r i t h m s e e m s t o b e t o s p r e a d t h e

c h a r g e s e q u a l l y a m o n g u s e r s w h o h a v e l i n k s t o a f i l e .

T h e c u r r e n t v e r s i o n o f U N IX a v o i d s t h e i s s u e b y n o t

c h a r g i n g a n y f e e s a t a l l .

3 6 9

Comm unications July 1974

of Volume 17

the ACM Number 7

Page 6: The UNIX time-sharing system.pdf

8/11/2019 The UNIX time-sharing system.pdf

http://slidepdf.com/reader/full/the-unix-time-sharing-systempdf 6/11

4 . 1 E f f i c i e n c y o f t h e F i l e S y s t e m

T o p r o v i d e a n i n d i c a t i o n o f t h e o v e r a l l ef f ic i en c y o f

UNIX a n d o f t h e f i le s y s t e m i n p a r t i c u l a r , t i m i n g s we r e

m a d e o f t h e a s s e m b l y o f a 7 62 1 -1 in e p r o g r a m . T h e

a s s e m b l y w a s ru n a l o n e o n t h e m a c h i n e ; t h e t o t a l

c l o c k t i m e w a s 3 5 . 9 s e c , fo r a r a t e o f 2 1 2 li n e s p e r s e c .

T h e t i m e w a s d i v i d e d a s f o l l o w s : 6 3 .5 p e r c e n t a s s e m b l e r

e x e c u t i o n t i m e , 1 6.5 p e r c e n t s y s t e m o v e r h e a d , 2 0 . 0

p e r c e n t d i s k w a i t ti m e . W e w i ll n o t a t t e m p t a n y i n t e r p r e -

t a t i o n o f t h e s e fi g u r e s n o r a n y c o m p a r i s o n w i t h o t h e r

s y s t e m s , b u t m e r e l y n o t e t h a t w e a r e g e n e r a l l y s a t i s f i e d

w i t h t h e o v e r a l l p e r f o r m a n c e o f th e s y s t e m .

5 . P r o c e s s e s an d I m a g e s

A n

i m a g e

i s a c o m p u t e r e x e c u t i o n e n v i r o n m e n t . I t

i n c l u d e s a c o r e i m a g e , g e n e r a l r e g i s t e r v a l u e s , s t a t u s o f

o p e n f i l e s , c u r r e n t d i r e c t o r y , a n d t h e l i k e . A n i m a g e i s

t h e c u r r e n t s t a te o f a p s e u d o c o m p u t e r .

A proces s

i s t h e e x e c u t i o n o f an i m a g e . W h i l e t h e

p r o c e s s o r is e x e c u t i n g o n b e h a l f o f a p r o c e s s , th e i m a g e

m u s t r e s id e in c o r e ; d u r i n g t h e e x e c u t i o n o f o t h e r p r o -

c e s s e s i t r e m a i n s i n c o r e u n l e s s t h e a p p e a r a n c e o f a n

a c t i v e , h i g h e r - p r i o r i t y p r o c e s s f o r c e s i t t o b e s w a p p e d

o u t t o t h e f i x e d - h e a d d i s k .

T h e u s e r - c o r e p a r t o f a n i m a g e i s d i v i d e d i n t o t h r e e

l o g i c a l s e g m e n t s . T h e p r o g r a m t e x t s e g m e n t b e g i n s a t

l o c a t i o n 0 i n th e v i r t u a l a d d r e s s s p a c e . D u r i n g e x e c u t i o n ,

t h i s s e g m e n t i s w r i t e - p r o t e c t e d a n d a s i ng l e c o p y o f it

i s s h a r e d a m o n g a l l p r o c e s s e s e x e c u t i n g t h e s a m e p r o -

g r a m . A t t h e f i r s t 8 K b y t e b o u n d a r y a b o v e t h e p r o g r a m

t e x t s e g m e n t i n t h e v i r t u a l a d d r e s s s p a c e b e g i n s a n o n -

s h a r e d , w r i t a b l e d a t a s e g m e n t , t h e s iz e o f w h i c h m a y b e

e x t e n d e d b y a s y s t e m c a ll . S t a r t i n g a t t h e h i g h e s t a d d r e s s

i n t h e v i r t u a l a d d r e s s s p a c e i s a s t a c k s e g m e n t , w h i c h

a u t o m a t i c a l l y g r o w s d o w n w a r d a s th e h a r d w a r e ' s s t a c k

p o i n t e r f l u c t u a t e s .

5 . 1 P r o c e s s e s

E x c e p t w h i l e U N IX i s b o o t s t r a p p i n g i t se l f i n t o o p e r a -

t i o n , a n e w p r o c e s s c a n c o m e i n t o e x i s t e n c e o n l y b y

u s e o f

t h e f o r k

s y s t e m c a l l:

p r o c e s s i d = f o r k ( l a b e l )

W h e n

f o r k

i s e x e c u t e d b y a p r o c e s s , i t s p l i t s i n t o t wo

i n d e p e n d e n t l y e x e c u t i n g p r o c e s s e s . T h e t w o p r o c e s s e s

h a v e i n d e p e n d e n t c o p i e s o f t h e o r i g i n a l c o r e i m a g e , a n d

s h a r e a n y o p e n f i l e s . T h e n e w p r o c e s s e s d i f f e r o n l y i n

t h a t o n e i s c o n s i d e r e d t h e p a r e n t p r o c e s s : i n th e p a r e n t ,

c o n t r o l r e t u r n s d i r e c t l y f r o m t h e

f o r k ,

wh i l e i n t h e

c h i l d , c o n t r o l i s p a s s e d t o l o c a t i o n

label.

T h e

proces s id

r e t u r n e d b y th e

f o r k

c a l l is t h e i d e n t i f i c a t i o n o f t h e

o t h e r p r o c e s s .

B e c a u s e t h e r e t u r n p o i n t s i n t h e p a r e n t a n d c h i l d

p r o c e s s a r e n o t t h e s a m e , e a c h i m a g e e x i s t i n g a f t e r a

f o r k

m a y d e t e r m i n e w h e t h e r i t i s t h e p a r e n t o r c h i l d

p r o c e s s .

370

5.2 P i p e s

P r o c e s s e s m a y c o m m u n i c a t e w i t h r e l a t e d p r o c e s s e s

u s i n g t h e s a m e s y s t e m

read

a n d

w r i te

c a l l s t h a t a r e

u s e d fo r f i l e s y s t e m I /O . Th e c a l l

f i l ep = p ipe( )

r e t u r n s a f i le d e s c r i p t o r

f i l e p

a n d c r e a t e s a n i n t e r p r o c e s s

c h a n n e l c a l l e d a

pipe .

T h i s c h a n n e l , l i k e o t h e r o p e n

f i l e s , i s p a s s e d f r o m p a r e n t t o c h i l d p r o c e s s i n t h e i m a g e

b y

t h e f o r k

ca l l . A

read

u s i n g a p i p e f i l e d e s c r i p t o r wa i t s

u n t il a n o t h e r p r o c e s s w r i t e s u s i n g t h e f il e d e s c r i p t o r f o r

t h e s a m e p i p e . A t t h i s p o i n t , d a t a a r e p a s s e d b e t w e e n

t h e i m a g e s o f t h e t w o p r o c e s s e s . N e i t h e r p r o c e s s n e e d

k n o w t h a t a p i p e , r a t h e r t h a n a n o r d i n a r y f il e, i s in -

v o l v e d .

A l t h o u g h i n t e r p r o c e s s c o m m u n i c a t i o n v i a p i p e s i s

a q u i t e v a l u a b l e t o o l ( s e e § 6 . 2 ), it i s n o t a c o m p l e t e l y

g e n e r a l m e c h a n i s m s i n c e t h e p i p e m u s t b e s e t u p b y a

c o m m o n a n c e s t o r o f th e p r o c e s s e s in v o l v e d .

5 . 3 E x e c u t i o n o f P r o g r a m s

A n o t h e r m a j o r s y s t e m p r i m i t iv e is i n v o k e d b y

execute(fi le, args, argo, . . . , arg,+)

w h i c h r e q u e s t s t h e s y s t e m t o r e a d i n a n d e x e c u t e t h e

p r o g r a m n a m e d b y

f i l e ,

p a s s i n g i t s t r i n g a r g u m e n t s

ar gl, arg..,, ..., arg,+.

O r d i n a r i l y ,

a r g l

s h o u l d b e t h e s a m e

s t r i n g a s

f i l e ,

s o t h a t t h e p r o g r a m m a y d e t e r m i n e t h e

n a m e b y . w h i c h i t w a s i n v o k e d . A l l t h e c o d e a n d d a t a

i n t h e p r o c e s s u s i n g

e x e c u t e

i s r e p l a c e d f r o m

t h e f i l e ,

b u t

o p e n f i l e s , c u r r e n t d i r e c t o r y , a n d i n t e r p r o c e s s r e l a t i o n -

s h i p s a r e u n a l t e r e d . O n l y i f t h e c a l l f ai ls , f o r e x a m p l e

b e c a u s e

f i l e

c o u l d n o t b e f o u n d o r b e c a u s e i ts e x e c u t e -

p e r m i s s i o n b i t w a s n o t s e t , d o e s a r e t u r n t a k e p l a c e f r o m

t h e

e x e c u t e

p r i m i t iv e ; i t r e s e m b l e s a j u m p m a c h i n e

i n s t r u c t i o n r a t h e r t h a n a s u b r o u t i n e c a l l .

5 . 4 P r o c e s s S y n c h r o n i z a t i o n

A n o t h e r p r o c e s s c o n t r o l s y s t e m c a ll

p r o c e s s i d = w a i t ( )

c a u s e s i t s c a l l er t o s u s p e n d e x e c u t i o n u n t i l o n e o f it s

c h i ld r e n h a s c o m p l e t e d e x e c u t i o n. T h e n

w a i t

r e t u r n s

t h e

proces s id

o f th e t e r m i n a t e d p r o c e ss . A n e r r o r r e t u r n

i s t a k e n i f t h e c a l l in g p r o c e s s h a s n o d e s c e n d a n t s .

C e r t a i n s t a t u s f r o m t h e c h i l d p r o c e s s i s a l s o a v a i l a b l e .

W a i t

m a y a l s o p r e s e n t s t a t u s f r o m a g r a n d c h i l d o r

m o r e d i s t a n t a n c e s t o r ; s e e § 5 . 5 .

5 . 5 T e r m i n a t i o n

La s t l y ,

e x i t ( s t a t u s )

t e r m i n a t e s a p r o c e s s , d e s t r o y s i t s i m a g e , c l o s e s i t s o p e n

f i l e s , a n d g e n e r a l l y o b l i t e r a t e s i t . Wh e n t h e p a r e n t i s

n o t i f i e d t h r o u g h t h e

w a i t

p r i m i t i v e , t h e i n d i c a t e d

s ta tus

i s a v a i l a b l e t o t h e p a r e n t ; i f th e p a r e n t h a s a l r e a d y

t e r m i n a t e d , t h e s t a t u s i s a v a i l a b l e t o t h e g r a n d p a r e n t ,

Com munications July 1974

of Volume 17

the ACM Number 7

Page 7: The UNIX time-sharing system.pdf

8/11/2019 The UNIX time-sharing system.pdf

http://slidepdf.com/reader/full/the-unix-time-sharing-systempdf 7/11

a n d s o o n . P r o c e s s e s m a y a l s o t e r m i n a t e a s a r e s u l t o f

v a r i o u s i l l e g a l a c t i o n s o r u s e r - g e n e r a t e d s i g n a l s ( § 7

b e l o w ) .

6 . T h e S h e l l

F o r m o s t u s e r s , c o m m u n i c a t i o n w i t h U N IX i s c a r r i e d

o n w i t h t h e a i d o f a p r o g r a m c a l le d t h e S h e l l. T h e S h e ll

i s a c o m m a n d l i n e i n t e r p r e t e r : i t r e a d s l i n e s t y p e d b y

t h e u s e r a n d i n t e r p r e t s t h e m a s r e q u e s t s t o e x e c u t e

o t h e r p r o g r a m s . I n s i m p l e s t f o r m , a c o m m a n d l i n e

c o n s is t s o f t h e c o m m a n d n a m e f o l lo w e d b y a r g u m e n t s

t o t h e c o m m a n d , a l l s e p a r a t e d b y s p a c e s :

c o m m a n d a r g l a rg ~ • • - a r g n

T h e S h e l l s p l i t s u p t h e c o m m a n d n a m e a n d t h e a r g u -

m e n t s i n t o s e p a r a t e s t ri n g s . T h e n a fi le w i t h n a m e

command

i s s o u g h t ;

command

m a y b e a p a t h n a m e i n -

c l u d i n g t h e

/

c h a r a c t e r t o s p e c i fy a n y f i le i n t h e s y s -

t e m . I f

c o mma n d

i s f o u n d , i t i s b r o u g h t i n t o c o r e a n d

e x e c u t e d . T h e a r g u m e n t s c o l l e c t e d b y t h e S h e l l a r e

a c c e ss ib l e t o th e c o m m a n d . W h e n t h e c o m m a n d i s

f i n i s h e d , t h e S h e l l r e s u m e s i t s o wn e x e c u t i o n , a n d i n -

d i c a t e s i t s r e a d i n e s s t o a c c e p t a n o t h e r c o m m a n d b y

t y p i n g a p r o m p t c h a r a c t e r .

I f f i le

command

c a n n o t b e f o u n d , t h e S h e l l p r e f i x e s

t h e s t r i n g

/ b i n /

to

command

a n d a t t e m p t s a g a i n t o

f i n d t h e f i l e . D i r e c t o r y / b i n c o n t a i n s a l l t h e c o m m a n d s

i n t e n d e d t o b e g e n e r a l l y u s e d .

6 . 1 S t a n d a r d I / O

T h e d i s c u s s io n o f I/ O in § 3 a b o v e s e e m s t o i m p l y

t h a t e v e r y f i l e u s e d b y a p r o g r a m m u s t b e o p e n e d o r

c r e a t e d b y t h e p r o g r a m i n o r d e r t o g e t a f i l e d e s c r i p t o r

f o r t h e f i l e . P r o g r a m s e x e c u t e d b y t h e S h e l l , h o w e v e r ,

s t a r t o f f w i t h t w o o p e n f il es w h i c h h a v e f i le d e s c r i p t o r s

0 a n d 1 . As s u c h a p r o g r a m b e g i n s e x e c u t i o n , f i le 1 i s

o p e n f o r w r i t in g , a n d i s b e s t u n d e r s t o o d a s t h e s t a n d a r d

o u t p u t f i l e . E x c e p t u n d e r c i r c u m s t a n c e s i n d i c a t e d b e -

l o w , t h i s fi le i s t h e u s e r ' s t y p e w r i t e r . T h u s p r o g r a m s

w h i c h w i s h t o w r i t e i n f o r m a t i v e o r d i a g n o s t i c i n f o r m a -

t i o n o r d i n a r i l y u s e f i l e d e s c r i p t o r 1 . C o n v e r s e l y , f i l e 0

s t a r t s o f f o p e n f o r r e a d i n g , a n d p r o g r a m s w h i c h w i s h

t o r e a d m e s s a g e s t y p e d b y t h e u s e r u s u a l l y r e a d t h i s fi le .

T h e S h e l l i s a b l e t o c h a n g e t h e s t a n d a r d a s s i g n m e n t s

o f t h e s e fi le d e s c r i p t o r s f r o m t h e u s e r ' s t y p e w r i t e r

p r i n t e r a n d k e y b o a r d . I f o n e o f t h e a r g u m e n t s t o a

c o m m a n d i s p r e f i x e d b y

) ,

f i le d e s c r i p t o r 1 w i l l, f o r

t h e d u r a t i o n o f th e c o m m a n d , r e f e r t o t h e f il e n a m e d

a f t e r t h e

) .

F o r e x a m p l e ,

Is

o r d i n a r i l y l i s ts , o n t h e t y p e w r i t e r , t h e n a m e s o f t h e f il es

i n t h e c u r r e n t d i r e c t o r y . T h e c o m m a n d

1s ) t h e r e

c r e a t e s a f i l e c a l l e d

there

a n d p l a c e s t h e l i s t i n g t h e r e .

T h u s t h e a r g u m e n t ) t h e r e m e a n s , p l a c e o u t p u t o n

there.

O n t h e o t h e r h a n d ,

e d

o r d i n a r i l y e n t e r s t h e e d i t o r , w h i c h t a k e s r e q u e s t s f r o m

t h e u s e r v ia h is t y p e w r i te r . T h e c o m m a n d

e d ( s c r i p t

i n t e r p r e t s

script

a s a f il e o f e d i t o r c o m m a n d s ; t h u s

( s c r i p t m e a n s , t a k e i n p u t f r o m

script .

A l t h o u g h t h e f i l e n a m e f o l l o w i n g

(

o r

)

a p p e a r s

t o b e a n a r g u m e n t t o t h e c o m m a n d , i n f a c t i t i s i n -

t e r p r e t e d c o m p l e t e l y b y t h e S h e l l a n d i s n o t p a s s e d t o

t h e c o m m a n d a t a l l . T h u s n o s p e c i a l c o d i n g t o h a n d l e

I / O r e d i r e c t i o n i s n e e d e d w i t h i n e a c h c o m m a n d ; t h e

c o m m a n d n e e d m e r e l y u se t h e s t a n d a r d f il e d e s c r i p t o rs

0 a n d l w h e r e a p p r o p r i a t e .

6 . 2 F i l t e r s

A n e x t e n s i o n o f t h e s t a n d a r d l / o n o t i o n i s u s e d t o

d i r ec t o u t p u t f r o m o n e c o m m a n d t o t h e i n p u t o f a n o t h e r .

A s e q u e n c e o f c o m m a n d s s e p a r a t e d b y v e r t i ca l b a r s

c a u s e s t h e S h e l l t o e x e c u t e a l l t h e c o m m a n d s s i m u l -

t a n e o u s l y a n d t o a r r a n g e t h a t t h e s t a n d a r d o u t p u t o f

e a c h c o m m a n d b e d el i ve r e d to t h e s t a n d a r d i n p u t o f

t h e n e x t c o m m a n d i n t h e s e q u e n c e . T h u s i n t h e c o m -

m a n d l i n e

l s l p r - 2 [ o p r

ls

l i st s th e n a m e s o f th e f i l es i n t h e c u r r e n t d i r e c t o r y ; i t s

o u t p u t i s p a s s e d t o

pr,

w h i c h p a g i n a t e s it s i n p u t w i t h

d a t e d h e a d i n g s . T h e a r g u m e n t

- - 2

m e a n s d o u b l e

c o l u m n . L i k e w i se t h e o u t p u t f r o m

p r

i s i n p u t t o

opr.

T h i s c o m m a n d s p o o l s i t s i n p u t o n t o a f il e f o r o f f - li n e

p r i n t i n g .

T h i s p r o c e s s c o u l d h a v e b e e n c a r r i e d o u t m o r e

c l u m s i l y b y

l s ) t e m p 1

p r - - 2 ( t e m p 1 ) t e m p 2

o p r ( t e m p 2

f o l l o w e d b y r e m o v a l o f t h e t e m p o r a r y f i le s. I n t h e

a b s e n c e o f th e a b i l i ty t o r e d i r e c t o u t p u t a n d i n p u t , a

s t i l l c l u m s i e r m e t h o d w o u l d h a v e b e e n t o r e q u i r e t h e / s

c o m m a n d t o a c c e p t u s e r r e q u e s t s t o p a g i n a t e i t s o u t -

p u t , t o p r i n t i n m u l t i - c o l u m n f o r m a t , a n d t o a r r a n g e

t h a t i t s o u t p u t b e d e l i v e r e d o f f - l i n e . A c t u a l l y i t w o u l d

b e s u r p r i s i n g , a n d i n f a c t u n w i s e f o r e f f i c i en c y r e a s o n s ,

t o e x p e c t a u t h o r s o f c o m m a n d s s u c h a s Is t o p r o v i d e

s u c h a w i d e v a r i e t y o f o u t p u t o p t i o n s .

A p r o g r a m s u c h a s

p r

w h i c h c o p i e s it s s t a n d a r d i n p u t

t o i ts s t a n d a r d o u t p u t ( w i t h p r o c e s s i n g ) i s c a l l e d a

.filter. S o m e f i l t e r s w h i c h w e h a v e f o u n d u s e f u l p e r -

f o r m c h a r a c t e r t r a n s l i t e r a t io n , s o r t i n g o f t h e i n p u t , a n d

e n c r y p t i o n a n d d e c r y p t i o n .

6 . 3 C o m m a n d S e p a r a t o r s : M u l t i t a s k i n g

A n o t h e r f e a t u r e p r o v i d e d b y t h e S h e l l i s r e l a t i v e l y

s t r a ig h t f o r w a r d . C o m m a n d s n e e d n o t b e o n d i f f e r e n t

371 Com munications July 1974

of Volume 17

the ACM Number 7

Page 8: The UNIX time-sharing system.pdf

8/11/2019 The UNIX time-sharing system.pdf

http://slidepdf.com/reader/full/the-unix-time-sharing-systempdf 8/11

l i n e s ; i n s t e a d t h e y m a y b e s e p a r a t e d b y s e m i c o l o n s .

l s ; e d

w i l l f i rs t l is t t h e c o n t e n t s o f t h e c u r r e n t d i r e c t o r y , t h e n

e n t e r t h e e d i t o r .

A r e l a t e d f e a t u r e i s m o r e i n te r e s t in g . I f a c o m m a n d

i s f o l l o w e d b y & , t h e S h e l l w i l l n o t wa i t fo r t h e

c o m m a n d t o f i n i s h b e f o r e p r o m p t i n g a g a i n ; i n s t e a d , i t

i s r e a d y i m m e d i a t e l y t o a c c e p t a n e w c o m m a n d . F o r

e x a m p l e ,

a s s o u r c e ) o u t p u t &

c a u s e s source t o b e a s s e m b l e d , w i t h d i a g n o s t i c o u t p u t

g o i n g t o output ; n o m a t t e r h o w l o n g t h e a s s e m b l y

t a k e s , t h e S h e l l r e t u r n s i m m e d i a t e l y . W h e n t h e S h e l l

d o e s n o t w a i t f o r t h e c o m p l e t i o n o f a c o m m a n d , t h e

i d e n ti f ic a t io n o f th e p r o c e s s r u n n i n g t h a t c o m m a n d i s

p r i n t e d . T h i s i d e n t i f i c a t i o n m a y b e u s e d t o w a i t f o r

t h e c o m p l e t i o n o f t h e c o m m a n d o r t o te r m i n a t e i t .

T h e & m a y b e u s e d s e v e r a l t i m e s i n a l in e :

a s s o u r c e ) o u t p u t & l s ) f il e s &

d o e s b o t h t h e a s s e m b l y a n d t h e l is t in g i n t h e b a c k -

g r o u n d . I n t h e e x a m p l e s a b o v e u s i n g & , a n o u t p u t

f il e o t h e r t h a n t h e t y p e w r i t e r w a s p r o v i d e d ; i f t h i s h a d

n o t b e e n d o n e , t h e o u t p u t s o f t h e v a r io u s c o m m a n d s

w o u l d h a v e b e e n i n t e rm i n g l e d .

T h e S h e l l a l s o a l l o w s p a r e n t h e s e s i n t h e a b o v e

o p e r a t i o n s . F o r e x a m p l e

(d a t e ; l s ) )x &

p r i n t s t h e c u r r e n t d a t e a n d t i m e f o l l o w e d b y a l i s t o f

t h e c u r r e n t d i r e c t o r y o n t o t h e f il e x . T h e S h e l l a l s o

r e t u r n s i m m e d i a t e l y f o r a n o t h e r r e q u e s t .

6 . 4 Th e S h e l l a s a

C o m m a n d : C o m m a n d

fi les

T h e S h e l l i s i t s e lf a c o m m a n d , a n d m a y b e c a l l ed

r e c u r s i v e ly . S u p p o s e f il e t ryout c o n t a i n s t h e l i n e s

a s s o u r c e

m v a . o u t t e s t p r o g

t e s t p r o g

T h e m y c o m m a n d c a u s e s t h e f i le a . o u t t o b e r e n a m e d

t es t p rog , a .ou t i s t h e ( b i n a r y ) o u t p u t o f th e a s s e m b l e r ,

r e a d y t o b e e x e c u t e d . T h u s i f t h e t h r e e l in e s a b o v e w e r e

t y p e d o n t h e c o n s o l e , source w o u l d b e a s s e m b l e d , t h e

r e s u l t i n g p r o g r a m n a m e d testprog, a n d t es t p rog e x -

e c u t e d . W h e n t h e l i n e s a r e i n t ryout , t he c o m m a n d

s h ( t r y o u t

w o u l d c a u s e t h e S h e l l sh t o e x e c u t e t h e c o m m a n d s

s e q u e n t i a l l y .

T h e S h e l l h a s f u r t h e r c a p a b i l i t i e s , i n c l u d i n g t h e

a b i l i t y t o s u b s t i t u t e p a r a m e t e r s a n d t o c o n s t r u c t a r g u -

m e n t l is t s f r o m a s p e c i fi e d s u b s e t o f th e f il e n a m e s i n a

d i r e c t o r y . I t i s a l s o p o s s i b l e t o e x e c u t e c o m m a n d s

c o n d i t i o n a l l y o n c h a r a c t e r s t r i n g c o m p a r i s o n s o r o n

e x i s t e n c e o f g i v e n f il es a n d t o p e r f o r m t r a n s f e r s o f

c o n t r o l w i th i n f i le d c o m m a n d s e q u e nc e s .

6 . 5 I m p l e m e n t a t i o n o f t he S h e ll

T h e o u t l i n e o f t h e o p e r a t i o n o f t h e S h e l l c a n n o w

b e u n d e r s t o o d . M o s t o f th e t i m e , t h e S h e ll is w a i t i n g

f o r t h e u s e r t o t y p e a c o m m a n d . W h e n t h e n ew - l in e

c h a r a c t e r e n d i n g t h e l i n e i s t y p e d , t h e S h e l l ' s read

c a l l r e t u r n s . T h e S h e l l a n a l y z e s t h e c o m m a n d l i n e ,

p u t t i n g t he a r g u m e n t s i n a f o r m a p p r o p r i a t e f o r execut e .

T h e n f o r k i s c a l le d . T h e c h i ld p r o c e s s , w h o s e c o d e o f

c o u r s e i s st il l t h a t o f th e S h e l l, a t t e m p t s t o p e r f o r m a n

execut e w i t h th e a p p r o p r i a t e a r g u m e n t s . I f su c c e s s f u l,

t h i s w il l b r i n g i n a n d s t a r t e x e c u t i o n o f t h e p r o g r a m

w h o s e n a m e w a s g i v e n . M e a n w h i l e , t h e o t h e r p r o c e s s

r e s u l t i n g f r o m t h e f o r k , w h i c h i s t h e p a r e n t p r o c e s s ,

wai t s f o r t h e c h i l d p r o c e s s t o d i e . W h e n t h i s h a p p e n s ,

t h e S h e l l k n o w s t h e c o m m a n d i s f i n i s h e d , s o i t t y p e s

i t s p r o m p t a n d r e a d s t h e t y p e w r i t e r t o o b t a i n a n o t h e r

c o m m a n d .

G i v e n t h is f r a m e w o r k , t h e i m p l e m e n t a t i o n o f b a c k -

g r o u n d p r o c e s s e s i s t r i v i a l ; w h e n e v e r a c o m m a n d l i n e

c o n t a i n s & , t h e S h e l l m e r e l y r e f r a i n s f r o m w a i t i n g

f o r t h e p r o c e s s w h i c h i t c r e a t e d t o e x e c u t e t h e c o m m a n d .

H a p p i l y , a l l o f th i s m e c h a n i s m m e s h e s v e r y n i c e ly

w i t h th e n o t i o n o f s t a n d a r d i n p u t a n d o u t p u t f il es .

W h e n a p r o c e s s i s c r e a t e d b y t h e f o r k p r i m i t i v e , i t

i n h e r it s n o t o n l y t h e c o r e i m a g e o f i ts p a r e n t b u t a l s o

a l l t h e f i le s c u r r e n t l y o p e n i n it s p a r e n t , i n c l u d i n g t h o s e

wi t h f i le d e s c r i p t o r s 0 a n d 1 . Th e S h e l l , o f c o u r s e , u s e s

t h e s e fi le s t o r e a d c o m m a n d l in e s a n d t o w r i t e it s

p r o m p t s a n d d i a g n o s t i c s , a n d i n t h e o r d i n a r y c a s e i t s

c h i l d r e n - - t h e c o m m a n d p r o g r a m s - - i n h e r i t t h e m a u t o -

m a t i c a l l y . W h e n a n a r g u m e n t w i t h ( o r ) i s g iven

h o w e v e r , t h e o f f s p r i n g p r o c e s s, j u s t b e f o r e i t p e r f o r m s

execute, m a k e s t h e s t a n d a r d I / O fi le d e s c r i p t o r 0 o r 1

r e s p e c t i v e l y r e fe r t o t h e n a m e d f i l e . Th i s i s e a s y b e c a u s e ,

b y a g r e e m e n t , t h e s m a l l e s t u n u s e d f i l e d e s c r i p t o r i s

a s s i g n e d wh e n a n e w f i l e i s

opened

( o r

crea t ed ) ;

i t is

o n l y n e c e s s a r y t o c l o s e fi le 0 ( o r 1 ) a n d o p e n t h e n a m e d

f i l e . B e c a u s e t h e p r o c e s s i n w h i c h t h e c o m m a n d p r o -

g r a m r u n s s i m p l y t e r m i n a t e s w h e n i t i s t h r o u g h , t h e

a s s o c i a t i o n b e t we e n a f i le s p e c i f i e d a f t e r ( o r )

a n d f il e d e s c r i p t o r 0 o r 1 i s e n d e d a u t o m a t i c a l l y w h e n

t h e p r o c e s s d i e s . T h e r e f o r e t h e S h e l l n e e d n o t k n o w t h e

a c t u a l n a m e s o f th e f i le s w h i c h a r e i t s o w n s t a n d a r d

i n p u t a n d o u t p u t s i n c e i t n e e d n e v e r r e o p e n t h e m .

F i l t e rs a r e s t r a i g h t f o r w a r d e x t e n s i o n s o f s t a n d a r d

I / o r e d i r e c t i o n w i t h p i p e s u s e d i n s t e a d o f f il es .

I n o r d i n a r y c i r c u m s t a n c e s , t h e m a i n l o o p o f t h e

S h e ll n e v e r t e r m i n a t e s . ( T h e m a i n l o o p i n c l u d e s t h a t

b r a n c h o f t h e r e t u r n

f r o m f o r k

b e l o n g i n g t o t h e p a r e n t

p r o c e s s ; t h a t i s , t h e b r a n c h w h i c h d o e s a wait , t h e n

r e a d s a n o t h e r c o m m a n d l i n e . ) T h e o n e t h i n g w h i c h

c a u s e s t h e S h e ll t o t e r m i n a t e i s d i s c o v e r i n g a n e n d - o f - f i le

c o n d i t i o n o n i t s i n p u t f i l e . Th u s , wh e n t h e S h e l l i s

e x e c u t e d a s a c o m m a n d w i t h a g i v e n i n p u t f i l e , a s i n

s h (c o m f i l e

t h e c o m m a n d s i n comf i l e wi l l b e e x e c u t e d u n t i l t h e

e n d o f comfile i s r e a c h e d ; t h e n t h e i n s t a n c e o f t h e

372

Comm unications July 1974

of Volume 17

the ACM Number 7

Page 9: The UNIX time-sharing system.pdf

8/11/2019 The UNIX time-sharing system.pdf

http://slidepdf.com/reader/full/the-unix-time-sharing-systempdf 9/11

S h e l l i n v o k e d b y s h wi l l t e r m i n a t e . S i n c e t h i s S h e l l

p r o c e s s i s th e c h i l d o f a n o t h e r i n s t a n c e o f t h e S h e ll ,

t h e

w a i t e x e c u t e d i n t h e l a t t e r w i l l r e t u r n , a n d a n o t h e r

c o m m a n d m a y b e p r o ce s se d .

6 . 6 I n i t i a l i z a t i on

T h e i n s t a n c e s o f t h e S h e ll t o w h i c h u s e r s t y p e c o m -

m a n d s a r e t h e m s e l v e s c h i ld r e n o f a n o t h e r p r o c e s s .

Th e l a s t s t e p i n t h e i n i t i a l i z a t i o n o f UNIX i s t h e c r e a t i o n

o f a s in g l e p r o c e s s a n d t h e i n v o c a t i o n ( v i a e x e c u t e )

o f a p r o g r a m c a l l e d

i n i t .

T h e r o l e o f

i n i t

i s to c rea te one .

p r o c e s s f o r e a c h t y p e w r i t e r c h a n n e l w h i c h m a y b e d i a l e d

u p b y a u s e r . T h e v a r i o u s s u b i n s t a n c e s o f i n i t o p e n t h e

a p p r o p r i a t e t y p e w r i t e r s f o r i n p u t a n d o u t p u t . S i n c e

w h e n i n i t w a s i n v o k e d t h e r e w e r e n o f i l e s o p e n , i n e a c h

p r o c e s s t h e t y p e w r i t e r k e y b o a r d w i l l r e c e i v e f i l e d e -

s c r i p t o r 0 a n d t h e p r i n t e r f i le d e s c r i p t o r 1 . E a c h p r o c e s s

t y p e s o u t a m e s s a g e r e q u e s t i n g t h a t t h e u s e r l o g i n a n d

wa i t s , r e a d i n g t h e t y p e wr i t e r , fo r a r e p l y . A t t h e o u t s e t ,

n o o n e i s l o g g e d i n , s o e a c h p r o c e s s s i m p l y h a n g s .

F i n a l l y s o m e o n e t y p e s h i s n a m e o r o t h e r i d e n t i f i c a t i o n .

T h e a p p r o p r i a t e i n s t a n c e o f i n i t wa k e s u p , r e c e i v e s t h e

l o g - i n l in e , a n d r e a d s a p a s s w o r d f il e. I f t h e u s e r n a m e

i s f o u n d , a n d i f h e i s a b l e t o s u p p l y t h e c o r r e c t p a s s -

w o r d , i n i t c h a n g e s t o t h e u s e r ' s d e f a u l t c u r r e n t d i r e c t o r y ,

s e ts t h e p r o c e s s ' s u s e r I D t o t h a t o f t h e p e r s o n l o g g i n g

i n, a n d p e r f o r m s a n e x e c u t e o f t h e S h e l l. A t t h i s p o i n t

t h e S h e l l i s r e a d y t o r e c e i v e c o m m a n d s a n d t h e l o g g i n g - in

p r o t o c o l i s c o m p l e t e .

M e a n w h i l e , t h e m a i n s t r e a m p a t h o f

i n i t

( t h e p a r e n t

o f a l l t h e s u b i n s t a n c e s o f i t s e lf w h i c h w i l l l a t e r b e c o m e

S h e l l s ) d o e s a w a i t . I f o n e o f t h e c h i l d p r o c e s s e s t e r m -

i n a t e s , e i t h e r b e c a u s e a S h e l l fo u n d a n e n d o f fi le o r

b e c a u s e a u s e r t y p e d a n i n c o r r e c t n a m e o r p a s s w o r d ,

t h i s p a t h o f i n i t s i m p l y r e c r e a t e s t h e d e f u n c t p r o c e s s ,

w h i c h i n t u r n r e o p e n s t h e a p p r o p r i a t e i n p u t a n d o u t p u t

f il es a n d t y p e s a n o t h e r l o g i n m e s s a g e . T h u s a u s e r m a y

l o g o u t s i m p l y b y t y p i n g t h e e n d - o f - f i l e s e q u e n c e i n

p l a c e o f a c o m m a n d t o t h e S h e l l.

6 . 7 O t h e r P r o g r a m s a s S h e ll

T h e S h e l l a s d e s c r i b e d a b o v e i s d e s i g n e d t o a l l o w

u s e r s fu l l a c c e s s t o t h e f a c i l i t ie s o f t h e s y s t e m s i n c e i t

w i ll in v o k e t h e e x e c u t io n o f a n y p r o g r a m w i t h a p p r o -

p r i a t e p r o t e c t i o n m o d e . S o m e t i m e s , h o w e v e r , a d i f -

f e r e n t i n t e r fa c e t o t h e s y s t e m i s d e s i r a b l e , a n d t h i s

f e a t u r e i s e a s i ly a r r a n g e d .

R e c a l l t h a t a f t e r a u s e r h a s s u c c e s s f u l l y l o g g e d i n b y

s u p p l y i n g hi s n a m e a n d p a s s w o r d ,

i n i t

o r d i n a r i l y i n v o k e s

t h e S h e l l t o i n t e r p r e t c o m m a n d l i n e s . T h e u s e r ' s e n t r y

i n th e p a s s w o r d f il e m a y c o n t a i n t h e n a m e o f a p r o g r a m

t o b e i n v o k e d a f t e r l o g i n i n s t e a d o f t h e S h e l l. T h i s

p r o g r a m i s f r e e t o i n t e r p r e t t h e u s e r ' s m e s s a g e s i n a n y

wa y i t w i s h e s .

F o r e x a m p l e , t h e p a s s w o r d f il e e n t r ie s f o r u s e r s o f a

s e c r e t a r i a l e d i ti n g s y s t e m s p e c i f y t h a t t h e e d i t o r e d is

t o

b e u s e d i n s t e a d o f th e S h e l l. T h u s w h e n e d i t i n g

s y s t e m u s e r s l o g i n , t h e y a r e i n s i d e t h e e d i t o r a n d c a n

373

b e g i n w o r k i m m e d i a t e l y ; a l s o , t h e y c a n b e p r e v e n t e d

f r o m i n v o k i n g U N ; X p r o g r a m s n o t i n t e n d e d f o r t h e ir

u s e . I n p r a c t i c e , i t h a s p r o v e d d e s i r a b l e t o a l l o w a

t e m p o r a r y e s c a p e f r o m t h e e d i t o r t o e x e c u t e t h e f o r m a t -

t i n g p r o g r a m a n d o t h e r u t i l i t i e s .

S e v e r a l o f th e g a m e s ( e .g . c h es s , b l a c k j a c k , 3 D t ic -

t a c - t o e ) a v a i l a b l e o n U N I X l l u st r a te a m u c h m o r e s e v e r e l y

r e s t r ic t e d e n v i r o n m e n t . F o r e a c h o f t h e s e a n e n t r y

e x i st s in t h e p a s s w o r d f il e s p e c i f y i n g th a t t h e a p p r o -

p r i a t e g a m e - p l a y i n g p r o g r a m i s t o b e i n v o k e d i n s t e a d

o f t h e S h e ll . P e o p l e w h o l o g i n a s a p l a y e r o f o n e o f t h e

g a m e s f i n d t h e m s e l v e s l i m i t e d t o t h e g a m e a n d u n a b l e

t o i n v e s t i g a t e t h e p r e s u m a b l y m o r e i n t e r e s t i n g o f f e r i n g s

o f UNJ X a s a wh o l e .

7 . T r a p s

T h e P DP -1 l h a r d w a r e d e t ec t s a n u m b e r o f p r o g r a m

f a u l t s , s u c h a s r e f e r e n c e s t o n o n e x i s t e n t m e m o r y ,

u n i m p l e m e n t e d i n s t r u c t i o n s , a n d o d d a d d r e s s e s u s e d

w h e r e a n e v e n a d d r e s s i s r e q u i r e d . S u c h f a u l t s c a u s e t h e

p r o c e s s o r t o t r a p t o a s y s t e m r o u t i n e . W h e n a n i ll e g al

a c t i o n i s c a u g h t , u n l e s s o t h e r a r r a n g e m e n t s h a v e b e e n

m a d e , t h e s y s t e m t e r m i n a t e s t h e p r o c e s s a n d w r i te s

t h e u s e r ' s i m a g e o n f i l e c o r e i n t h e c u r r e n t d i r e c t o r y . A

d e b u g g e r c a n b e u s e d t o d e t e r m i n e t h e s t a t e o f th e

p r o g r a m a t th e t i m e o f t h e f a u lt .

P r o g r a m s w h i c h a r e l o o p i n g , w h i c h p r o d u c e u n -

w a n t e d o u t p u t , o r a b o u t w h i c h ' t h e u s e r h a s s e c o n d

t h o u g h t s m a y b e h a l t e d b y t h e u s e o f t h e

i n t e r r u p t

s i g n al , w h i c h i s g e n e r a t e d b y t y p i n g th e d e l e t e

c h a r a c t e r . U n l e s s s p e c i a l a c t i o n h a s b e e n t a k e n , t h i s

s i g n a l s i m p l y c a u s e s th e p r o g r a m t o c e a s e e x e c u t i o n

w i t h o u t p r o d u c i n g a c o r e i m a g e f i l e .

Th e r e i s a l s o a

q u i t

s i g n a l wh i c h i s u s e d t o fo r c e a

c o r e i m a g e t o b e p r o d u c e d . T h u s p r o g r a m s w h i c h l o o p

u n e x p e c t e d l y m a y b e h a l t e d a n d t h e c o r e i m a g e e x -

a m i n e d w i t h o u t p r e a r r a n g e m e n t .

T h e h a r d w a r e - g e n e r a t e d f a u l t s a n d t h e i n te r r u p t a n d

q u i t s i g n a l s c a n , b y r e q u e s t , b e e i t h e r i g n o r e d o r c a u g h t

b y t h e p r o c e s s . F o r e x a m p l e , t h e S h e l l i g n o r e s q u i t s to

p r e v e n t a q u i t f r o m l o g g i n g th e u s e r o u t . T h e e d i t o r

c a t c h e s i n t e r r u p t s a n d r e t u r n s t o i ts c o m m a n d l e v e l .

T h i s i s u s e f u l f o r s t o p p i n g l o n g p r i n t o u t s w i t h o u t l o s i n g

w o r k i n p r o g r e s s ( t h e e d i to r m a n i p u l a t e s a c o p y o f

t h e f i l e i t i s e d i t i n g ) . In s y s t e m s w i t h o u t f l o a t i n g p o i n t

h a r d w a r e , u n i m p l e m e n t e d i n s t r u c ti o n s a r e c a u g h t, a n d

f l o a t i n g p o i n t i n s t r u c t i o n s a r e i n t e r p r e t e d .

8 .

P e r s p e c t i ve

P e r h a p s p a r a d o x i c a l l y , t h e s u c c es s o f U N I X i s l a r g e l y

d u e t o t h e f a c t t h a t i t w a s n o t d e s i g n e d t o m e e t a n y

p r e d e f i n e d o b j e c t i v e s . T h e f i r s t v e r s i o n w a s w r i t t e n

w h e n o n e o f us ( T h o m p s o n ) , d i s s at i sf i e d w i th t h e

a v a i l a b l e c o m p u t e r f a c i l i t i e s , d i s c o v e r e d a l i t t l e - u s e d

Comm unications July 1974

of Volume 17

the ACM Number 7

Page 10: The UNIX time-sharing system.pdf

8/11/2019 The UNIX time-sharing system.pdf

http://slidepdf.com/reader/full/the-unix-time-sharing-systempdf 10/11

P D P - 7 a n d s e t o u t t o c r e a t e a m o r e h o s p i t a b l e e n v i r o n -

m e n t . Th i s e s s e n t i a l l y p e r s o n a l e f fo r t wa s s u f f i c i e n t l y

s u c c e s sf u l t o g a i n t h e i n t e re s t o f t h e r e m a i n i n g a u t h o r

a n d o t h e r s , a n d l a t e r to j u s t i f y t h e a c q u i s i ti o n o f t h e

P OP -1 1 /2 0 , s p e c i f i c a l l y t o s u p p o r t a t e x t e d i t i n g a n d

f o r m a t t i n g s y s t e m . W h e n i n t u r n t h e 1 1 / 2 0 w a s o u t -

g r o w n , U N I X h a d p r o v e d u s e fu l e n o u g h t o p e r s u a d e

m a n a g e m e n t t o i n v e s t i n t h e

PDP-11/45.

O u r g o a l s

t h r o u g h o u t t h e e f f o r t , w h e n a r t i c u l a t e d a t a l l , h a v e

a l w a y s c o n c e r n e d t h e m s e l v e s w i t h b u i l d i n g a c o m f o r t -

a b l e r e l a t i o n s h i p w i t h t h e m a c h i n e a n d w i t h e x p l o r i n g

i d e a s a n d i n v e n t i o n s i n o p e r a t i n g s y s t e m s . W e h a v e

n o t b e e n f a c e d w i t h t h e n e e d t o s a t i s f y s o m e o n e e l s e ' s

r e q u i r e m e n t s , a n d f o r t h i s f r e e d o m w e a r e g r a t e f u l .

T h r e e c o n s i d e r a t i o n s w h i c h i n f l u e n c e d t h e d e s i g n

o f UNIX a r e v i s i b l e i n r e t r o s p e c t .

F i r s t , s i n c e w e a r e p r o g r a m m e r s , w e n a t u r a l l y

d e s i g n e d t h e s y s t e m t o m a k e i t e a s y t o w r i t e , t e s t , a n d

r u n p r o g r a m s . T h e m o s t i m p o r t a n t e x p r e s si o n o f o u r

d e s i r e f o r p r o g r a m m i n g c o n v e n i e n c e w a s t h a t t h e

s y s t e m w a s a r r a n g e d f o r i n t e r a c t i v e u s e , e v e n t h o u g h

t h e o r i g i n a l v e r s i o n o n l y s u p p o r t e d o n e u s e r . W e b e -

b e l i e v e t h a t a p r o p e r l y - d e s i g n e d i n t e r a c t i v e s y s t e m i s

m u c h m o r e p r o d u c t i v e a n d s a ti s fy i n g t o u s e th a n a

b a t c h s y s te m . M o r e o v e r s u ch a s y s t e m i s r a t h e r

e a s i ly a d a p t a b l e t o n o n i n t e r a c t i v e u s e , w h i l e t h e c o n -

v e r s e i s n o t t r u e .

S e c o n d , t h e r e h a v e a l w a y s b e e n f a i r l y s e v e r e s i z e

c o n s t r a i n t s o n t h e s y s t e m a n d i t s s o f t w a r e . G i v e n t h e

p a r t i a l l y a n t a g o n i s t i c d e s i r e s f o r r e a s o n a b l e e f f i c i e n c y

a n d e x p r e s s i v e p o w e r , t h e s iz e c o n s t r a i n t h a s e n c o u r a g e d

n o t o n l y e c o n o m y b u t a c e r t a in e l e g a n c e o f d e si g n .

T h i s m a y b e a th i n l y d is g u i s e d v e r s i o n o f t h e s a l v a -

t i o n t h r o u g h s u f f e r i n g p h i l o s o p h y , b u t in o u r c a s e i t

w o r k e d .

T h i r d , n e a r l y f r o m t h e s t a r t , t h e s y s t e m w a s a b l e t o ,

a n d d i d , m a i n t a i n i t s e l f . T h i s f a c t i s m o r e i m p o r t a n t

t h a n i t m i g h t s e e m . I f d e si g n e r s o f a s y s t e m a r e f o r c e d

t o u s e th a t s y s t e m , t h e y q u i c k l y b e c o m e a w a r e o f it s

f u n c t i o n a l a n d s u p e r f i c i a l d e f i c i e n c i e s a n d a r e s t r o n g l y

m o t i v a t e d t o c o r r e c t t h e m b e f o r e i t i s t o o l a t e . S i n c e

a l l s o u r c e p r o g r a m s w e r e a l w a y s a v a i l a b l e a n d e a s i l y

m o d i f i e d o n - l i n e , we we r e w i l l i n g t o r e v i s e a n d r e wr i t e

t h e s y s t e m a n d i t s s o f t w a r e w h e n n e w i d e a s w e r e

i n v e n t e d , d i s c o v e r e d , o r s u g g e s t e d b y o t h e r s .

T h e a s p e c t s o f U N IX d i s c u s s ed i n t h i s p a p e r e x h i b i t

c l e a r l y a t l e a s t th e f i r s t tw o o f t h e s e d e s i g n c o n s i d e r a -

t i o n s . T h e i n t e r f a c e t o t h e f i l e s y s t e m , f o r e x a m p l e , i s

e x t r e m e l y c o n v e n i e n t f r o m a p r o g r a m m i n g s t a n d p o i n t .

T h e l o w e s t p o s s i b l e i n t e r f a c e l e v e l i s d e s i g n e d t o

e l i m i n a t e d i s t i n c t i o n s b e t w e e n t h e v a r i o u s d e v i c e s a n d

f il es a n d b e t w e e n d i r e c t a n d s e q u e n t i a l a c c e ss . N o

l a r g e a c c e s s m e t h o d r o u t i n e s a r e r e q u i r e d t o i n s u l a te

t h e p r o g r a m m e r f r o m t h e s y s t e m c a ll s ; i n f a c t , a l l

u s e r p r o g r a m s e i t h e r c a ll th e s y s t e m d i r e c t l y o r u s e a

s m a l l l ib r a r y p r o g r a m , o n l y t e n s o f i n s t r u c t i o n s lo n g ,

w h i c h b u f f e r s a n u m b e r o f c h a r a c t e r s a n d r e a d s o r

w r i t e s t h e m a l l a t o n c e .

A n o t h e r i m p o r t a n t a s p e ct o f p r o g r a m m i n g c o n -

v e n i e n c e i s t h a t th e r e a re n o c o n t r o l b l o c k s w i t h a

c o m p l i c a t e d s t r u c t u r e p a r t i a l ly m a i n t a i n e d b y a n d d e -

p e n d e d o n b y t h e f i l e s y s t e m o r o t h e r s y s t e m c a l l s .

G e n e r a l l y s p e a k in g , t h e c o n t e n t s o f a p r o g r a m ' s a d d r e s s

s p a c e a re t h e p r o p e r t y o f th e p r o g r a m , a n d w e h a v e

t r i e d t o a v o i d p l a c i n g r e s t r i c t i o n s o n t h e d a t a s t r u c t u r e s

w i t h i n t h a t a d d r e s s s p a c e .

G i v e n t h e r e q u i r e m e n t t h a t a l l p r o g r a m s s h o u l d b e

u s a b l e w i t h a n y f i l e o r d e v i c e a s i n p u t o r o u t p u t , i t i s

a l s o d e s i r a b l e f r o m a s p a c e - e f f i c ie n c y s t a n d p o i n t t o p u s h

d e v i c e - d e p e n d e n t c o n s i d e r a t i o n s i n t o t h e o p e r a t i n g s y s -

t e m i t s e l f . T h e o n l y a l t e r n a t i v e s s e e m t o b e t o l o a d

r o u t i n e s f o r d e a l i n g w i t h e a c h d e v i c e w i t h a l l p r o g r a m s ,

w h i c h i s e x p e n s i v e in s p a c e , o r to d e p e n d o n s o m e m e a n s

o f d y n a m i c a l l y l in k i n g t o t h e r o u t i n e a p p r o p r i a t e t o

e a c h d e v i c e w h e n i t i s a c t u a l l y n e e d e d , w h i c h i s e x p e n -

s iv e e i t h e r in o v e r h e a d o r i n h a r d w a r e .

L i k e w i s e , t h e p r o c e s s c o n t r o l s c h e m e a n d c o m m a n d

i n t e r f a c e h a v e p r o v e d b o t h c o n v e n i e n t a n d e f f i c i e n t .

S i n c e t h e S h e l l o p e r a t e s a s a n o r d i n a r y , s w a p p a b l e u s e r

p r o g r a m , i t c o n s u m e s n o w i r e d - d o w n s p a c e i n t h e

s y s t e m p r o p e r , a n d i t m a y b e m a d e a s p o w e r f u l a s

d e s i r e d a t l i t t l e c o s t . I n p a r t i c u l a r , g i v e n t h e f r a m e w o r k .

i n w h i c h t h e S h e l l e x e c u t e s a s a p r o c e s s w h i c h s p a w n s

o t h e r p r o c es s e s t o p e r f o r m c o m m a n d s , t h e n o t i o n s o f

I / O r e d i r e c t i o n , b a c k g r o u n d p r o c e s s e s , c o m m a n d f li es ,

a n d u s e r - s e l e c t a b l e s y s t e m i n t e r f a c e s a l l b e c o m e e s s e n -

t i a l l y t r i v i a l t o i m p l e m e n t .

8 . 1 I n f l u e n c e s

T h e s u c c e s s o f' U N I X l ie s n o t s o m u c h i n n e w i n v e n -

t i o n s b u t r a t h e r i n t h e f u l l e x p l o i t a t i o n o f a c a r e f u l l y

s e l e c t e d s e t o f f e r ti l e id e a s , a n d e s p e c i a l l y in s h o wi n g

t h a t t h e y c a n b e k e y s t o t h e i m p l e m e n t a t i o n o f a s m a l l

y e t p o w e r f u l o p e r a t i n g s y s t e m .

The fork o p e r a t i o n , e s s e n t i a l l y a s w e i m p l e m e n t e d i t ,

w a s p r e s e n t i n t h e B e r k e l e y t i m e - s h a r i n g s y s t e m [ 8 ] . O n

a n u m b e r o f p o i n t s w e w e r e i n f lu e n c e d b y M u l t i c s , w h i c h

s u g g e s te d t h e p a r t i c u la r f o r m o f t h e I / o s y s t e m c a ll s

[ 9] a n d b o t h t h e n a m e o f th e S h e l l a n d i t s g e n e r a l f u n c -

t i o n s . T h e n o t i o n t h a t t h e S h e l l s h o u l d c r e a t e a p r o c e s s

f o r e a c h c o m m a n d w a s a l s o s u g g e s t e d t o u s b y t h e

e a r l y d e s ig n o f M u l t i c s , a l t h o u g h i n t h a t s y s t e m i t w a s

l a t e r d r o p p e d f o r e f f ic i e n cy r e a s o n s . A s i m i l a r s c h e m e

i s u s e d b y

TENEX [10].

9 . S t a t i s t i c s

T h e f o l l o w i n g s t a t i s t ic s f r o m U N I X a r e p r e s e n t e d t o

s h o w t h e s c a le o f t h e s y s t e m a n d t o s h o w h o w a s y s t e m

o f th i s s c a le is u se d . T h o s e o f o u r u s e r s n o t i n v o l v e d i n

d o c u m e n t p r e p a r a t i o n t e n d t o u s e th e s y s t e m f o r p r o -

g r a m d e v e l o p m e n t , e s p e c ia l ly l a n g u a g e w o r k . T h e r e a r e

f e w i m p o r t a n t a p p l i c a t i o n s p r o g r a m s .

3 74

Comm unications July 1974

of Volume 17

the ACM Number 7

Page 11: The UNIX time-sharing system.pdf

8/11/2019 The UNIX time-sharing system.pdf

http://slidepdf.com/reader/full/the-unix-time-sharing-systempdf 11/11

9 . 1 O ve r a l l

72 user popu la t i on

14 maxim um s imul t aneous users

300 di rectories

4400 fi les

34000 512-by te secondary s torage b locks used

9 . 2 P e r d a y ( 2 4 - h o u r d a y , 7 - d a y w e e k ba s i s )

T h e r e i s a b a c k g r o u n d p r o c e s s t h a t r u n s a t t h e

l o w e s t p o s s i b l e p r i o r i t y ; it is u s e d t o s o a k u p a n y i d l e

c P u t i m e . I t h a s b e e n u s e d t o p r o d u c e a m i l l io n - d i g i t

a p p r o x i m a t i o n t o t h e c o n s t a n t e - 2 , a n d i s n o w

g e n e r a t in g c o m p o s i t e p s e u d o p r i m e s ( b a se 2 ) .

1 8 0 0 c o m m a n d s

4 .3 CPU hours (as ide f rom background)

70 connect hours

30 different users

75 logins

9 . 3 C o m m a n d C P U U s a g e ( c u t o f f a t 1 )

15 .7% Cco mp i l er 1 .7% For t ra n compi l er

15.2% users ' prog ram s 1.6% remov e fi le

11 .7% edi tor 1 .6% t ape arch ive

5.8% Shel l (used as a corn- 1.6% fi le system consistency

mand, i nc luding com- check

mand t imes) 1 .4% l ibrary main t a iner

5 .3% chess 1 .3% conc at ena t e /p r in t f i l es

3.3% list di recto ry 1.3% pagin ate and print f i le

3 .1% documen t format t e r 1 .1% pr in t d i sk usage

1 .6% backup dumpe r 1 .0% copy f i le

1 .8% assembler

9 . 4 C o m m a n d A c c e s s e s ( c u t o f f a t 1 )

15.3% edi tor 1.6% debug ger

9.6% l ist di rector y 1.6% Shel l (used as a com man d)

6 .3% remove f i le 1 .5% pr in t d i sk ava i l ab i l it y

6.3% C com piler 1.4% l ist processes executing

6 .0% concat ena t e /pr in t f i l e 1 .4% assembler

6 .0% users ' p rogram s 1 .4% pr in t a rgument s

3.3% l ist peop le logged on 1.2% copy fi le

sys t em 1 .1% pag ina t e and pr in t f i le

3 .2% rena me/m ove f il e 1 .1% pr in t curren t da t e / t ime

3.1% fi le status 1.1% fi le system consistency

1 .8% l ibrary main t a iner check

1 .8% documen t format t e r 1 .0% t ape arch ive

1 .6% execu te another com-

mand condi t i ona l l y

9 .5 R e l ia b i l i ty

O u r s t a ti s t ic s o n r e l i a b i l it y a r e m u c h m o r e s u b j e c t i v e

t h a n t h e o t h e r s . T h e f o l l o w i n g r e s u l ts a r e t r u e t o t h e

b e s t o f o u r c o m b i n e d r e c o l l e c t i o n s . T h e t i m e s p a n i s

o v e r o n e y e a r w i t h a v e r y e a r l y v in t a g e 1 1 / 4 5.

T h e r e h a s b e e n o n e l o s s o f a fi le s y s t e m ( o n e d i s k

o u t o f f iv e ) c a u s e d b y s o f t w a r e i n a b i l i t y t o c o p e w i t h

a h a r d w a r e p r o b l e m c a u s i n g r e p e a te d p o w e r f a i l t r a p s.

F i l e s o n t h a t d i s k w e r e b a c k e d u p t h r e e d a y s .

A c r a s h is a n u n s c h e d u l e d sy s t e m r e b o o t o r

h a l t. T h e r e i s a b o u t o n e c r a s h e v e r y o t h e r d a y ; a b o u t

t w o - t h i r d s o f th e m a r e c a u s e d b y h a r d w a r e - r e l a t e d d i f-

375

f ic u l ti e s s u c h a s p o w e r d i p s a n d i n e x p l i c a b l e p r o c e s s o r

i n t e r r u p ts t o r a n d o m l o c a t i o n s . T h e r e m a i n d e r a r e

s o f t w a r e f a i l u re s . T h e l o n g e s t u n i n t e r r u p t e d u p t i m e

w a s a b o u t t w o w e e k s . S e r v i c e c a l ls a v e r a g e o n e e v e r y

t h r e e w e e k s , b u t a r e h e a v i l y c l u s t e r e d . T o t a l u p t i m e

h a s b e e n a b o u t 9 8 p e r c e n t o f o u r 2 4 - h o u r , 3 6 5 - d a y

s c h e d u l e .

Acknowledgments . W e a r e g r a te f u l t o R . H . C a n a d a y ,

L . L . C h e r ry , a n d L . E . M c M a h o n f o r t h e ir c o n t r ib u -

t i o n s t o u N IX . W e a r e p a r t i c u l a r l y a p p r e c i a t i v e o f t h e

i n v e n t iv e n e s s , t h o u g h t f u l c r i t ic i s m , a n d c o n s t a n t s u p -

p o r t o f R . M o r r i s , M . D . M c I l r o y , a n d J . F . O s s a n n a .

References

1 . Dig i t a l Equ ipment Corpora t i on . PDP-I1 /4 0 Processor

Hand book , 1972, and PDP-I1/45 Processor Hand book , 1971 .

2 . Deu t sch , L .P . , and Lamp son, B .W. An online ed i tor . Comm.

ACM 10, 12 (Dec. 1967), 793-799, 803.

3 . Richards , M. BCPL: A tool for compi l er wr i t ing and sys t em

progra mm ing. Proc. AFI PS 1969 SJCC, Vol . 34, AF IP S Press,

Montvale, N.J. , pp. 557-566.

4 . McClure , R .M. TM G -- A syntax d i rec t ed compi l er . P roc .

ACM 20th Nat . Conf. , ACM, 1965, New York, pp. 262-274.

5 . Hal l , A .D. The M6 m acroprocessor . Comp ut ing Sc ience Tech.

Rep.#2, B el l Telephon e Labo ratories , 1969.

6 . Ri t ch ie , D .M. C reference manual . Unpubl i shed memorand um,

Bel l Teleph one La bora tories, 1973.

7 . A leph-nu l l . Com puter Recrea t i ons . So[?ware Practice and

Experience 1, 2 (A pr.-Ju ne 1971), 201-204.

8. Deutsch, L.P., and Lam pson, B.W. SDS 930 t ime-sharin g

system prel im inary reference man ual . Doc. 30.10.10, Project G EN I E,

U of Ca l i fornia at Berkeley, Apr . 1965.

9. Feiertag, R.J. , and Organick, E.I . The Mult ics input-o utput

system. Proc. Third Syrup. on Oper. Syst. Princ., Oct. 18-20, 1971,

ACM, New York, pp. 35-41.

10. Bobrow, D.G ., Burchfiel, J .D. , M urphy, D.L. , and Tomlinson,

R.S . TEN EX, a paged t ime shar ing sys t em tbr t he PDP-10 . Comm.

ACM15, 3 (Mar. 1972), 135-143.

Com munica t ions Ju ly 1974

of Volume 17

t h e A C M N u m b e r 7