summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2010-10-18 00:43:40 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2010-10-18 00:43:40 +0000
commitad74e02d43e4d0e90024fc2f6597aa89880ccb4b (patch)
tree2fcf91d6212acd5fca4c8b3cf5efca5f34de3476 /share
parenta8d5cf1e05fccc9f2153969b7bb22ed59974ef1b (diff)
documents which have not been modified in 15 years are not alive. there
must have been mistruths in them or they are simply history and google is better at finding either.
Diffstat (limited to 'share')
-rw-r--r--share/doc/Makefile12
-rw-r--r--share/doc/README51
-rw-r--r--share/doc/psd/00.contents193
-rw-r--r--share/doc/psd/Makefile20
-rw-r--r--share/doc/psd/Title128
-rw-r--r--share/doc/smm/05.fastfs/0.t157
-rw-r--r--share/doc/smm/05.fastfs/1.t110
-rw-r--r--share/doc/smm/05.fastfs/2.t141
-rw-r--r--share/doc/smm/05.fastfs/3.t592
-rw-r--r--share/doc/smm/05.fastfs/4.t250
-rw-r--r--share/doc/smm/05.fastfs/5.t291
-rw-r--r--share/doc/smm/05.fastfs/6.t157
-rw-r--r--share/doc/smm/05.fastfs/Makefile14
-rw-r--r--share/doc/smm/Makefile11
-rw-r--r--share/doc/usd/Makefile10
15 files changed, 0 insertions, 2137 deletions
diff --git a/share/doc/Makefile b/share/doc/Makefile
deleted file mode 100644
index 0e0bb4a3746..00000000000
--- a/share/doc/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-# $OpenBSD: Makefile,v 1.4 2010/01/04 17:50:39 deraadt Exp $
-# @(#)Makefile 8.1 (Berkeley) 6/5/93
-
-FILES= README
-
-all depend includes lint tags:
-
-realinstall:
- install -c -o ${DOCOWN} -g ${DOCGRP} -m ${DOCMODE} ${FILES} \
- ${DESTDIR}${DOCDIR}
-
-.include <bsd.subdir.mk>
diff --git a/share/doc/README b/share/doc/README
deleted file mode 100644
index 96458e9a4ac..00000000000
--- a/share/doc/README
+++ /dev/null
@@ -1,51 +0,0 @@
-# $OpenBSD: README,v 1.5 2008/06/07 01:59:36 jdixon Exp $
-#
-# Copyright (c) 2004 Jason McIntyre <jmc@openbsd.org>
-#
-# Permission to use, copy, modify, and distribute this software for any
-# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-#
-
-The documents in this directory consist of various, miscellaneous, system docs:
-
- html/ HTML documents for bind, curses, httpd, lynx, and milter
- psd/ UNIX Programmer's Supplementary Documents
- smm/ UNIX System Manager's Manuals
- usd/ UNIX User's Supplementary Documents
-
-The documentation in the psd, smm, and usd subdirectories are roff source,
-and can be used to generate documents in any of the formats available to the
-groff(1) document formatting system.
-
-Within any given subdirectory, simply typing:
-
- # make
-
-will generate a pre-formatted document in PostScript format, called `paper.ps'.
-The document can be viewed with the help of a PostScript viewer, such as
-`ghostview' or `gv', and the PostScript back-end `ghostscript'. See ports(7)
-and packages(7) for further information on how to install this software.
-
-ASCII text format documents, suitable for viewing with a pager such as
-less(1), can be generated by typing:
-
- # make paper.txt
-
-However, the PostScript output is much prettier :)
-
-The documentation in the html subdirectory can by viewed using any HTML-capable
-browser such as lynx(1).
-
-Note: Some of the subdirectories are empty, for a variety of reasons:
-the papers are simply out of date; the papers refer to applications no
-longer installed on the system; licensing issues; the papers have been
-superseded by GNU info(1) files, etc.
diff --git a/share/doc/psd/00.contents b/share/doc/psd/00.contents
deleted file mode 100644
index 894aa9fb5c4..00000000000
--- a/share/doc/psd/00.contents
+++ /dev/null
@@ -1,193 +0,0 @@
-.\" $OpenBSD: 00.contents,v 1.4 2004/04/09 12:10:03 jmc Exp $
-.\"
-.\" Copyright (c) 1986, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)00.contents 8.1 (Berkeley) 6/8/93
-.\"
-.if n \{\
-.po 5n
-.ll 70n
-.\}
-.OH '''PSD Contents'
-.EH 'PSD Contents'''
-.TL
-UNIX Programmer's Supplementary Documents (PSD)
-.sp
-\s-24.4 Berkeley Software Distribution\s+2
-.sp
-\fRJune, 1993\fR
-.PP
-This volume contains documents which supplement the manual pages in
-.I
-The
-.UX
-Programmer's Reference Manual
-.R
-for the 4.4BSD system as distributed by U.C. Berkeley.
-.SH
-Documents of Historical Interest
-.IP
-.tl 'The Unix Time\-Sharing System''PSD:1'
-.QP
-Dennis Ritchie and Ken Thompson's original paper about UNIX, reprinted
-from Communications of the ACM.
-
-.IP
-.tl 'Unix Implementation''PSD:2'
-.QP
-Ken Thompson's description of the implementation of the Version 7
-kernel and file system.
-
-.IP
-.tl 'The Unix I/O System''PSD:3'
-.QP
-Dennis Ritchie's overview of the I/O System of Version 7; still helpful for
-those writing device drivers.
-
-.IP
-.tl 'Unix Programming \- Second Edition ''PSD:4'
-.QP
-Describes the programming interface to the UNIX version 7 operating
-system and the standard I/O library. Should be supplemented by
-Kernighan and Pike, ``The UNIX Programming Environment'',
-Prentice-Hall, 1984 and especially by the Programmer Reference Manual
-section 2 (system calls) and 3 (library routines).
-
-.IP
-.tl 'Berkeley Software Architecture Manual (4.4 Edition)''PSD:5'
-.QP
-A concise and terse description of the system call interface
-provided in Berkeley Unix, as revised for 4.4BSD.
-This will never be a best seller.
-
-.SH
-Languages in common use
-.IP
-.tl 'The C Programming Language \- Reference Manual''PSD:6'
-.QP
-Official statement of the syntax of C.
-Should be supplemented by ``The C Programming Language,''
-B.W. Kernighan and D.M. Ritchie, Prentice-Hall, 1978, that
-contains a tutorial introduction and many examples.
-
-.IP
-.tl 'Berkeley Pascal User\'s Manual''PSD:7'
-.QP
-An implementation of this language popular for learning to program.
-
-.IP
-.tl 'A Portable Fortran 77 Compiler''PSD:8'
-.QP
-A revised version of the document which originally appeared in
-Volume 2b of the Bell Labs documentation;
-this version reflects the work done at Berkeley.
-
-.IP
-.tl 'Introduction to the f77 I/O Library''PSD:9'
-.QP
-A description of the revised input/output library for Fortran 77,
-reflecting work carried out at Berkeley.
-
-.SH
-Programming Tools
-.IP
-.tl 'Debugging with GDB: The GNU Source-Level Debugger''PSD:10'
-.QP
-How to debug programs using the source level \fIgdb\fP debugger
-(or how to debug programs without having to know much about machine language).
-
-.IP
-.tl 'A Tutorial Introduction to ADB''PSD:11'
-.QP
-How to debug programs using the assembly-language level \fIadb\fP debugger.
-
-.IP
-.tl 'Make \- A Program for Maintaining Computer Programs''PSD:12'
-.QP
-Indispensable tool for making sure large programs are properly
-compiled with minimal effort.
-
-.IP
-.tl 'An Introduction to the Revision Control System''PSD:13'
-.QP
-RCS is a user-contributed tool for working together with other people
-without stepping on each other's toes.
-An alternative to \fIsccs\fR for controlling software changes.
-
-.IP
-.tl 'An Introduction to the Source Code Control System''PSD:14'
-.QP
-A useful introductory article for those users with
-installations licensed for SCCS.
-
-.IP
-.tl 'YACC: Yet Another Compiler-Compiler''PSD:15'
-.QP
-Converts a BNF specification of a language and semantic actions
-written in C into a compiler for that language.
-
-.IP
-.tl 'LEX \- A Lexical Analyzer Generator''PSD:16'
-.QP
-Creates a recognizer for a set of regular expressions:
-each regular expression can be followed by arbitrary C code
-to be executed upon finding the regular expression.
-
-.IP
-.tl 'The M4 Macro Processor''PSD:17'
-.QP
-M4 is a macro processor useful in its own right and as a
-front-end for C, Ratfor, and Cobol.
-
-.IP
-.tl 'gprof: a Call Graph Execution Profiler''PSD:18'
-.QP
-A program to show the call graph and execution time of a program.
-Indispensable aid for improving the running time of almost everything.
-
-.SH
-Programming Libraries
-.IP
-.tl 'Screen Updating and Cursor Movement Optimization''PSD:19'
-.QP
-Describes the \fIcurses\fP package, an aid for writing screen-oriented,
-terminal-independent programs.
-
-.SH
-General Reference
-.IP
-.tl 'An Introductory 4.4BSD Interprocess Communication Tutorial''PSD:20'
-.QP
-How to write programs that use the Interprocess Communication Facilities
-of 4.4BSD.
-
-.IP
-.tl 'An Advanced 4.4BSD Interprocess Communication Tutorial''PSD:21'
-.QP
-The reference document (with some examples) for the Interprocess Communication
-Facilities of 4.4BSD.
diff --git a/share/doc/psd/Makefile b/share/doc/psd/Makefile
deleted file mode 100644
index 33643dd0b4d..00000000000
--- a/share/doc/psd/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# $OpenBSD: Makefile,v 1.8 2010/07/01 20:04:10 tedu Exp $
-
-DOCDIR= /usr/share/doc/psd
-FILES= Makefile
-SUBDIR=
-.if exists(12.make)
-SUBDIR+= 12.make
-.endif
-.if exists(18.gprof)
-SUBDIR+= 18.gprof
-.endif
-.if exists(19.curses)
-SUBDIR+= 19.curses
-.endif
-
-beforeinstall:
- install -c -o ${DOCOWN} -g ${DOCGRP} -m ${DOCMODE} ${FILES} \
- ${DESTDIR}${DOCDIR}
-
-.include <bsd.subdir.mk>
diff --git a/share/doc/psd/Title b/share/doc/psd/Title
deleted file mode 100644
index de0c6930ac7..00000000000
--- a/share/doc/psd/Title
+++ /dev/null
@@ -1,128 +0,0 @@
-.\" $OpenBSD: Title,v 1.5 2004/04/09 12:10:04 jmc Exp $
-.\"
-.\" Copyright (c) 1986, 1993 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)Title 8.2 (Berkeley) 4/19/94
-.\"
-.if n \{\
-.po 5n
-.ll 70n
-.\}
-.ps 18
-.vs 22
-.sp 2.75i
-.ft B
-.ce 3
-UNIX Programmer's Supplementary Documents
-(PSD)
-.ps 14
-.vs 16
-.sp |4i
-.ce 2
-4.4 Berkeley Software Distribution
-.sp |5.75i
-.ft R
-.pt 12
-.vs 16
-.ce
-June, 1993
-.sp |8.2i
-.ce 5
-Computer Systems Research Group
-Computer Science Division
-Department of Electrical Engineering and Computer Science
-University of California
-Berkeley, California 94720
-.bp
-\&
-.sp |1i
-.hy 0
-.ps 10
-.vs 12p
-Copyright 1979, 1980, 1983, 1986, 1993
-The Regents of the University of California. All rights reserved.
-.sp 2
-Other than the specific documents listed below as copyrighted by AT&T,
-redistribution and use of this manual in source and binary forms,
-with or without modification, are permitted provided that the
-following conditions are met:
-.sp 0.5
-.in +0.2i
-.ta 0.2i
-.ti -0.2i
-1) Redistributions of this manual must retain the copyright
-notices on this page, this list of conditions and the following disclaimer.
-.ti -0.2i
-2) Software or documentation that incorporates part of this manual must
-reproduce the copyright notices on this page, this list of conditions and
-the following disclaimer in the documentation and/or other materials
-provided with the distribution.
-.ti -0.2i
-3) Neither the name of the University nor the names of its contributors
-may be used to endorse or promote products derived from this software
-without specific prior written permission.
-.in -0.2i
-.sp
-\fB\s-1THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.\s+1\fP
-.sp 2
-Documents PSD:1, 2, 3, 4, 6, 11, 15, 16, and 17
-are copyright 1979, AT&T Bell Laboratories, Incorporated.
-Document PSD:8 is a modification of an earlier document that
-is copyrighted 1979 by AT&T Bell Laboratories, Incorporated.
-Holders of \x'-1p'UNIX\v'-4p'\s-3TM\s0\v'4p'/32V,
-System III, or System V software licenses are
-permitted to copy these documents, or any portion of them,
-as necessary for licensed use of the software,
-provided this copyright notice and statement of permission
-are included.
-.sp 2
-Document PSD:10 is part of the user contributed software and is
-copyright 1992 by the Free Software Foundation, Inc.
-Permission is granted to make and distribute verbatim copies of
-this document provided the copyright notice and this permission notice
-are preserved on all copies.
-.sp 2
-Document PSD:13 is part of the user contributed software and is
-copyright 1983 by Walter F. Tichy.
-Permission to copy the RCS documentation or any portion thereof as
-necessary for licensed use of the software is granted to licensees
-of this software, provided this copyright notice is included.
-.sp 2
-The views and conclusions contained in this manual are those of the
-authors and should not be interpreted as representing official policies,
-either expressed or implied, of the Regents of the University of California.
diff --git a/share/doc/smm/05.fastfs/0.t b/share/doc/smm/05.fastfs/0.t
deleted file mode 100644
index fd76c9cec67..00000000000
--- a/share/doc/smm/05.fastfs/0.t
+++ /dev/null
@@ -1,157 +0,0 @@
-.\" $OpenBSD: 0.t,v 1.3 2003/06/02 23:30:11 millert Exp $
-.\"
-.\" Copyright (c) 1986, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)0.t 8.1 (Berkeley) 6/8/93
-.\"
-.EQ
-delim $$
-.EN
-.if n .ND
-.TL
-A Fast File System for UNIX*
-.EH 'SMM:05-%''A Fast File System for \s-2UNIX\s+2'
-.OH 'A Fast File System for \s-2UNIX\s+2''SMM:05-%'
-.AU
-Marshall Kirk McKusick, William N. Joy\(dg,
-Samuel J. Leffler\(dd, Robert S. Fabry
-.AI
-Computer Systems Research Group
-Computer Science Division
-Department of Electrical Engineering and Computer Science
-University of California, Berkeley
-Berkeley, CA 94720
-.AB
-.FS
-* UNIX is a trademark of Bell Laboratories.
-.FE
-.FS
-\(dg William N. Joy is currently employed by:
-Sun Microsystems, Inc, 2550 Garcia Avenue, Mountain View, CA 94043
-.FE
-.FS
-\(dd Samuel J. Leffler is currently employed by:
-Lucasfilm Ltd., PO Box 2009, San Rafael, CA 94912
-.FE
-.FS
-This work was done under grants from
-the National Science Foundation under grant MCS80-05144,
-and the Defense Advance Research Projects Agency (DoD) under
-ARPA Order No. 4031 monitored by Naval Electronic System Command under
-Contract No. N00039-82-C-0235.
-.FE
-A reimplementation of the UNIX file system is described.
-The reimplementation provides substantially higher throughput
-rates by using more flexible allocation policies
-that allow better locality of reference and can
-be adapted to a wide range of peripheral and processor characteristics.
-The new file system clusters data that is sequentially accessed
-and provides two block sizes to allow fast access to large files
-while not wasting large amounts of space for small files.
-File access rates of up to ten times faster than the traditional
-UNIX file system are experienced.
-Long needed enhancements to the programmers'
-interface are discussed.
-These include a mechanism to place advisory locks on files,
-extensions of the name space across file systems,
-the ability to use long file names,
-and provisions for administrative control of resource usage.
-.sp
-.LP
-Revised February 18, 1984
-.AE
-.LP
-.sp 2
-CR Categories and Subject Descriptors:
-D.4.3
-.B "[Operating Systems]":
-File Systems Management \-
-.I "file organization, directory structures, access methods";
-D.4.2
-.B "[Operating Systems]":
-Storage Management \-
-.I "allocation/deallocation strategies, secondary storage devices";
-D.4.8
-.B "[Operating Systems]":
-Performance \-
-.I "measurements, operational analysis";
-H.3.2
-.B "[Information Systems]":
-Information Storage \-
-.I "file organization"
-.sp
-Additional Keywords and Phrases:
-UNIX,
-file system organization,
-file system performance,
-file system design,
-application program interface.
-.sp
-General Terms:
-file system,
-measurement,
-performance.
-.bp
-.ce
-.B "TABLE OF CONTENTS"
-.LP
-.sp 1
-.nf
-.B "1. Introduction"
-.LP
-.sp .5v
-.nf
-.B "2. Old file system
-.LP
-.sp .5v
-.nf
-.B "3. New file system organization
-3.1. Optimizing storage utilization
-3.2. File system parameterization
-3.3. Layout policies
-.LP
-.sp .5v
-.nf
-.B "4. Performance
-.LP
-.sp .5v
-.nf
-.B "5. File system functional enhancements
-5.1. Long file names
-5.2. File locking
-5.3. Symbolic links
-5.4. Rename
-5.5. Quotas
-.LP
-.sp .5v
-.nf
-.B Acknowledgements
-.LP
-.sp .5v
-.nf
-.B References
diff --git a/share/doc/smm/05.fastfs/1.t b/share/doc/smm/05.fastfs/1.t
deleted file mode 100644
index e2aec2f1a0a..00000000000
--- a/share/doc/smm/05.fastfs/1.t
+++ /dev/null
@@ -1,110 +0,0 @@
-.\" $OpenBSD: 1.t,v 1.3 2003/06/02 23:30:11 millert Exp $
-.\"
-.\" Copyright (c) 1986, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)1.t 8.1 (Berkeley) 6/8/93
-.\"
-.ds RH Introduction
-.NH
-Introduction
-.PP
-This paper describes the changes from the original 512 byte UNIX file
-system to the new one released with the 4.2 Berkeley Software Distribution.
-It presents the motivations for the changes,
-the methods used to effect these changes,
-the rationale behind the design decisions,
-and a description of the new implementation.
-This discussion is followed by a summary of
-the results that have been obtained,
-directions for future work,
-and the additions and changes
-that have been made to the facilities that are
-available to programmers.
-.PP
-The original UNIX system that runs on the PDP-11\(dg
-.FS
-\(dg DEC, PDP, VAX, MASSBUS, and UNIBUS are
-trademarks of Digital Equipment Corporation.
-.FE
-has simple and elegant file system facilities. File system input/output
-is buffered by the kernel;
-there are no alignment constraints on
-data transfers and all operations are made to appear synchronous.
-All transfers to the disk are in 512 byte blocks, which can be placed
-arbitrarily within the data area of the file system. Virtually
-no constraints other than available disk space are placed on file growth
-[Ritchie74], [Thompson78].*
-.FS
-* In practice, a file's size is constrained to be less than about
-one gigabyte.
-.FE
-.PP
-When used on the VAX-11 together with other UNIX enhancements,
-the original 512 byte UNIX file
-system is incapable of providing the data throughput rates
-that many applications require.
-For example,
-applications
-such as VLSI design and image processing
-do a small amount of processing
-on a large quantities of data and
-need to have a high throughput from the file system.
-High throughput rates are also needed by programs
-that map files from the file system into large virtual
-address spaces.
-Paging data in and out of the file system is likely
-to occur frequently [Ferrin82b].
-This requires a file system providing
-higher bandwidth than the original 512 byte UNIX
-one that provides only about
-two percent of the maximum disk bandwidth or about
-20 kilobytes per second per arm [White80], [Smith81b].
-.PP
-Modifications have been made to the UNIX file system to improve
-its performance.
-Since the UNIX file system interface
-is well understood and not inherently slow,
-this development retained the abstraction and simply changed
-the underlying implementation to increase its throughput.
-Consequently, users of the system have not been faced with
-massive software conversion.
-.PP
-Problems with file system performance have been dealt with
-extensively in the literature; see [Smith81a] for a survey.
-Previous work to improve the UNIX file system performance has been
-done by [Ferrin82a].
-The UNIX operating system drew many of its ideas from Multics,
-a large, high performance operating system [Feiertag71].
-Other work includes Hydra [Almes78],
-Spice [Thompson80],
-and a file system for a LISP environment [Symbolics81].
-A good introduction to the physical latencies of disks is
-described in [Pechura83].
-.ds RH Old file system
-.sp 2
-.ne 1i
diff --git a/share/doc/smm/05.fastfs/2.t b/share/doc/smm/05.fastfs/2.t
deleted file mode 100644
index eba339b9372..00000000000
--- a/share/doc/smm/05.fastfs/2.t
+++ /dev/null
@@ -1,141 +0,0 @@
-.\" $OpenBSD: 2.t,v 1.3 2003/06/02 23:30:11 millert Exp $
-.\"
-.\" Copyright (c) 1986, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)2.t 8.1 (Berkeley) 6/8/93
-.\"
-.ds RH Old file system
-.NH
-Old File System
-.PP
-In the file system developed at Bell Laboratories
-(the ``traditional'' file system),
-each disk drive is divided into one or more
-partitions. Each of these disk partitions may contain
-one file system. A file system never spans multiple
-partitions.\(dg
-.FS
-\(dg By ``partition'' here we refer to the subdivision of
-physical space on a disk drive. In the traditional file
-system, as in the new file system, file systems are really
-located in logical disk partitions that may overlap. This
-overlapping is made available, for example,
-to allow programs to copy entire disk drives containing multiple
-file systems.
-.FE
-A file system is described by its super-block,
-which contains the basic parameters of the file system.
-These include the number of data blocks in the file system,
-a count of the maximum number of files,
-and a pointer to the \fIfree list\fP, a linked
-list of all the free blocks in the file system.
-.PP
-Within the file system are files.
-Certain files are distinguished as directories and contain
-pointers to files that may themselves be directories.
-Every file has a descriptor associated with it called an
-.I "inode".
-An inode contains information describing ownership of the file,
-time stamps marking last modification and access times for the file,
-and an array of indices that point to the data blocks for the file.
-For the purposes of this section, we assume that the first 8 blocks
-of the file are directly referenced by values stored
-in an inode itself*.
-.FS
-* The actual number may vary from system to system, but is usually in
-the range 5-13.
-.FE
-An inode may also contain references to indirect blocks
-containing further data block indices.
-In a file system with a 512 byte block size, a singly indirect
-block contains 128 further block addresses,
-a doubly indirect block contains 128 addresses of further singly indirect
-blocks,
-and a triply indirect block contains 128 addresses of further doubly indirect
-blocks.
-.PP
-A 150 megabyte traditional UNIX file system consists
-of 4 megabytes of inodes followed by 146 megabytes of data.
-This organization segregates the inode information from the data;
-thus accessing a file normally incurs a long seek from the
-file's inode to its data.
-Files in a single directory are not typically allocated
-consecutive slots in the 4 megabytes of inodes,
-causing many non-consecutive blocks of inodes
-to be accessed when executing
-operations on the inodes of several files in a directory.
-.PP
-The allocation of data blocks to files is also suboptimum.
-The traditional
-file system never transfers more than 512 bytes per disk transaction
-and often finds that the next sequential data block is not on the same
-cylinder, forcing seeks between 512 byte transfers.
-The combination of the small block size,
-limited read-ahead in the system,
-and many seeks severely limits file system throughput.
-.PP
-The first work at Berkeley on the UNIX file system attempted to improve both
-reliability and throughput.
-The reliability was improved by staging modifications
-to critical file system information so that they could
-either be completed or repaired cleanly by a program
-after a crash [Kowalski78].
-The file system performance was improved by a factor of more than two by
-changing the basic block size from 512 to 1024 bytes.
-The increase was because of two factors:
-each disk transfer accessed twice as much data,
-and most files could be described without need to access
-indirect blocks since the direct blocks contained twice as much data.
-The file system with these changes will henceforth be referred to as the
-.I "old file system."
-.PP
-This performance improvement gave a strong indication that
-increasing the block size was a good method for improving
-throughput.
-Although the throughput had doubled,
-the old file system was still using only about
-four percent of the disk bandwidth.
-The main problem was that although the free list was initially
-ordered for optimal access,
-it quickly became scrambled as files were created and removed.
-Eventually the free list became entirely random,
-causing files to have their blocks allocated randomly over the disk.
-This forced a seek before every block access.
-Although old file systems provided transfer rates of up
-to 175 kilobytes per second when they were first created,
-this rate deteriorated to 30 kilobytes per second after a
-few weeks of moderate use because of this
-randomization of data block placement.
-There was no way of restoring the performance of an old file system
-except to dump, rebuild, and restore the file system.
-Another possibility, as suggested by [Maruyama76],
-would be to have a process that periodically
-reorganized the data on the disk to restore locality.
-.ds RH New file system
-.sp 2
-.ne 1i
diff --git a/share/doc/smm/05.fastfs/3.t b/share/doc/smm/05.fastfs/3.t
deleted file mode 100644
index 813b0e6f6ce..00000000000
--- a/share/doc/smm/05.fastfs/3.t
+++ /dev/null
@@ -1,592 +0,0 @@
-.\" $OpenBSD: 3.t,v 1.3 2003/06/02 23:30:11 millert Exp $
-.\"
-.\" Copyright (c) 1986, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)3.t 8.1 (Berkeley) 6/8/93
-.\"
-.ds RH New file system
-.NH
-New file system organization
-.PP
-In the new file system organization (as in the
-old file system organization),
-each disk drive contains one or more file systems.
-A file system is described by its super-block,
-located at the beginning of the file system's disk partition.
-Because the super-block contains critical data,
-it is replicated to protect against catastrophic loss.
-This is done when the file system is created;
-since the super-block data does not change,
-the copies need not be referenced unless a head crash
-or other hard disk error causes the default super-block
-to be unusable.
-.PP
-To insure that it is possible to create files as large as
-$2 sup 32$ bytes with only two levels of indirection,
-the minimum size of a file system block is 4096 bytes.
-The size of file system blocks can be any power of two
-greater than or equal to 4096.
-The block size of a file system is recorded in the
-file system's super-block
-so it is possible for file systems with different block sizes
-to be simultaneously accessible on the same system.
-The block size must be decided at the time that
-the file system is created;
-it cannot be subsequently changed without rebuilding the file system.
-.PP
-The new file system organization divides a disk partition
-into one or more areas called
-.I "cylinder groups".
-A cylinder group is comprised of one or more consecutive
-cylinders on a disk.
-Associated with each cylinder group is some bookkeeping information
-that includes a redundant copy of the super-block,
-space for inodes,
-a bit map describing available blocks in the cylinder group,
-and summary information describing the usage of data blocks
-within the cylinder group.
-The bit map of available blocks in the cylinder group replaces
-the traditional file system's free list.
-For each cylinder group a static number of inodes
-is allocated at file system creation time.
-The default policy is to allocate one inode for each 2048
-bytes of space in the cylinder group, expecting this
-to be far more than will ever be needed.
-.PP
-All the cylinder group bookkeeping information could be
-placed at the beginning of each cylinder group.
-However if this approach were used,
-all the redundant information would be on the top platter.
-A single hardware failure that destroyed the top platter
-could cause the loss of all redundant copies of the super-block.
-Thus the cylinder group bookkeeping information
-begins at a varying offset from the beginning of the cylinder group.
-The offset for each successive cylinder group is calculated to be
-about one track further from the beginning of the cylinder group
-than the preceding cylinder group.
-In this way the redundant
-information spirals down into the pack so that any single track, cylinder,
-or platter can be lost without losing all copies of the super-block.
-Except for the first cylinder group,
-the space between the beginning of the cylinder group
-and the beginning of the cylinder group information
-is used for data blocks.\(dg
-.FS
-\(dg While it appears that the first cylinder group could be laid
-out with its super-block at the ``known'' location,
-this would not work for file systems
-with blocks sizes of 16 kilobytes or greater.
-This is because of a requirement that the first 8 kilobytes of the disk
-be reserved for a bootstrap program and a separate requirement that
-the cylinder group information begin on a file system block boundary.
-To start the cylinder group on a file system block boundary,
-file systems with block sizes larger than 8 kilobytes
-would have to leave an empty space between the end of
-the boot block and the beginning of the cylinder group.
-Without knowing the size of the file system blocks,
-the system would not know what roundup function to use
-to find the beginning of the first cylinder group.
-.FE
-.NH 2
-Optimizing storage utilization
-.PP
-Data is laid out so that larger blocks can be transferred
-in a single disk transaction, greatly increasing file system throughput.
-As an example, consider a file in the new file system
-composed of 4096 byte data blocks.
-In the old file system this file would be composed of 1024 byte blocks.
-By increasing the block size, disk accesses in the new file
-system may transfer up to four times as much information per
-disk transaction.
-In large files, several
-4096 byte blocks may be allocated from the same cylinder so that
-even larger data transfers are possible before requiring a seek.
-.PP
-The main problem with
-larger blocks is that most UNIX
-file systems are composed of many small files.
-A uniformly large block size wastes space.
-Table 1 shows the effect of file system
-block size on the amount of wasted space in the file system.
-The files measured to obtain these figures reside on
-one of our time sharing
-systems that has roughly 1.2 gigabytes of on-line storage.
-The measurements are based on the active user file systems containing
-about 920 megabytes of formatted space.
-.KF
-.DS B
-.TS
-box;
-l|l|l
-a|n|l.
-Space used % waste Organization
-_
-775.2 Mb 0.0 Data only, no separation between files
-807.8 Mb 4.2 Data only, each file starts on 512 byte boundary
-828.7 Mb 6.9 Data + inodes, 512 byte block UNIX file system
-866.5 Mb 11.8 Data + inodes, 1024 byte block UNIX file system
-948.5 Mb 22.4 Data + inodes, 2048 byte block UNIX file system
-1128.3 Mb 45.6 Data + inodes, 4096 byte block UNIX file system
-.TE
-Table 1 \- Amount of wasted space as a function of block size.
-.DE
-.KE
-The space wasted is calculated to be the percentage of space
-on the disk not containing user data.
-As the block size on the disk
-increases, the waste rises quickly, to an intolerable
-45.6% waste with 4096 byte file system blocks.
-.PP
-To be able to use large blocks without undue waste,
-small files must be stored in a more efficient way.
-The new file system accomplishes this goal by allowing the division
-of a single file system block into one or more
-.I "fragments".
-The file system fragment size is specified
-at the time that the file system is created;
-each file system block can optionally be broken into
-2, 4, or 8 fragments, each of which is addressable.
-The lower bound on the size of these fragments is constrained
-by the disk sector size,
-typically 512 bytes.
-The block map associated with each cylinder group
-records the space available in a cylinder group
-at the fragment level;
-to determine if a block is available, aligned fragments are examined.
-Figure 1 shows a piece of a map from a 4096/1024 file system.
-.KF
-.DS B
-.TS
-box;
-l|c c c c.
-Bits in map XXXX XXOO OOXX OOOO
-Fragment numbers 0-3 4-7 8-11 12-15
-Block numbers 0 1 2 3
-.TE
-Figure 1 \- Example layout of blocks and fragments in a 4096/1024 file system.
-.DE
-.KE
-Each bit in the map records the status of a fragment;
-an ``X'' shows that the fragment is in use,
-while a ``O'' shows that the fragment is available for allocation.
-In this example,
-fragments 0\-5, 10, and 11 are in use,
-while fragments 6\-9, and 12\-15 are free.
-Fragments of adjoining blocks cannot be used as a full block,
-even if they are large enough.
-In this example,
-fragments 6\-9 cannot be allocated as a full block;
-only fragments 12\-15 can be coalesced into a full block.
-.PP
-On a file system with a block size of 4096 bytes
-and a fragment size of 1024 bytes,
-a file is represented by zero or more 4096 byte blocks of data,
-and possibly a single fragmented block.
-If a file system block must be fragmented to obtain
-space for a small amount of data,
-the remaining fragments of the block are made
-available for allocation to other files.
-As an example consider an 11000 byte file stored on
-a 4096/1024 byte file system.
-This file would uses two full size blocks and one
-three fragment portion of another block.
-If no block with three aligned fragments is
-available at the time the file is created,
-a full size block is split yielding the necessary
-fragments and a single unused fragment.
-This remaining fragment can be allocated to another file as needed.
-.PP
-Space is allocated to a file when a program does a \fIwrite\fP
-system call.
-Each time data is written to a file, the system checks to see if
-the size of the file has increased*.
-.FS
-* A program may be overwriting data in the middle of an existing file
-in which case space would already have been allocated.
-.FE
-If the file needs to be expanded to hold the new data,
-one of three conditions exists:
-.IP 1)
-There is enough space left in an already allocated
-block or fragment to hold the new data.
-The new data is written into the available space.
-.IP 2)
-The file contains no fragmented blocks (and the last
-block in the file
-contains insufficient space to hold the new data).
-If space exists in a block already allocated,
-the space is filled with new data.
-If the remainder of the new data contains more than
-a full block of data, a full block is allocated and
-the first full block of new data is written there.
-This process is repeated until less than a full block
-of new data remains.
-If the remaining new data to be written will
-fit in less than a full block,
-a block with the necessary fragments is located,
-otherwise a full block is located.
-The remaining new data is written into the located space.
-.IP 3)
-The file contains one or more fragments (and the
-fragments contain insufficient space to hold the new data).
-If the size of the new data plus the size of the data
-already in the fragments exceeds the size of a full block,
-a new block is allocated.
-The contents of the fragments are copied
-to the beginning of the block
-and the remainder of the block is filled with new data.
-The process then continues as in (2) above.
-Otherwise, if the new data to be written will
-fit in less than a full block,
-a block with the necessary fragments is located,
-otherwise a full block is located.
-The contents of the existing fragments
-appended with the new data
-are written into the allocated space.
-.PP
-The problem with expanding a file one fragment at a
-a time is that data may be copied many times as a
-fragmented block expands to a full block.
-Fragment reallocation can be minimized
-if the user program writes a full block at a time,
-except for a partial block at the end of the file.
-Since file systems with different block sizes may reside on
-the same system,
-the file system interface has been extended to provide
-application programs the optimal size for a read or write.
-For files the optimal size is the block size of the file system
-on which the file is being accessed.
-For other objects, such as pipes and sockets,
-the optimal size is the underlying buffer size.
-This feature is used by the Standard
-Input/Output Library,
-a package used by most user programs.
-This feature is also used by
-certain system utilities such as archivers and loaders
-that do their own input and output management
-and need the highest possible file system bandwidth.
-.PP
-The amount of wasted space in the 4096/1024 byte new file system
-organization is empirically observed to be about the same as in the
-1024 byte old file system organization.
-A file system with 4096 byte blocks and 512 byte fragments
-has about the same amount of wasted space as the 512 byte
-block UNIX file system.
-The new file system uses less space
-than the 512 byte or 1024 byte
-file systems for indexing information for
-large files and the same amount of space
-for small files.
-These savings are offset by the need to use
-more space for keeping track of available free blocks.
-The net result is about the same disk utilization
-when a new file system's fragment size
-equals an old file system's block size.
-.PP
-In order for the layout policies to be effective,
-a file system cannot be kept completely full.
-For each file system there is a parameter, termed
-the free space reserve, that
-gives the minimum acceptable percentage of file system
-blocks that should be free.
-If the number of free blocks drops below this level
-only the system administrator can continue to allocate blocks.
-The value of this parameter may be changed at any time,
-even when the file system is mounted and active.
-The transfer rates that appear in section 4 were measured on file
-systems kept less than 90% full (a reserve of 10%).
-If the number of free blocks falls to zero,
-the file system throughput tends to be cut in half,
-because of the inability of the file system to localize
-blocks in a file.
-If a file system's performance degrades because
-of overfilling, it may be restored by removing
-files until the amount of free space once again
-reaches the minimum acceptable level.
-Access rates for files created during periods of little
-free space may be restored by moving their data once enough
-space is available.
-The free space reserve must be added to the
-percentage of waste when comparing the organizations given
-in Table 1.
-Thus, the percentage of waste in
-an old 1024 byte UNIX file system is roughly
-comparable to a new 4096/512 byte file system
-with the free space reserve set at 5%.
-(Compare 11.8% wasted with the old file system
-to 6.9% waste + 5% reserved space in the
-new file system.)
-.NH 2
-File system parameterization
-.PP
-Except for the initial creation of the free list,
-the old file system ignores the parameters of the underlying hardware.
-It has no information about either the physical characteristics
-of the mass storage device,
-or the hardware that interacts with it.
-A goal of the new file system is to parameterize the
-processor capabilities and
-mass storage characteristics
-so that blocks can be allocated in an
-optimum configuration-dependent way.
-Parameters used include the speed of the processor,
-the hardware support for mass storage transfers,
-and the characteristics of the mass storage devices.
-Disk technology is constantly improving and
-a given installation can have several different disk technologies
-running on a single processor.
-Each file system is parameterized so that it can be
-adapted to the characteristics of the disk on which
-it is placed.
-.PP
-For mass storage devices such as disks,
-the new file system tries to allocate new blocks
-on the same cylinder as the previous block in the same file.
-Optimally, these new blocks will also be
-rotationally well positioned.
-The distance between ``rotationally optimal'' blocks varies greatly;
-it can be a consecutive block
-or a rotationally delayed block
-depending on system characteristics.
-On a processor with an input/output channel that does not require
-any processor intervention between mass storage transfer requests,
-two consecutive disk blocks can often be accessed
-without suffering lost time because of an intervening disk revolution.
-For processors without input/output channels,
-the main processor must field an interrupt and
-prepare for a new disk transfer.
-The expected time to service this interrupt and
-schedule a new disk transfer depends on the
-speed of the main processor.
-.PP
-The physical characteristics of each disk include
-the number of blocks per track and the rate at which
-the disk spins.
-The allocation routines use this information to calculate
-the number of milliseconds required to skip over a block.
-The characteristics of the processor include
-the expected time to service an interrupt and schedule a
-new disk transfer.
-Given a block allocated to a file,
-the allocation routines calculate the number of blocks to
-skip over so that the next block in the file will
-come into position under the disk head in the expected
-amount of time that it takes to start a new
-disk transfer operation.
-For programs that sequentially access large amounts of data,
-this strategy minimizes the amount of time spent waiting for
-the disk to position itself.
-.PP
-To ease the calculation of finding rotationally optimal blocks,
-the cylinder group summary information includes
-a count of the available blocks in a cylinder
-group at different rotational positions.
-Eight rotational positions are distinguished,
-so the resolution of the
-summary information is 2 milliseconds for a typical 3600
-revolution per minute drive.
-The super-block contains a vector of lists called
-.I "rotational layout tables".
-The vector is indexed by rotational position.
-Each component of the vector
-lists the index into the block map for every data block contained
-in its rotational position.
-When looking for an allocatable block,
-the system first looks through the summary counts for a rotational
-position with a non-zero block count.
-It then uses the index of the rotational position to find the appropriate
-list to use to index through
-only the relevant parts of the block map to find a free block.
-.PP
-The parameter that defines the
-minimum number of milliseconds between the completion of a data
-transfer and the initiation of
-another data transfer on the same cylinder
-can be changed at any time,
-even when the file system is mounted and active.
-If a file system is parameterized to lay out blocks with
-a rotational separation of 2 milliseconds,
-and the disk pack is then moved to a system that has a
-processor requiring 4 milliseconds to schedule a disk operation,
-the throughput will drop precipitously because of lost disk revolutions
-on nearly every block.
-If the eventual target machine is known,
-the file system can be parameterized for it
-even though it is initially created on a different processor.
-Even if the move is not known in advance,
-the rotational layout delay can be reconfigured after the disk is moved
-so that all further allocation is done based on the
-characteristics of the new host.
-.NH 2
-Layout policies
-.PP
-The file system layout policies are divided into two distinct parts.
-At the top level are global policies that use file system
-wide summary information to make decisions regarding
-the placement of new inodes and data blocks.
-These routines are responsible for deciding the
-placement of new directories and files.
-They also calculate rotationally optimal block layouts,
-and decide when to force a long seek to a new cylinder group
-because there are insufficient blocks left
-in the current cylinder group to do reasonable layouts.
-Below the global policy routines are
-the local allocation routines that use a locally optimal scheme to
-lay out data blocks.
-.PP
-Two methods for improving file system performance are to increase
-the locality of reference to minimize seek latency
-as described by [Trivedi80], and
-to improve the layout of data to make larger transfers possible
-as described by [Nevalainen77].
-The global layout policies try to improve performance
-by clustering related information.
-They cannot attempt to localize all data references,
-but must also try to spread unrelated data
-among different cylinder groups.
-If too much localization is attempted,
-the local cylinder group may run out of space
-forcing the data to be scattered to non-local cylinder groups.
-Taken to an extreme,
-total localization can result in a single huge cluster of data
-resembling the old file system.
-The global policies try to balance the two conflicting
-goals of localizing data that is concurrently accessed
-while spreading out unrelated data.
-.PP
-One allocatable resource is inodes.
-Inodes are used to describe both files and directories.
-Inodes of files in the same directory are frequently accessed together.
-For example, the ``list directory'' command often accesses
-the inode for each file in a directory.
-The layout policy tries to place all the inodes of
-files in a directory in the same cylinder group.
-To ensure that files are distributed throughout the disk,
-a different policy is used for directory allocation.
-A new directory is placed in a cylinder group that has a greater
-than average number of free inodes,
-and the smallest number of directories already in it.
-The intent of this policy is to allow the inode clustering policy
-to succeed most of the time.
-The allocation of inodes within a cylinder group is done using a
-next free strategy.
-Although this allocates the inodes randomly within a cylinder group,
-all the inodes for a particular cylinder group can be read with
-8 to 16 disk transfers.
-(At most 16 disk transfers are required because a cylinder
-group may have no more than 2048 inodes.)
-This puts a small and constant upper bound on the number of
-disk transfers required to access the inodes
-for all the files in a directory.
-In contrast, the old file system typically requires
-one disk transfer to fetch the inode for each file in a directory.
-.PP
-The other major resource is data blocks.
-Since data blocks for a file are typically accessed together,
-the policy routines try to place all data
-blocks for a file in the same cylinder group,
-preferably at rotationally optimal positions in the same cylinder.
-The problem with allocating all the data blocks
-in the same cylinder group is that large files will
-quickly use up available space in the cylinder group,
-forcing a spill over to other areas.
-Further, using all the space in a cylinder group
-causes future allocations for any file in the cylinder group
-to also spill to other areas.
-Ideally none of the cylinder groups should ever become completely full.
-The heuristic solution chosen is to
-redirect block allocation
-to a different cylinder group
-when a file exceeds 48 kilobytes,
-and at every megabyte thereafter.*
-.FS
-* The first spill over point at 48 kilobytes is the point
-at which a file on a 4096 byte block file system first
-requires a single indirect block. This appears to be
-a natural first point at which to redirect block allocation.
-The other spillover points are chosen with the intent of
-forcing block allocation to be redirected when a
-file has used about 25% of the data blocks in a cylinder group.
-In observing the new file system in day to day use, the heuristics appear
-to work well in minimizing the number of completely filled
-cylinder groups.
-.FE
-The newly chosen cylinder group is selected from those cylinder
-groups that have a greater than average number of free blocks left.
-Although big files tend to be spread out over the disk,
-a megabyte of data is typically accessible before
-a long seek must be performed,
-and the cost of one long seek per megabyte is small.
-.PP
-The global policy routines call local allocation routines with
-requests for specific blocks.
-The local allocation routines will
-always allocate the requested block
-if it is free, otherwise it
-allocates a free block of the requested size that is
-rotationally closest to the requested block.
-If the global layout policies had complete information,
-they could always request unused blocks and
-the allocation routines would be reduced to simple bookkeeping.
-However, maintaining complete information is costly;
-thus the implementation of the global layout policy
-uses heuristics that employ only partial information.
-.PP
-If a requested block is not available, the local allocator uses
-a four level allocation strategy:
-.IP 1)
-Use the next available block rotationally closest
-to the requested block on the same cylinder. It is assumed
-here that head switching time is zero. On disk
-controllers where this is not the case, it may be possible
-to incorporate the time required to switch between disk platters
-when constructing the rotational layout tables. This, however,
-has not yet been tried.
-.IP 2)
-If there are no blocks available on the same cylinder,
-use a block within the same cylinder group.
-.IP 3)
-If that cylinder group is entirely full,
-quadratically hash the cylinder group number to choose
-another cylinder group to look for a free block.
-.IP 4)
-Finally if the hash fails, apply an exhaustive search
-to all cylinder groups.
-.PP
-Quadratic hash is used because of its speed in finding
-unused slots in nearly full hash tables [Knuth75].
-File systems that are parameterized to maintain at least
-10% free space rarely use this strategy.
-File systems that are run without maintaining any free
-space typically have so few free blocks that almost any
-allocation is random;
-the most important characteristic of
-the strategy used under such conditions is that the strategy be fast.
-.ds RH Performance
-.sp 2
-.ne 1i
diff --git a/share/doc/smm/05.fastfs/4.t b/share/doc/smm/05.fastfs/4.t
deleted file mode 100644
index a6e9c5c52cb..00000000000
--- a/share/doc/smm/05.fastfs/4.t
+++ /dev/null
@@ -1,250 +0,0 @@
-.\" $OpenBSD: 4.t,v 1.3 2003/06/02 23:30:11 millert Exp $
-.\"
-.\" Copyright (c) 1986, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)4.t 8.1 (Berkeley) 6/8/93
-.\"
-.ds RH Performance
-.NH
-Performance
-.PP
-Ultimately, the proof of the effectiveness of the
-algorithms described in the previous section
-is the long term performance of the new file system.
-.PP
-Our empirical studies have shown that the inode layout policy has
-been effective.
-When running the ``list directory'' command on a large directory
-that itself contains many directories (to force the system
-to access inodes in multiple cylinder groups),
-the number of disk accesses for inodes is cut by a factor of two.
-The improvements are even more dramatic for large directories
-containing only files,
-disk accesses for inodes being cut by a factor of eight.
-This is most encouraging for programs such as spooling daemons that
-access many small files,
-since these programs tend to flood the
-disk request queue on the old file system.
-.PP
-Table 2 summarizes the measured throughput of the new file system.
-Several comments need to be made about the conditions under which these
-tests were run.
-The test programs measure the rate at which user programs can transfer
-data to or from a file without performing any processing on it.
-These programs must read and write enough data to
-insure that buffering in the
-operating system does not affect the results.
-They are also run at least three times in succession;
-the first to get the system into a known state
-and the second two to insure that the
-experiment has stabilized and is repeatable.
-The tests used and their results are
-discussed in detail in [Kridle83]\(dg.
-.FS
-\(dg A UNIX command that is similar to the reading test that we used is
-``cp file /dev/null'', where ``file'' is eight megabytes long.
-.FE
-The systems were running multi-user but were otherwise quiescent.
-There was no contention for either the CPU or the disk arm.
-The only difference between the UNIBUS and MASSBUS tests
-was the controller.
-All tests used an AMPEX Capricorn 330 megabyte Winchester disk.
-As Table 2 shows, all file system test runs were on a VAX 11/750.
-All file systems had been in production use for at least
-a month before being measured.
-The same number of system calls were performed in all tests;
-the basic system call overhead was a negligible portion of
-the total running time of the tests.
-.KF
-.DS B
-.TS
-box;
-c c|c s s
-c c|c c c.
-Type of Processor and Read
-File System Bus Measured Speed Bandwidth % CPU
-_
-old 1024 750/UNIBUS 29 Kbytes/sec 29/983 3% 11%
-new 4096/1024 750/UNIBUS 221 Kbytes/sec 221/983 22% 43%
-new 8192/1024 750/UNIBUS 233 Kbytes/sec 233/983 24% 29%
-new 4096/1024 750/MASSBUS 466 Kbytes/sec 466/983 47% 73%
-new 8192/1024 750/MASSBUS 466 Kbytes/sec 466/983 47% 54%
-.TE
-.ce 1
-Table 2a \- Reading rates of the old and new UNIX file systems.
-.TS
-box;
-c c|c s s
-c c|c c c.
-Type of Processor and Write
-File System Bus Measured Speed Bandwidth % CPU
-_
-old 1024 750/UNIBUS 48 Kbytes/sec 48/983 5% 29%
-new 4096/1024 750/UNIBUS 142 Kbytes/sec 142/983 14% 43%
-new 8192/1024 750/UNIBUS 215 Kbytes/sec 215/983 22% 46%
-new 4096/1024 750/MASSBUS 323 Kbytes/sec 323/983 33% 94%
-new 8192/1024 750/MASSBUS 466 Kbytes/sec 466/983 47% 95%
-.TE
-.ce 1
-Table 2b \- Writing rates of the old and new UNIX file systems.
-.DE
-.KE
-.PP
-Unlike the old file system,
-the transfer rates for the new file system do not
-appear to change over time.
-The throughput rate is tied much more strongly to the
-amount of free space that is maintained.
-The measurements in Table 2 were based on a file system
-with a 10% free space reserve.
-Synthetic work loads suggest that throughput deteriorates
-to about half the rates given in Table 2 when the file
-systems are full.
-.PP
-The percentage of bandwidth given in Table 2 is a measure
-of the effective utilization of the disk by the file system.
-An upper bound on the transfer rate from the disk is calculated
-by multiplying the number of bytes on a track by the number
-of revolutions of the disk per second.
-The bandwidth is calculated by comparing the data rates
-the file system is able to achieve as a percentage of this rate.
-Using this metric, the old file system is only
-able to use about 3\-5% of the disk bandwidth,
-while the new file system uses up to 47%
-of the bandwidth.
-.PP
-Both reads and writes are faster in the new system than in the old system.
-The biggest factor in this speedup is because of the larger
-block size used by the new file system.
-The overhead of allocating blocks in the new system is greater
-than the overhead of allocating blocks in the old system,
-however fewer blocks need to be allocated in the new system
-because they are bigger.
-The net effect is that the cost per byte allocated is about
-the same for both systems.
-.PP
-In the new file system, the reading rate is always at least
-as fast as the writing rate.
-This is to be expected since the kernel must do more work when
-allocating blocks than when simply reading them.
-Note that the write rates are about the same
-as the read rates in the 8192 byte block file system;
-the write rates are slower than the read rates in the 4096 byte block
-file system.
-The slower write rates occur because
-the kernel has to do twice as many disk allocations per second,
-making the processor unable to keep up with the disk transfer rate.
-.PP
-In contrast the old file system is about 50%
-faster at writing files than reading them.
-This is because the write system call is asynchronous and
-the kernel can generate disk transfer
-requests much faster than they can be serviced,
-hence disk transfers queue up in the disk buffer cache.
-Because the disk buffer cache is sorted by minimum seek distance,
-the average seek between the scheduled disk writes is much
-less than it would be if the data blocks were written out
-in the random disk order in which they are generated.
-However when the file is read,
-the read system call is processed synchronously so
-the disk blocks must be retrieved from the disk in the
-non-optimal seek order in which they are requested.
-This forces the disk scheduler to do long
-seeks resulting in a lower throughput rate.
-.PP
-In the new system the blocks of a file are more optimally
-ordered on the disk.
-Even though reads are still synchronous,
-the requests are presented to the disk in a much better order.
-Even though the writes are still asynchronous,
-they are already presented to the disk in minimum seek
-order so there is no gain to be had by reordering them.
-Hence the disk seek latencies that limited the old file system
-have little effect in the new file system.
-The cost of allocation is the factor in the new system that
-causes writes to be slower than reads.
-.PP
-The performance of the new file system is currently
-limited by memory to memory copy operations
-required to move data from disk buffers in the
-system's address space to data buffers in the user's
-address space. These copy operations account for
-about 40% of the time spent performing an input/output operation.
-If the buffers in both address spaces were properly aligned,
-this transfer could be performed without copying by
-using the VAX virtual memory management hardware.
-This would be especially desirable when transferring
-large amounts of data.
-We did not implement this because it would change the
-user interface to the file system in two major ways:
-user programs would be required to allocate buffers on page boundaries,
-and data would disappear from buffers after being written.
-.PP
-Greater disk throughput could be achieved by rewriting the disk drivers
-to chain together kernel buffers.
-This would allow contiguous disk blocks to be read
-in a single disk transaction.
-Many disks used with UNIX systems contain either
-32 or 48 512 byte sectors per track.
-Each track holds exactly two or three 8192 byte file system blocks,
-or four or six 4096 byte file system blocks.
-The inability to use contiguous disk blocks
-effectively limits the performance
-on these disks to less than 50% of the available bandwidth.
-If the next block for a file cannot be laid out contiguously,
-then the minimum spacing to the next allocatable
-block on any platter is between a sixth and a half a revolution.
-The implication of this is that the best possible layout without
-contiguous blocks uses only half of the bandwidth of any given track.
-If each track contains an odd number of sectors,
-then it is possible to resolve the rotational delay to any number of sectors
-by finding a block that begins at the desired
-rotational position on another track.
-The reason that block chaining has not been implemented is because it
-would require rewriting all the disk drivers in the system,
-and the current throughput rates are already limited by the
-speed of the available processors.
-.PP
-Currently only one block is allocated to a file at a time.
-A technique used by the DEMOS file system
-when it finds that a file is growing rapidly,
-is to preallocate several blocks at once,
-releasing them when the file is closed if they remain unused.
-By batching up allocations, the system can reduce the
-overhead of allocating at each write,
-and it can cut down on the number of disk writes needed to
-keep the block pointers on the disk
-synchronized with the block allocation [Powell79].
-This technique was not included because block allocation
-currently accounts for less than 10% of the time spent in
-a write system call and, once again, the
-current throughput rates are already limited by the speed
-of the available processors.
-.ds RH Functional enhancements
-.sp 2
-.ne 1i
diff --git a/share/doc/smm/05.fastfs/5.t b/share/doc/smm/05.fastfs/5.t
deleted file mode 100644
index 3512a9eddd0..00000000000
--- a/share/doc/smm/05.fastfs/5.t
+++ /dev/null
@@ -1,291 +0,0 @@
-.\" $OpenBSD: 5.t,v 1.3 2003/06/02 23:30:11 millert Exp $
-.\"
-.\" Copyright (c) 1986, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)5.t 8.1 (Berkeley) 6/8/93
-.\"
-.ds RH Functional enhancements
-.NH
-File system functional enhancements
-.PP
-The performance enhancements to the
-UNIX file system did not require
-any changes to the semantics or
-data structures visible to application programs.
-However, several changes had been generally desired for some
-time but had not been introduced because they would require users to
-dump and restore all their file systems.
-Since the new file system already
-required all existing file systems to
-be dumped and restored,
-these functional enhancements were introduced at this time.
-.NH 2
-Long file names
-.PP
-File names can now be of nearly arbitrary length.
-Only programs that read directories are affected by this change.
-To promote portability to UNIX systems that
-are not running the new file system, a set of directory
-access routines have been introduced to provide a consistent
-interface to directories on both old and new systems.
-.PP
-Directories are allocated in 512 byte units called chunks.
-This size is chosen so that each allocation can be transferred
-to disk in a single operation.
-Chunks are broken up into variable length records termed
-directory entries. A directory entry
-contains the information necessary to map the name of a
-file to its associated inode.
-No directory entry is allowed to span multiple chunks.
-The first three fields of a directory entry are fixed length
-and contain: an inode number, the size of the entry, and the length
-of the file name contained in the entry.
-The remainder of an entry is variable length and contains
-a null terminated file name, padded to a 4 byte boundary.
-The maximum length of a file name in a directory is
-currently 255 characters.
-.PP
-Available space in a directory is recorded by having
-one or more entries accumulate the free space in their
-entry size fields. This results in directory entries
-that are larger than required to hold the
-entry name plus fixed length fields. Space allocated
-to a directory should always be completely accounted for
-by totaling up the sizes of its entries.
-When an entry is deleted from a directory,
-its space is returned to a previous entry
-in the same directory chunk by increasing the size of the
-previous entry by the size of the deleted entry.
-If the first entry of a directory chunk is free, then
-the entry's inode number is set to zero to indicate
-that it is unallocated.
-.NH 2
-File locking
-.PP
-The old file system had no provision for locking files.
-Processes that needed to synchronize the updates of a
-file had to use a separate ``lock'' file.
-A process would try to create a ``lock'' file.
-If the creation succeeded, then the process
-could proceed with its update;
-if the creation failed, then the process would wait and try again.
-This mechanism had three drawbacks.
-Processes consumed CPU time by looping over attempts to create locks.
-Locks left lying around because of system crashes had
-to be manually removed (normally in a system startup command script).
-Finally, processes running as system administrator
-are always permitted to create files,
-so were forced to use a different mechanism.
-While it is possible to get around all these problems,
-the solutions are not straight forward,
-so a mechanism for locking files has been added.
-.PP
-The most general schemes allow multiple processes
-to concurrently update a file.
-Several of these techniques are discussed in [Peterson83].
-A simpler technique is to serialize access to a file with locks.
-To attain reasonable efficiency,
-certain applications require the ability to lock pieces of a file.
-Locking down to the byte level has been implemented in the
-Onyx file system by [Bass81].
-However, for the standard system applications,
-a mechanism that locks at the granularity of a file is sufficient.
-.PP
-Locking schemes fall into two classes,
-those using hard locks and those using advisory locks.
-The primary difference between advisory locks and hard locks is the
-extent of enforcement.
-A hard lock is always enforced when a program tries to
-access a file;
-an advisory lock is only applied when it is requested by a program.
-Thus advisory locks are only effective when all programs accessing
-a file use the locking scheme.
-With hard locks there must be some override
-policy implemented in the kernel.
-With advisory locks the policy is left to the user programs.
-In the UNIX system, programs with system administrator
-privilege are allowed override any protection scheme.
-Because many of the programs that need to use locks must
-also run as the system administrator,
-we chose to implement advisory locks rather than
-create an additional protection scheme that was inconsistent
-with the UNIX philosophy or could
-not be used by system administration programs.
-.PP
-The file locking facilities allow cooperating programs to apply
-advisory
-.I shared
-or
-.I exclusive
-locks on files.
-Only one process may have an exclusive
-lock on a file while multiple shared locks may be present.
-Both shared and exclusive locks cannot be present on
-a file at the same time.
-If any lock is requested when
-another process holds an exclusive lock,
-or an exclusive lock is requested when another process holds any lock,
-the lock request will block until the lock can be obtained.
-Because shared and exclusive locks are advisory only,
-even if a process has obtained a lock on a file,
-another process may access the file.
-.PP
-Locks are applied or removed only on open files.
-This means that locks can be manipulated without
-needing to close and reopen a file.
-This is useful, for example, when a process wishes
-to apply a shared lock, read some information
-and determine whether an update is required, then
-apply an exclusive lock and update the file.
-.PP
-A request for a lock will cause a process to block if the lock
-can not be immediately obtained.
-In certain instances this is unsatisfactory.
-For example, a process that
-wants only to check if a lock is present would require a separate
-mechanism to find out this information.
-Consequently, a process may specify that its locking
-request should return with an error if a lock can not be immediately
-obtained.
-Being able to conditionally request a lock
-is useful to ``daemon'' processes
-that wish to service a spooling area.
-If the first instance of the
-daemon locks the directory where spooling takes place,
-later daemon processes can
-easily check to see if an active daemon exists.
-Since locks exist only while the locking processes exist,
-lock files can never be left active after
-the processes exit or if the system crashes.
-.PP
-Almost no deadlock detection is attempted.
-The only deadlock detection done by the system is that the file
-to which a lock is applied must not already have a
-lock of the same type (i.e. the second of two successive calls
-to apply a lock of the same type will fail).
-.NH 2
-Symbolic links
-.PP
-The traditional UNIX file system allows multiple
-directory entries in the same file system
-to reference a single file. Each directory entry
-``links'' a file's name to an inode and its contents.
-The link concept is fundamental;
-inodes do not reside in directories, but exist separately and
-are referenced by links.
-When all the links to an inode are removed,
-the inode is deallocated.
-This style of referencing an inode does
-not allow references across physical file
-systems, nor does it support inter-machine linkage.
-To avoid these limitations
-.I "symbolic links"
-similar to the scheme used by Multics [Feiertag71] have been added.
-.PP
-A symbolic link is implemented as a file that contains a pathname.
-When the system encounters a symbolic link while
-interpreting a component of a pathname,
-the contents of the symbolic link is prepended to the rest
-of the pathname, and this name is interpreted to yield the
-resulting pathname.
-In UNIX, pathnames are specified relative to the root
-of the file system hierarchy, or relative to a process's
-current working directory. Pathnames specified relative
-to the root are called absolute pathnames. Pathnames
-specified relative to the current working directory are
-termed relative pathnames.
-If a symbolic link contains an absolute pathname,
-the absolute pathname is used,
-otherwise the contents of the symbolic link is evaluated
-relative to the location of the link in the file hierarchy.
-.PP
-Normally programs do not want to be aware that there is a
-symbolic link in a pathname that they are using.
-However certain system utilities
-must be able to detect and manipulate symbolic links.
-Three new system calls provide the ability to detect, read, and write
-symbolic links; seven system utilities required changes
-to use these calls.
-.PP
-In future Berkeley software distributions
-it may be possible to reference file systems located on
-remote machines using pathnames. When this occurs,
-it will be possible to create symbolic links that span machines.
-.NH 2
-Rename
-.PP
-Programs that create a new version of an existing
-file typically create the
-new version as a temporary file and then rename the temporary file
-with the name of the target file.
-In the old UNIX file system renaming required three calls to the system.
-If a program were interrupted or the system crashed between these calls,
-the target file could be left with only its temporary name.
-To eliminate this possibility the \fIrename\fP system call
-has been added. The rename call does the rename operation
-in a fashion that guarantees the existence of the target name.
-.PP
-Rename works both on data files and directories.
-When renaming directories,
-the system must do special validation checks to insure
-that the directory tree structure is not corrupted by the creation
-of loops or inaccessible directories.
-Such corruption would occur if a parent directory were moved
-into one of its descendants.
-The validation check requires tracing the descendents of the target
-directory to insure that it does not include the directory being moved.
-.NH 2
-Quotas
-.PP
-The UNIX system has traditionally attempted to share all available
-resources to the greatest extent possible.
-Thus any single user can allocate all the available space
-in the file system.
-In certain environments this is unacceptable.
-Consequently, a quota mechanism has been added for restricting the
-amount of file system resources that a user can obtain.
-The quota mechanism sets limits on both the number of inodes
-and the number of disk blocks that a user may allocate.
-A separate quota can be set for each user on each file system.
-Resources are given both a hard and a soft limit.
-When a program exceeds a soft limit,
-a warning is printed on the users terminal;
-the offending program is not terminated
-unless it exceeds its hard limit.
-The idea is that users should stay below their soft limit between
-login sessions,
-but they may use more resources while they are actively working.
-To encourage this behavior,
-users are warned when logging in if they are over
-any of their soft limits.
-If users fails to correct the problem for too many login sessions,
-they are eventually reprimanded by having their soft limit
-enforced as their hard limit.
-.ds RH Acknowledgements
-.sp 2
-.ne 1i
diff --git a/share/doc/smm/05.fastfs/6.t b/share/doc/smm/05.fastfs/6.t
deleted file mode 100644
index 7bd8c56e62c..00000000000
--- a/share/doc/smm/05.fastfs/6.t
+++ /dev/null
@@ -1,157 +0,0 @@
-.\" $OpenBSD: 6.t,v 1.3 2003/06/02 23:30:11 millert Exp $
-.\"
-.\" Copyright (c) 1986, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)6.t 8.1 (Berkeley) 6/8/93
-.\"
-.nr H2 1
-.ds RH Acknowledgements
-.SH
-\s+2Acknowledgements\s0
-.PP
-We thank Robert Elz for his ongoing interest in the new file system,
-and for adding disk quotas in a rational and efficient manner.
-We also acknowledge Dennis Ritchie for his suggestions
-on the appropriate modifications to the user interface.
-We appreciate Michael Powell's explanations on how
-the DEMOS file system worked;
-many of his ideas were used in this implementation.
-Special commendation goes to Peter Kessler and Robert Henry for acting
-like real users during the early debugging stage when file systems were
-less stable than they should have been.
-The criticisms and suggestions by the reviews contributed significantly
-to the coherence of the paper.
-Finally we thank our sponsors,
-the National Science Foundation under grant MCS80-05144,
-and the Defense Advance Research Projects Agency (DoD) under
-ARPA Order No. 4031 monitored by Naval Electronic System Command under
-Contract No. N00039-82-C-0235.
-.ds RH References
-.nr H2 1
-.sp 2
-.SH
-\s+2References\s0
-.LP
-.IP [Almes78] 20
-Almes, G., and Robertson, G.
-"An Extensible File System for Hydra"
-Proceedings of the Third International Conference on Software Engineering,
-IEEE, May 1978.
-.IP [Bass81] 20
-Bass, J.
-"Implementation Description for File Locking",
-Onyx Systems Inc, 73 E. Trimble Rd, San Jose, CA 95131
-Jan 1981.
-.IP [Feiertag71] 20
-Feiertag, R. J. and Organick, E. I.,
-"The Multics Input-Output System",
-Proceedings of the Third Symposium on Operating Systems Principles,
-ACM, Oct 1971. pp 35-41
-.IP [Ferrin82a] 20
-Ferrin, T.E.,
-"Performance and Robustness Improvements in Version 7 UNIX",
-Computer Graphics Laboratory Technical Report 2,
-School of Pharmacy, University of California,
-San Francisco, January 1982.
-Presented at the 1982 Winter Usenix Conference, Santa Monica, California.
-.IP [Ferrin82b] 20
-Ferrin, T.E.,
-"Performance Issuses of VMUNIX Revisited",
-;login: (The Usenix Association Newsletter), Vol 7, #5, November 1982. pp 3-6
-.IP [Kridle83] 20
-Kridle, R., and McKusick, M.,
-"Performance Effects of Disk Subsystem Choices for
-VAX Systems Running 4.2BSD UNIX",
-Computer Systems Research Group, Dept of EECS, Berkeley, CA 94720,
-Technical Report #8.
-.IP [Kowalski78] 20
-Kowalski, T.
-"FSCK - The UNIX System Check Program",
-Bell Laboratory, Murray Hill, NJ 07974. March 1978
-.IP [Knuth75] 20
-Kunth, D.
-"The Art of Computer Programming",
-Volume 3 - Sorting and Searching,
-Addison-Wesley Publishing Company Inc, Reading, Mass, 1975. pp 506-549
-.IP [Maruyama76]
-Maruyama, K., and Smith, S.
-"Optimal reorganization of Distributed Space Disk Files",
-CACM, 19, 11. Nov 1976. pp 634-642
-.IP [Nevalainen77] 20
-Nevalainen, O., Vesterinen, M.
-"Determining Blocking Factors for Sequential Files by Heuristic Methods",
-The Computer Journal, 20, 3. Aug 1977. pp 245-247
-.IP [Pechura83] 20
-Pechura, M., and Schoeffler, J.
-"Estimating File Access Time of Floppy Disks",
-CACM, 26, 10. Oct 1983. pp 754-763
-.IP [Peterson83] 20
-Peterson, G.
-"Concurrent Reading While Writing",
-ACM Transactions on Programming Languages and Systems,
-ACM, 5, 1. Jan 1983. pp 46-55
-.IP [Powell79] 20
-Powell, M.
-"The DEMOS File System",
-Proceedings of the Sixth Symposium on Operating Systems Principles,
-ACM, Nov 1977. pp 33-42
-.IP [Ritchie74] 20
-Ritchie, D. M. and Thompson, K.,
-"The UNIX Time-Sharing System",
-CACM 17, 7. July 1974. pp 365-375
-.IP [Smith81a] 20
-Smith, A.
-"Input/Output Optimization and Disk Architectures: A Survey",
-Performance and Evaluation 1. Jan 1981. pp 104-117
-.IP [Smith81b] 20
-Smith, A.
-"Bibliography on File and I/O System Optimization and Related Topics",
-Operating Systems Review, 15, 4. Oct 1981. pp 39-54
-.IP [Symbolics81] 20
-"Symbolics File System",
-Symbolics Inc, 9600 DeSoto Ave, Chatsworth, CA 91311
-Aug 1981.
-.IP [Thompson78] 20
-Thompson, K.
-"UNIX Implementation",
-Bell System Technical Journal, 57, 6, part 2. pp 1931-1946
-July-August 1978.
-.IP [Thompson80] 20
-Thompson, M.
-"Spice File System",
-Carnegie-Mellon University,
-Department of Computer Science, Pittsburg, PA 15213
-#CMU-CS-80, Sept 1980.
-.IP [Trivedi80] 20
-Trivedi, K.
-"Optimal Selection of CPU Speed, Device Capabilities, and File Assignments",
-Journal of the ACM, 27, 3. July 1980. pp 457-473
-.IP [White80] 20
-White, R. M.
-"Disk Storage Technology",
-Scientific American, 243(2), August 1980.
diff --git a/share/doc/smm/05.fastfs/Makefile b/share/doc/smm/05.fastfs/Makefile
deleted file mode 100644
index 30c7574d66a..00000000000
--- a/share/doc/smm/05.fastfs/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-# $OpenBSD: Makefile,v 1.3 2004/02/01 14:22:45 jmc Exp $
-
-
-DIR= smm/05.fastfs
-SRCS= 0.t 1.t 2.t 3.t 4.t 5.t 6.t
-MACROS= -ms
-
-paper.ps: ${SRCS}
- ${TBL} ${SRCS} | ${EQN} | ${ROFF} > ${.TARGET}
-
-paper.txt: ${SRCS}
- ${TBL} ${SRCS} | ${EQN} | ${ROFF} -Tascii > ${.TARGET}
-
-.include <bsd.doc.mk>
diff --git a/share/doc/smm/Makefile b/share/doc/smm/Makefile
deleted file mode 100644
index e5333a2cd14..00000000000
--- a/share/doc/smm/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-# $OpenBSD: Makefile,v 1.9 2010/07/01 20:02:28 tedu Exp $
-# from: @(#)Makefile 8.1 (Berkeley) 6/10/93
-
-DOCDIR= /usr/share/doc/smm
-FILES= Makefile
-
-beforeinstall:
- install -c -o ${DOCOWN} -g ${DOCGRP} -m ${DOCMODE} ${FILES} \
- ${DESTDIR}${DOCDIR}
-
-.include <bsd.subdir.mk>
diff --git a/share/doc/usd/Makefile b/share/doc/usd/Makefile
deleted file mode 100644
index 3c8febd9a61..00000000000
--- a/share/doc/usd/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-# $OpenBSD: Makefile,v 1.10 2010/07/01 20:08:54 tedu Exp $
-
-DOCDIR= /usr/share/doc/usd
-FILES= Makefile
-
-beforeinstall:
- install -c -o ${DOCOWN} -g ${DOCGRP} -m ${DOCMODE} ${FILES} \
- ${DESTDIR}${DOCDIR}
-
-.include <bsd.subdir.mk>