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