|
|
1.1 root 1:
2: B E R K E L E Y N E T W O R K
3:
4:
5: The code in this directory is the most up-to-date network source
6: on the machine.
7:
8: *** Adding a new machine
9:
10: To add another machine to an existing network, change these programs:
11:
12: * mach.h:
13: add an ifdef entry for the new machines
14: * config.h:
15: add in LOCALx section of config.h
16: the usual information about the machine interconnections
17: add the name of the machine to the machine
18: name table and its type to the machine type table
19: * Paths.h:
20: Change the path names in "Paths.h".
21: * makefile:
22: change the makefile to suit.
23: * nsh.c:
24: Change the path names in "nsh.c".
25: * sub.c:
26: check routine "gothru"
27: * v6mail.c:
28: add machine names to "v6mail.c"
29:
30: To set up a new network, I suggest starting with two machines and
31: get everything up as you like it, then including others.
32: Follow the steps outlined above. A good way to see the specific
33: places where another network has been changed is to
34: grep RAND *.h *.c
35:
36:
37: *** Other files ***
38: interact.c, listen.c - manually send packets
39: speeds.c, speedr.c - send various length packets, use "time" to evaluate
40: store.c, receive.c - send a file (use for backup)
41: nettest.c - run daemons locally, using pipes instead of tty lines
42: setmode.c - set the mode on the tty line driver to "cat" things thru
43:
44: *** Taxonomy of net pgms being sent around:
45:
46: Internal: sendberkmail, prmail, mmail, mwrite
47: External: net, netcp, netlpr, netmail
48: Other: netdaemon, netstart, netq, netrm
49:
50:
51: *** Naming Conventions (I may adopt these if I like them) ***
52: The names of simple variables are composed of three parts.
53: [type char] [string] [type tag]
54: where
55: typechar is one of
56: i integer (int)
57: l long integer (long)
58: ch character (char)
59: s string (char *)
60: f logical (char)
61: the (optional) string is any short descriptive string.
62: the (optional) type tag is noe of (assume string is "foo"):
63:
64: fooMin minimum value of foo, for all foo, foo >= fooMin
65: fooMax maximum value of foo, foo <= fooMax
66: fooMac current maximum of foo, fooMin <= fooMac <= fooMax
67: usually used for array substript
68: fooOld old value of foo, as opposed to fooNew
69: fooNew new value of foo, as opposes to fooOld
70:
71: Example:
72: sdate a string containing a date
73: sdateOld a string containing an old date
74: sdateNew a string containing the "current" date
75:
76: Pointers
77:
78: pointer names are composed of the
79: previous set of names precedd by a character "p", e.g.
80:
81: pch pointer to char (same as string)
82: pi pointer to integer
83: pltime pointer to a long with the time in it
84:
85: Counters
86: Variables that count instances of things are preceded
87: by 'n', e.g.
88: nch number of chars
89: nsdate number of date strings
90: Indices
91: Are stored as integers and preceded by 'i':
92: ich index into char array
93: is same as above
94:
95: Added types:
96: uid userid as set by getuid()
97: sn local name, w/o ':'
98: fd (FILE *) file descriptor
99: mch (char) 1 - letter machine code
100: addr (char *) address, may include ':'
101:
102: Procedure names list
103: parameters appear after procedure name, return value before.
104: (Remember for external names only the first 7 characters are significant.)
105:
106: Compile Time Constants
107: Are in upper-case.
108: (Remember only first 8 characters are significant to the preprocessor).
109:
110:
111: PROBLEMS
112:
113: If you have any problems or questions, don't hesitate
114: to call me.
115: Eric Schmidt
116: 706 International House
117: Berkeley, Cal. 94720
118: 415-642-9365
119: 642-9490 (messages)
120:
121: or
122: C.S. Department
123: Evans Hall
124: U.C. Berkeley
125: Berkeley, Cal. 94720
126: 415-642-4951
127: 642-1024 (messages)
128:
129: or mail Bell Research mail to "research!ucbvax!schmidt"
130: or mail ARPANET mail to me at "schmidt@berkeley" or "schmidt@parc".
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.