Commit | Line | Data |
---|---|---|
c557cacd C |
1 | .ds LH "Building Systems With Config |
2 | .ds RH "Configuration File Contents | |
3 | .ds CF July 27, 1983 | |
4 | .LP | |
5 | .nr H1 2 | |
6 | .nr H2 0 | |
7 | .ds CH " | |
8 | .bp | |
9 | .ds CH "\(hy \\n(PN \(hy | |
10 | .LG | |
11 | .B | |
12 | .ce | |
13 | 2. CONFIGURATION FILE CONTENTS | |
14 | .sp 2 | |
15 | .R | |
16 | .NL | |
17 | .PP | |
18 | A system configuration must include at least the following | |
19 | pieces of information: | |
20 | .IP \(bu 3 | |
21 | machine type | |
22 | .IP \(bu 3 | |
23 | cpu type | |
24 | .IP \(bu 3 | |
25 | system identification | |
26 | .IP \(bu 3 | |
27 | timezone | |
28 | .IP \(bu 3 | |
29 | maximum number of users | |
30 | .IP \(bu 3 | |
31 | location of the root file system | |
32 | .IP \(bu 3 | |
33 | available hardware | |
34 | .PP | |
35 | .I Config | |
36 | allows multiple system images to be generated from a single | |
37 | configuration description. Each system image is configured | |
38 | for identical hardware, but may have different locations for the root | |
39 | file system and, possibly, other system devices. | |
40 | .NH 2 | |
41 | Machine type | |
42 | .PP | |
43 | The | |
44 | .I "machine type" | |
45 | indicates if the system is going to operate on a DEC VAX-11 computer, | |
46 | or some other machine on which 4.2BSD operates. The machine type | |
47 | is used to locate certain data files which are machine specific and, | |
48 | also, to select rules used in constructing the resultant | |
49 | configuration files. | |
50 | .NH 2 | |
51 | Cpu type | |
52 | .PP | |
53 | The | |
54 | .I "cpu type" | |
55 | indicates which, of possibly many, cpu's the system is to operate on. | |
56 | For example, if the system is being configured for a VAX-11, it could | |
57 | be running on a VAX-11/780, VAX-11/750, or VAX-11/730. Specifying | |
58 | more than one cpu type implies the system should be configured to run | |
59 | on all the cpu's specified. For some types of machines this is not | |
60 | possible and | |
61 | .I config | |
62 | will print a diagnostic indicating such. | |
63 | .NH 2 | |
64 | System identification | |
65 | .PP | |
66 | The | |
67 | .I "system identification" | |
68 | is a moniker attached to the system, and often the machine on which the | |
69 | system is to run. For example, at Berkeley we have machines named Ernie | |
70 | (Co-VAX), Kim (No-VAX), and so on. The system identifier selected is used to | |
71 | create a global C ``#define'' which may be used to isolate system dependent | |
72 | pieces of code in the kernel. For example, Ernie's Varian driver used | |
73 | to be special cased because its interrupt vectors were wired together. The | |
74 | code in the driver which understood how to handle this non-standard hardware | |
75 | configuration was conditionally compiled in only if the system | |
76 | was for Ernie. | |
77 | .PP | |
78 | The system identifier ``GENERIC'' is given to a system which | |
79 | will run on any cpu of a particular machine type; it should not | |
80 | otherwise be used for a system identifier. | |
81 | .NH 2 | |
82 | Timezone | |
83 | .PP | |
84 | The timezone in which the system is to run is used to define the | |
85 | information returned by the \fIgettimeofday\fP\|(2) | |
86 | system call. This value is specified as the number of hours east | |
87 | or west of GMT. Negative numbers indicate a value east of GMT. | |
88 | The timezone specification may also indicate the | |
89 | type of daylight savings time rules to be applied. | |
90 | .NH 2 | |
91 | Maximum number of users | |
92 | .PP | |
93 | The system allocates many system data structures at boot time | |
94 | based on the maximum number of users the system will support. | |
95 | This number is normally between 8 and 40, depending | |
96 | on the hardware and expected job mix. The rules | |
97 | used to calculate system data structures are discussed in | |
98 | Appendix D. | |
99 | .NH 2 | |
100 | Root file system location | |
101 | .PP | |
102 | When the system boots it must know the location of | |
103 | the root of the file system | |
104 | tree. This location and the part(s) of the disk(s) to be used | |
105 | for paging and swapping must be specified in order to create | |
106 | a complete configuration description. | |
107 | .I Config | |
108 | uses many rules to calculate default locations for these items; | |
109 | these are described in Appendix B. | |
110 | .PP | |
111 | When a generic system is configured, the root file system is left | |
112 | undefined until the system is booted. In this case, the root file | |
113 | system need not be specified, only that the system is a generic system. | |
114 | .NH 2 | |
115 | Hardware devices | |
116 | .PP | |
117 | When the system boots it goes through an | |
118 | .I autoconfiguration | |
119 | phase. During this period, the system searches for all | |
120 | those hardware devices | |
121 | which the system builder has indicated might be present. This probing | |
122 | sequence requires certain pieces of information such as register | |
123 | addresses, bus interconnects, etc. A system's hardware may be configured | |
124 | in a very flexible manner or be specified without any flexibility | |
125 | whatsoever. Most people do not configure hardware devices into the | |
126 | system unless they are currently present on the machine, expect | |
127 | them to be present in the near future, or are simply guarding | |
128 | against a hardware | |
129 | failure somewhere else at the site (it is often wise to configure in | |
130 | extra disks in case an emergency requires moving one off a machine which | |
131 | has hardware problems). | |
132 | .PP | |
133 | The specification of hardware devices usually occupies the majority of | |
134 | the configuration file. As such, a large portion of this document will | |
135 | be spent understanding it. Section 6.3 contains a description of | |
136 | the autoconfiguration process, as it applies to those planning to | |
137 | write, or modify existing, device drivers. | |
138 | .NH 2 | |
139 | Optional items | |
140 | .PP | |
141 | Other than the mandatory pieces of information described above, it | |
142 | is also possible to include various optional system facilities. For | |
143 | example, 4.2BSD can be configured to support binary compatibility for | |
144 | programs built under 4.1BSD. Also, optional support is provided | |
145 | for disk quotas and tracing the performance of the virtual memory | |
146 | subsystem. Any optional facilities to be configured into | |
147 | the system are specified in the configuration file. The resultant | |
148 | files generated by | |
149 | .I config | |
150 | will automatically include the necessary pieces of the system. |