Initial import from FreeBSD RELENG_4:
[games.git] / share / doc / papers / beyond4.3 / beyond43.ms
1 .\" Copyright (c) 1989 The Regents of the University of California.
2 .\" All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. All advertising materials mentioning features or use of this software
13 .\"    must display the following acknowledgement:
14 .\"     This product includes software developed by the University of
15 .\"     California, Berkeley and its contributors.
16 .\" 4. Neither the name of the University nor the names of its contributors
17 .\"    may be used to endorse or promote products derived from this software
18 .\"    without specific prior written permission.
19 .\"
20 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 .\" SUCH DAMAGE.
31 .\"
32 .\"     @(#)beyond43.ms 5.1 (Berkeley) 6/5/90
33 .\" $FreeBSD: src/share/doc/papers/beyond4.3/beyond43.ms,v 1.2.6.1 2000/11/28 11:35:48 ru Exp $
34 .\"
35 .\" *troff -ms
36 .rm CM
37 .sp 2
38 .ce 100
39 \fB\s+2Current Research by
40 The Computer Systems Research Group
41 of Berkeley\s-2\fP
42 .ds DT "February 10, 1989
43 .\" \fBDRAFT of \*(DT\fP
44 .sp 2
45 .nf
46 Marshall Kirk McKusick
47 Michael J Karels
48 Keith Sklower
49 Kevin Fall
50 Marc Teitelbaum
51 Keith Bostic
52 .fi
53 .sp 2
54 .ce 1
55 \fISummary\fP
56 .ce 0
57 .PP
58 The release of 4.3BSD in April of 1986 addressed many of the 
59 performance problems and unfinished interfaces
60 present in 4.2BSD [Leffler84] [McKusick85].
61 The Computer Systems Research Group at Berkeley
62 has now embarked on a new development phase to
63 update other major components of the system, as well as to offer
64 new functionality.
65 There are five major ongoing projects.
66 The first is to develop an OSI network protocol suite and to integrate
67 existing ISO applications into Berkeley UNIX.
68 The second is to develop and support an interface compliant with the
69 P1003.1 POSIX standard recently approved by the IEEE.
70 The third is to refine the TCP/IP networking to improve
71 its performance and limit congestion on slow and/or lossy networks.
72 The fourth is to provide a standard interface to file systems
73 so that multiple local and remote file systems can be supported,
74 much as multiple networking protocols are supported by 4.3BSD.
75 The fifth is to evaluate alternate access control mechanisms and
76 audit the existing security features of the system, particularly
77 with respect to network services.
78 Other areas of work include multi-architecture support, 
79 a general purpose kernel memory allocator, disk labels, and
80 extensions to the 4.2BSD fast filesystem.
81 .PP
82 We are planning to finish implementation prototypes for each of the
83 five main areas of work over the next year, and provide an informal
84 test release sometime next year for interested developers.
85 After incorporating feedback and refinements from the testers,
86 they will appear in the next full Berkeley release, which is typically
87 made about a year after the test release.
88 .br
89 .ne 10
90 .sp 2
91 .NH
92 Recently Completed Projects
93 .PP
94 There have been several changes in the system that were included
95 in the recent 4.3BSD Tahoe release.
96 .NH 2
97 Multi-architecture support
98 .PP
99 Support has been added for the DEC VAX 8600/8650, VAX 8200/8250, 
100 MicroVAXII and MicroVAXIII.
101 .PP
102 The largest change has been the incorporation of support for the first
103 non-VAX processor, the CCI Power 6/32 and 6/32SX.  (This addition also
104 supports the
105 Harris HCX-7 and HCX-9, as well as the Sperry 7000/40 and ICL machines.)
106 The Power 6 version of 4.3BSD is largely based on the compilers and
107 device drivers done for CCI's 4.2BSD UNIX,
108 and is otherwise similar to the VAX release of 4.3BSD.
109 The entire source tree, including all kernel and user-level sources,
110 has been merged using a structure that will easily accommodate the addition
111 of other processor families.  A MIPS R2000 has been donated to us,
112 making the MIPS architecture a likely candidate for inclusion into a future
113 BSD release.
114 .NH 2
115 Kernel Memory Allocator
116 .PP
117 The 4.3BSD UNIX kernel used 10 different memory allocation mechanisms,
118 each designed for the particular needs of the utilizing subsystem.
119 These mechanisms have been replaced by a general purpose dynamic
120 memory allocator that can be used by all of the kernel subsystems.
121 The design of this allocator takes advantage of known memory usage
122 patterns in the UNIX kernel and a hybrid strategy that is time-efficient
123 for small allocations and space-efficient for large allocations.
124 This allocator replaces the multiple memory allocation interfaces 
125 with a single easy-to-program interface,
126 results in more efficient use of global memory by eliminating
127 partitioned and specialized memory pools,
128 and is quick enough (approximately 15 VAX instructions) that no
129 performance loss is observed relative to the current implementations.
130 [McKusick88].
131 .NH 2
132 Disk Labels
133 .PP
134 During the work on the CCI machine,
135 it became obvious that disk geometry and filesystem layout information
136 must be stored on each disk in a pack label.
137 Disk labels were implemented for the CCI disks and for the most common
138 types of disk controllers on the VAX.
139 A utility was written to create and maintain the disk information,
140 and other user-level programs that use such information now obtain
141 it from the disk label.
142 The use of this facility has allowed improvements in the file system's
143 knowledge of irregular disk geometries such as track-to-track skew.
144 .NH 2
145 Fat Fast File System
146 .PP
147 The 4.2 fast file system [McKusick84]
148 contained several statically sized structures,
149 imposing limits on the number of cylinders per cylinder group,
150 inodes per cylinder group,
151 and number of distinguished rotational positions.
152 The new ``fat'' filesystem allows these limits to be set at filesystem
153 creation time.
154 Old kernels will treat the new filesystems as read-only,
155 and new kernels
156 will accommodate both formats.
157 The filesystem check facility, \fBfsck\fP, has also been modified to check
158 either type.
159 .br
160 .ne 10
161 .sp 2
162 .NH
163 Current UNIX Research at Berkeley
164 .PP
165 Since the release of 4.3BSD in mid 1986,
166 we have begun work on several new major areas of research.
167 Our goal is to apply leading edge research ideas into a stable
168 and reliable implementation that solves current problems in
169 operating systems development.
170 .NH 2
171 OSI network protocol development
172 .PP
173 The network architecture of 4.2BSD was designed to accommodate
174 multiple network protocol families and address formats,
175 and an implementation of the ISO OSI network protocols
176 should enter into this framework without much difficulty.
177 We plan to 
178 implement the OSI connectionless internet protocol (CLNP),
179 and device drivers for X.25, 802.3, and possibly 802.5 interfaces, and
180 to integrate these with an OSI transport class 4 (TP-4) implementation.
181 We will also incorporate into the Berkeley Software Distribution an
182 updated ISO Development Environment (ISODE)
183 featuring International Standard (IS) versions of utilities.
184 ISODE implements the session and presentation layers of the OSI protocol suite,
185 and will include an implementation of the file transfer protocol (FTAM).
186 It is also possible that an X.400 implementation now being done at
187 University College, London and the University of Nottingham
188 will be available for testing and distribution.  
189 .LP
190 This implementation is comprised of four areas.
191 .IP 1)
192 We are updating the University of
193 Wisconsin TP-4 to match GOSIP requirements.
194 The University of Wisconsin developed a transport class 4
195 implementation for the 4.2BSD kernel under contract to Mitre.
196 This implementation must be updated to reflect the National Institute
197 of Standards and Technology (NIST, formerly NBS) workshop agreements,
198 GOSIP, and 4.3BSD requirements.
199 We will make this TP-4 operate with an OSI IP,
200 as the original implementation was built to run over the DoD IP.
201 .IP 2)
202 A kernel version of the OSI IP and ES-IS protocols must be produced.
203 We will implement the kernel version of these protocols.
204 .IP 3)
205 The required device drivers need to be integrated into a BSD kernel.
206 4.3BSD has existing device drivers for many Ethernet devices; future
207 BSD versions may also support X.25 devices as well as token ring
208 networks.
209 These device drivers must be integrated
210 into the kernel OSI protocol implementations.
211 .IP 4)
212 The existing OSINET interoperability test network is available so 
213 that the interoperability of the ISODE and BSD kernel protocols
214 can be established through tests with several vendors.
215 Testing is crucial because an openly available version of GOSIP protocols
216 that does not interoperate with DEC, IBM, SUN, ICL, HIS, and other
217 major vendors would be embarrassing.
218 To allow testing of the integrated pieces the most desirable
219 approach is to provide access to OSINET at UCB.
220 A second approach is to do the interoperability testing at
221 the site of an existing OSINET member, such as the NBS.
222 .NH 2
223 Compliance with POSIX 1003
224 .PP
225 Berkeley became involved several months ago in the development
226 of the IEEE POSIX P1003.1 system interface standard.
227 Since then, we have been participating in the working groups
228 of P1003.2 (shell and application utility interface),
229 P1003.6 (security), P1003.7 (system administration), and P1003.8
230 (networking).
231 .PP
232 The IEEE published the POSIX P1003.1 standard in late 1988.
233 POSIX related changes to the BSD system have included a new terminal
234 driver, support for POSIX sessions and job control, expanded signal
235 functionality, restructured directory access routines, and new set-user
236 and set-group id facilities.
237 We currently have a prototype implementation of the
238 POSIX driver with extensions to provide binary compatibility with
239 applications developed for the old Berkeley terminal driver.
240 We also have a prototype implementation of the 4.2BSD-based POSIX
241 job control facility.
242 .PP
243 The P1003.2 draft is currently being voted on by the IEEE
244 P1003.2 balloting group.
245 Berkeley is particularly interested in the results of this standard,
246 as it will profoundly influence the user environment.
247 The other groups are in comparatively early phases, with drafts
248 coming to ballot sometime in the 90's.
249 Berkeley will continue to participate in these groups, and
250 move in the near future toward a P1003.1 and P1003.2 compliant
251 system.
252 We have many of the utilities outlined in the current P1003.2 draft
253 already implemented, and have other parties willing to contribute
254 additional implementations.
255 .NH 2
256 Improvements to the TCP/IP Networking Protocols
257 .PP
258 The Internet and the Berkeley collection of local-area networks
259 have both grown at high rates in the last year.
260 The Bay Area Regional Research Network (BARRNet),
261 connecting several UC campuses, Stanford and NASA-Ames
262 has recently become operational, increasing the complexity
263 of the network connectivity.
264 Both Internet and local routing algorithms are showing the strain
265 of continued growth.
266 We have made several changes in the local routing algorithm
267 to keep accommodating the current topology,
268 and are participating in the development of new routing algorithms
269 and standard protocols.
270 .PP
271 Recent work in collaboration with Van Jacobson of the Lawrence Berkeley
272 Laboratory has led to the design and implementation of several new algorithms
273 for TCP that improve throughput on both local and long-haul networks
274 while reducing unnecessary retransmission.
275 The improvement is especially striking when connections must traverse
276 slow and/or lossy networks.
277 The new algorithms include ``slow-start,''
278 a technique for opening the TCP flow control window slowly
279 and using the returning stream of acknowledgements as a clock
280 to drive the connection at the highest speed tolerated by the intervening
281 network.
282 A modification of this technique allows the sender to dynamically modify
283 the send window size to adjust to changing network conditions.
284 In addition, the round-trip timer has been modified to estimate the variance
285 in round-trip time, thus allowing earlier retransmission of lost packets
286 with less spurious retransmission due to increasing network delay.
287 Along with a scheme proposed by Phil Karn of Bellcore,
288 these changes reduce unnecessary retransmission over difficult paths
289 such as Satnet by nearly two orders of magnitude
290 while improving throughput dramatically.
291 .PP
292 The current TCP implementation is now being readied
293 for more widespread distribution via the network and as a 
294 standard Berkeley distribution unencumbered by any commercial licensing.
295 We are continuing to refine the TCP and IP implementations
296 using the ARPANET, BARRNet, the NSF network
297 and local campus nets as testbeds.
298 In addition, we are incorporating applicable algorithms from this work
299 into the TP-4 protocol implementation.
300 .NH 2
301 Toward a Compatible File System Interface
302 .PP
303 The most critical shortcoming of the 4.3BSD UNIX system was in the
304 area of distributed file systems.
305 As with networking protocols,
306 there is no single distributed file system
307 that provides sufficient speed and functionality for all problems.
308 It is frequently necessary to support several different remote
309 file system protocols, just as it is necessary to run several 
310 different network protocols.
311 .PP
312 As network or remote file systems have been implemented for UNIX,
313 several stylized interfaces between the file system implementation
314 and the rest of the kernel have been developed.
315 Among these are Sun Microsystems' Virtual File System interface (VFS)
316 using \fBvnodes\fP [Sandburg85] [Kleiman86],
317 Digital Equipment's Generic File System (GFS) architecture [Rodriguez86],
318 AT&T's File System Switch (FSS) [Rifkin86],
319 the LOCUS distributed file system [Walker85],
320 and Masscomp's extended file system [Cole85].
321 Other remote file systems have been implemented in research or
322 university groups for internal use,
323 notably the network file system in the Eighth Edition UNIX
324 system [Weinberger84] and two different file systems used at Carnegie Mellon
325 University [Satyanarayanan85].
326 Numerous other remote file access methods have been devised for use
327 within individual UNIX processes,
328 many of them by modifications to the C I/O library
329 similar to those in the Newcastle Connection [Brownbridge82].
330 .PP
331 Each design attempts to isolate file system-dependent details
332 below a generic interface and to provide a framework within which
333 new file systems may be incorporated.
334 However, each of these interfaces is different from
335 and incompatible with the others.
336 Each addresses somewhat different design goals,
337 having been based on a different version of UNIX,
338 having targeted a different set of file systems with varying characteristics,
339 and having selected a different set of file system primitive operations.
340 .PP
341 Our effort in this area is aimed at providing a common framework to
342 support these different distributed file systems simultaneously rather than to
343 simply implement yet another protocol.
344 This requires a detailed study of the existing protocols, 
345 and discussion with their implementors to determine whether
346 they could modify their implementation to fit within our proposed
347 framework.  We have studied the various file system interfaces to determine
348 their generality, completeness, robustness, efficiency, and aesthetics
349 and are currently working on a file system interface
350 that we believe includes the best features of
351 each of the existing implementations.
352 This work and the rationale underlying its development
353 have been presented to major software vendors as an early step
354 toward convergence on a standard compatible file system interface.
355 Briefly, the proposal adopts the 4.3BSD calling convention for file
356 name lookup but otherwise is closely related to Sun's VFS
357 and DEC's GFS. [Karels86].
358 .NH 2
359 System Security
360 .PP
361 The recent invasion of the DARPA Internet by a quickly reproducing ``worm''
362 highlighted the need for a thorough review of the access
363 safeguards built into the system.
364 Until now, we have taken a passive approach to dealing with
365 weaknesses in the system access mechanisms, rather than actively
366 searching for possible weaknesses.
367 When we are notified of a problem or loophole in a system utility
368 by one of our users,
369 we have a well defined procedure for fixing the problem and 
370 expeditiously disseminating the fix to the BSD mailing list.
371 This procedure has proven itself to be effective in
372 solving known problems as they arise
373 (witness its success in handling the recent worm).
374 However, we feel that it would be useful to take a more active
375 role in identifying problems before they are reported (or exploited).
376 We will make a complete audit of the system
377 utilities and network servers to find unintended system access mechanisms.
378 .PP
379 As a part of the work to make the system more resistant to attack
380 from local users or via the network, it will be necessary to produce
381 additional documentation on the configuration and operation of the system.
382 This documentation will cover such topics as file and directory ownership
383 and access, network and server configuration,
384 and control of privileged operations such as file system backups.
385 .PP
386 We are investigating the addition of access control lists (ACLs) for
387 filesystem objects.
388 ACLs provide a much finer granularity of control over file access permissions
389 than the current
390 discretionary access control mechanism (mode bits).
391 Furthermore, they are necessary
392 in environments where C2 level security or better, as defined in the DoD
393 TCSEC [DoD83], is required.
394 The POSIX P1003.6 security group has made notable progress in determining
395 how an ACL mechanism should work, and several vendors have implemented
396 ACLs for their commercial systems.
397 Berkeley will investigate the existing implementations and determine
398 how to best integrate ACLs with the existing mechanism.
399 .PP
400 A major shortcoming of the present system is that authentication
401 over the network is based solely on the privileged port mechanism
402 between trusting hosts and users.
403 Although privileged ports can only be created by processes running as root
404 on a UNIX system,
405 such processes are easy for a workstation user to obtain;
406 they simply reboot their workstation in single user mode.
407 Thus, a better authentication mechanism is needed.
408 At present, we believe that the MIT Kerberos authentication
409 server [Steiner88] provides the best solution to this problem.
410 We propose to investigate Kerberos further as well as other
411 authentication mechanisms and then to integrate
412 the best one into Berkeley UNIX.
413 Part of this integration would be the addition of the
414 authentication mechanism into utilities such as
415 telnet, login, remote shell, etc.
416 We will add support for telnet (eventually replacing rlogin),
417 the X window system, and the mail system within an authentication
418 domain (a Kerberos \fIrealm\fP).
419 We hope to replace the existing password authentication on each host
420 with the network authentication system.
421 .NH
422 References
423 .sp
424 .IP Brownbridge82
425 Brownbridge, D.R., L.F. Marshall, B. Randell,
426 ``The Newcastle Connection, or UNIXes of the World Unite!,''
427 \fISoftware\- Practice and Experience\fP, Vol. 12, pp. 1147-1162, 1982.
428 .sp
429 .IP Cole85
430 .br
431 Cole, C.T., P.B. Flinn, A.B. Atlas,
432 ``An Implementation of an Extended File System for UNIX,''
433 \fIUsenix Conference Proceedings\fP,
434 pp. 131-150, June, 1985.
435 .sp
436 .IP DoD83
437 .br
438 Department of Defense,
439 ``Trusted Computer System Evaluation Criteria,''
440 \fICSC-STD-001-83\fP,
441 DoD Computer Security Center, August, 1983.
442 .sp
443 .IP Karels86
444 Karels, M., M. McKusick,
445 ``Towards a Compatible File System Interface,''
446 \fIProceedings of the European UNIX Users Group Meeting\fP,
447 Manchester, England, pp. 481-496, September 1986.
448 .sp
449 .IP Kleiman86
450 Kleiman, S.,
451 ``Vnodes: An Architecture for Multiple File System Types in Sun UNIX,''
452 \fIUsenix Conference Proceedings\fP,
453 pp. 238-247, June, 1986.
454 .sp
455 .IP Leffler84
456 Leffler, S., M.K. McKusick, M. Karels,
457 ``Measuring and Improving the Performance of 4.2BSD,''
458 \fIUsenix Conference Proceedings\fP, pp. 237-252, June, 1984.
459 .sp
460 .IP McKusick84
461 McKusick, M.K., W. Joy, S. Leffler, R. Fabry,
462 ``A Fast File System for UNIX'',
463 \fIACM Transactions on Computer Systems 2\fP, 3.
464 pp 181-197, August 1984.
465 .sp
466 .IP McKusick85
467 McKusick, M.K., M. Karels, S. Leffler,
468 ``Performance Improvements and Functional Enhancements in 4.3BSD,''
469 \fIUsenix Conference Proceedings\fP, pp. 519-531, June, 1985.
470 .sp
471 .IP McKusick86
472 McKusick, M.K., M. Karels,
473 ``A New Virtual Memory Implementation for Berkeley UNIX,''
474 \fIProceedings of the European UNIX Users Group Meeting\fP,
475 Manchester, England, pp. 451-460, September 1986.
476 .sp
477 .IP McKusick88
478 McKusick, M.K., M. Karels,
479 ``Design of a General Purpose Memory Allocator for the 4.3BSD UNIX Kernel,''
480 \fIUsenix Conference Proceedings\fP,
481 pp. 295-303, June, 1988.
482 .sp
483 .IP Rifkin86
484 Rifkin, A.P., M.P. Forbes, R.L. Hamilton, M. Sabrio, S. Shah, K. Yueh,
485 ``RFS Architectural Overview,'' \fIUsenix Conference Proceedings\fP,
486 pp. 248-259, June, 1986.
487 .sp
488 .IP Rodriguez86
489 Rodriguez, R., M. Koehler, R. Hyde,
490 ``The Generic File System,''
491 \fIUsenix Conference Proceedings\fP,
492 pp. 260-269, June, 1986.
493 .sp
494 .IP Sandberg85
495 Sandberg, R., D. Goldberg, S. Kleiman, D. Walsh, B. Lyon,
496 ``Design and Implementation of the Sun Network File System,''
497 \fIUsenix Conference Proceedings\fP,
498 pp. 119-130, June, 1985.
499 .sp
500 .IP Satyanarayanan85
501 Satyanarayanan, M., \fIet al.\fP,
502 ``The ITC Distributed File System: Principles and Design,''
503 \fIProc. 10th Symposium on Operating Systems Principles\fP, pp. 35-50,
504 ACM, December, 1985.
505 .sp
506 .IP Steiner88
507 Steiner, J., C. Newman, J. Schiller,
508 ``\fIKerberos:\fP An Authentication Service for Open Network Systems,''
509 \fIUsenix Conference Proceedings\fP, pp. 191-202, February, 1988.
510 .sp
511 .IP Walker85
512 Walker, B.J. and S.H. Kiser, ``The LOCUS Distributed File System,''
513 \fIThe LOCUS Distributed System Architecture\fP,
514 G.J. Popek and B.J. Walker, ed., The MIT Press, Cambridge, MA, 1985.
515 .sp
516 .IP Weinberger84
517 Weinberger, P.J., ``The Version 8 Network File System,''
518 \fIUsenix Conference presentation\fP,
519 June, 1984.