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