Annotation of www/plus.html, Revision 1.50
1.14 deraadt 1: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
2: <html>
3: <head>
4: <title>OpenBSD changes</title>
5: <link rev=made href=mailto:www@openbsd.org>
6: <meta name="resource-type" content="document">
7: <meta name="description" content="the main OpenBSD page">
8: <meta name="keywords" content="openbsd,main">
9: <meta name="distribution" content="global">
10: <meta name="copyright" content="This document copyright 1996 by OpenBSD, Inc.">
11: </head>
12:
13: <body>
14:
15: <h1>OpenBSD</h1>
16: <hr>
17: <h3>Changes Relative to other *BSD's.</h3>
18:
19: <p>
1.29 deraadt 20: The OpenBSD project was spawned from NetBSD (ie. a member of the
21: 4.4BSD family) and is developed seperately. As well as developments
22: by our development group, good changes from the other free operating
23: systems are evaluated and merged into OpenBSD (of course, depending on
24: various factors like developer time for example.) OpenBSD tracks bug
25: reports and source tree changes from the NetBSD and FreeBSD projects
26: fairly closely. Even pieces of code from the Linux projects have been
27: used.
1.14 deraadt 28:
29: <p>
1.29 deraadt 30: In the early days of OpenBSD, it was possible to be able to say
31: "OpenBSD is NetBSD <b>PLUS MORE STUFF</b>" Now, after substantial
1.30 deraadt 32: work OpenBSD is very much is it's own thing. Too much stuff has been
1.29 deraadt 33: added and fixed. OpenBSD is OpenBSD.
34:
35: <p>
36: This is a partial list of the major machine independent changes
37: (ie. these are the changes people ask about most often). Port
38: specific changes have also been made, and are sometimes mentioned
39: in the pages for the specific <a href=plat.html>ports</a> if you
40: are interested in for further port-specific details. Many ports
41: have had architecture-specific enhancements relative to NetBSD,
42: but when they do not they certainly have plenty of platform-independent
43: changes, starting with those listed below..
1.14 deraadt 44:
1.17 deraadt 45: <p>
46: <h3>Life for the OpenBSD project begins...</h3>
47: <p>
1.14 deraadt 48: <ul>
49: <li>Many many NetBSD PR's fixed (which NetBSD has not yet fixed)
50: <li>New curses library, including libform, libpanel and libmenu.
51: <li>a termlib library which understands termcap.db, needed for new curses.
52: <li>The FreeBSD ports subsystem was integrated and is usable by you!
1.35 kstailey 53: <li>ipfilter for filtering dangerous packets and Network Address Translation
54: for IP masquerading.
1.14 deraadt 55: <li>better ELF support
56: <li>nlist() that understands ELF, ECOFF, and a.out, allowing non-a.out ports
57: to use kvm utilies
58: <li>Verbatim integration of the GNU tools (using a wrapper Makefile)
59: <li>All the pieces needed for cross compilation are in the source tree.
60: <li>Some LKM support in the tree.
61: <li>ATAPI support (should work on all ISA busses)
62: <li>new scsi, md5, pkg_* commands
63: <li>Numerous security related fixes
64: <li>Kerberos and other crypto in the source tree that is exportable
65: <li>Solid YP master, server, and client capabilities.
66: <li>/dev/*random -- a device driver providing some kinds of random data
67: <li>In-kernel update(8) with an adaptive algorithm
68: <li>Some ddb improvements and extensions
69: <li>Numerous scsi fixes
70: <li>ncheck utility for ffs
71: <li>/sbin/init now deals with non-existant ttys, no longer spins gettys madly.
72: <li>new system calls: rfork(), minherit(), poll().
73: <li>select() that can handle any amount of file descriptors.
74: <li>kernfs extensions
75: <li>ATM support (support for one company's sparc & i386 cards available)
76: <li>Boot kernels with "-c" to edit/enable/disable device configuration tables
77: <li>pax as tar, gnutar is toast
78: <li>using AT&T awk, gawk is toast
79: <li>Even more security fixes.
80: <li>Accepts FreeBSD MD5 passwords in password maps, soon will be able to
81: generate them too
82: <li>Linux ext2fs and BSD4.4 LFS support being worked on.
83: <li>Working ATAPI audio support for multiple architectures.
84: <li>terminfo database support.
85: <li>Fortran in the tree.
86: <li>The most secure rdist support anywhere.
87: <li>randomized port allocation in bind(), bindresvport(), and rresvport() --
88: security via unpredictability.
89: <li>Protection from the udp spamming and ftp bounce attacks.
90: <li>Significantly improved ftp daemon.
91: <li>Numerous more security policy and implimentation improvements (OpenBSD
92: defaults to installing in a very secure mode)
93: <li>zlib (non-GPL'd gzip-compatible library)
94: <li>Newest version of pppd.
95: <li>_POSIX_SAVED_IDS behaviour with permitted BSD extensions.
96: <li>Fixed long-standing vm swap-leak.
97: <li>FreeBSD malloc() that uses mmap() and is able to free unused memory.
98: <li>Numerous FreeBSD userland fixes and improvements incorporated.
99: <li>new rdisc Router Discovery daemon
100: <li>generic protection against the bind() takeover problem.
101: <li>at -f security fix.
102: <li>20 or so more security fixes
103: <li>install now supports -C, -p, and -S flags.
104: <li>a real adduser program, which can even be used uninteractively.
105: <li>POSIX & C2 requirement; lose setuid/setgid bits if owner/group changed
106: by chown(). This can be turned off with sysctl.
107: <li>partial protection against tcp SYN attacks.
108: <li>added /etc/fbtab support to login & init.
109: <li>RCS version 5.7
110: <li>much newer join command (4.4lite2 with other fixes)
111: <li>scsi subsystem security fix
112: <li>Kerberos is much more silent if not configured
113: <li>arc4-based random support in kernel
114: <li>ncr53cXXX scsi scripts assembler
115: <li>Numerous ftpd improvements and fixes, including multihomed and skey support.
116: <li>`lsof'-style features in fstat.
117: <li>rudimentary support for ISA Plug-and-Play cards
118: <li>Fixed timeout support in RPC library, and also fixed it to support more
119: than FD_SETSIZE file descriptors.
120: <li>improved locate command
121: <li>a good start at NETIPX support
122: <li>vim version 4.5
123: <li>gcc 2.7.2.1 (to get closer to native alpha support ar gcc
124: bugs).
125: <li>latest version of perl, and a lndir command.
126: <li>Even more security fixes.
127: <li>cdio command for using CD audio.
1.40 gvf 128: <li>Kernel warns if /dev/console does not exist; nice warning for booting with
129: an unpopulated /dev directory.
1.41 deraadt 130: <li>libgnumalloc is gone; our malloc() is better.
1.14 deraadt 131: <li>FreeBSD pipe() system call; quite a bit faster.
132: <li>Some serial driver support for /dev/cuaXX devices to support transparent
133: out+dial
1.40 gvf 134: <li>DDB can now access symbol tables from LKM modules
1.14 deraadt 135: <li>Say goodbye to dump, restore, and mt security holes: They are no longer
136: setuid.
137: <li>*Hobbit*'s netcat utility. The crackers use it, so should you.
138: <li>New routed from SGI.
139: <li>Complete in-tree development for MIPS/Alpha systems (ie. binutils).
140: <li>ftp command modified for easily scripted ftp & http downloads.
141: <li>And of course... more security related bugfixes... (ie. dump,
142: restore, mt).
143: <li>vim is replacing nvi, since nvi does not have a pure BSD license, and vim
144: also works better.
145: <li>16 partitions working on sparc and i386 (yipee!)
146: <li>Nice sample files in /etc
147: <li>sendmail gecos hole fixed (in a number of ways; other programs in the
148: source tree were also vulnerable.)
149: <li>secure multicast tools against possible security problems.
150: <li>latest GNU groff, incorporated in a clean wrapperized form.
151: <li>mopd for networking booting Digital machines
152: <li>less version 2.90
153: <li>deal with the SYN bomb problem (denial of service attack) as well known.
154: <li>Another kerberos security fix.
155: <li>Almost a hundred more security fixes, including /tmp races because of strncpy.
156: <li>Compile time option to compile the source tree almost completely dynamic.
157: <li>A 7% reduction in size of static binaries.
158: <li>FreeBSD's adduser(8) command. Also an rmuser(8) command.
159: <li>We have completed security reviews of almost all userland programs and
160: libraries except for the gnu stuff (where, based on preliminary
161: inspection there is poor handling of temp files).
162: <li>Working Linux ext2fs.
163: <li>Added sudo (which is maintained by one of our developers)
164: <li>CTM is now a supported way of obtaining OpenBSD source code.
1.17 deraadt 165: </ul>
166: <p>
167: <h3>OpenBSD 2.0 released.</h3>
168: <p>
1.15 deraadt 169: <ul>
1.14 deraadt 170: <li>The NIST Posix test suite became free. As a result we have been correcting
171: numerous problems in the source tree, and expect to be completely
172: POSIX compliant very soon.
173: <li>upgrade to CVS version 1.9.
174: <li>A number of security fixes to the way coredumping works.
175: <li>The /dev/*random devices are now default on all architectures.
176: <li>Add stack tracebacks to Arc port's kernel debugger.
177: <li>Skey revamped into full OTP (RFC1938) support, including sha1 and
178: md5 support.
179: <li>GPL i387 emulator added.
180: <li>Crank kvm space on the i386 port, also limit buffer cache useage
181: so that 512MB machines may work (untested :-)
182: <li>Numerous fixes to the lpr suite, including security.
183: <li>More ftpd raging paranoia security fixes.
184: <li>The NIST suite showed numerous errors in libraries and the kernel.
185: Only a few small errors remain now, mostly regarding serial
186: ports.
187: <li>In numerous utilities: prefer $LOGNAME, but also accept $USER.
188: <li>OLF binary type added. This is like ELF, but includes an OS-dependent
189: tag. elf2olf(1) converts an elf binary to a tagged OLF binary which
190: the kernel can recognize correctly.
191: <li>Beware $HOME overflows throughout the source tree.
192: <li>Integration of the pmax port.
193: <li>Import of ctm.
194: <li>Various repairs to the scsi scanner support.
195: <li>Numerous more difficult-to-exploit-but-possible-if-someone-really-wanted-to
196: buffer overflows found in system utilities..
197: <li>Memory leak paranoia in cron.
198: <li>Make login get more consistantly upset about failed logins, and tell user
199: about these failures at the next successfull login.
200: <li>pdksh version is now 5.2.11
201: <li>New bsd.*.mk feature: DEBUG=-g. Try it, you'll like it.
202: <li>The Arc port family has a new member: The rPC44 works!
203: <li>lpt driver is now bus-independent.
204: <li>com driver is now bus-independent.
205: <li>Numerous small security fixes again...
206: <li>Use pdksh as our /bin/sh. This provides excellent POSIX compliance.
207: <li>Prevent generic users from mounting filesystems by default.
208: <li>Added -C option to pax/tar. Also made -z support compressed files too.
209: <li>Increased compatibility in the pccons driver with BSDi features.
210: <li>Imported FreeBSD's calendar.
211: <li>GNU gdb works on the mips-based platforms.
212: <li>Add FreeBSD md5 diffs to mtree(8). This can be used to implement a
213: tripwire-like system.
214: <li>Some YP and bootparamd security changes.
215: <li>Hundreds of little fixes all over the place.
216: <li>Multiple updates for GNU software
217: <li>Add disklabels to the floppy device drivers.
218: <li>At boottime, have (*mountroot)() look at the root device's disklabel
219: to determine which filesystem type is to be mounted.
220: <li>If disklabel reading code discovers an ISOFS filesystem underlying,
221: spoof a nice disklabel (enough to fool mountroot).
222: <li>tcpdump 3.3
223: <li>Fix information gathering attack in ping(8).
224: <li>Add NetBSD's "route show" implementation, and at the samet time fix
225: the new buffer overflows that this provided.
226: <li>Fix a few setgroups() related security holes.
227: <li>sendmail 8.8.4
228: <li>texinfo 3.9
229: <li>f77 0.5.19
230: <li>Repair some more KerberosIV buffer overflows. Hard to believe this is
231: supposed to be security software.
232: <li>Add XCASE/IUCLC/OLCUC/OCRNL/ONOCR/ONLRET tty subsystem flags for
233: backwards compatibility.
234: <li>Permit NFS attribute cache to be configured on a per-mount basis.
235: <li>Properly split fsck, mount, and newfs into multiple pieces. Use
236: disklabel information if it is available.
237: <li>Add disklabels to the vnd device driver.
238: <li>Change the games to be run setgid games, not setuid games. This closes
239: a whole slew of fascinating security holes.
240: <li>Import of the powerpc port.
241: <li>Properly use _POSIX_SAVED_IDS throughout the source tree.
242: <li>Permit building of kernels without a.out support.
243: <li>ppp 2.3b3
244: <li>libcrypt goes away. We do not need this stub library anymore. Do not link
245: against it on OpenBSD, all the pieces you need are in libc.
1.18 deraadt 246: <li>new aucat command.
247: <li>Fix a fairly nasty security hole in all of the games.
1.20 downsj 248: <li>Support for the <a href="hp300.html">hp300</a> added.
249: <li>Upgrade of awk(1), integration of BSD tsort(1), getopt fixes.
250: <li>Sendmail upgraded to version 8.8.5.
1.21 downsj 251: <li>Added lchown(2) for compatibility with SVR4 implementations.
1.23 deraadt 252: <li>New gnu cpio 2.4.2
253: <li>Support lchown(2) in dump(8), cp(1), pax(1), cpio(1), chown(8), and
254: restore(8).
255: <li>No buffer lengths in fmt(1).
256: <li>various adjtime() corrections inside the kernel.
257: <li>Prevent stat() from disclosing inode generation numbers to non-root userland.
258: <li>pax in tar mode will understand multiple -v options to generate ls-like output.
259: <li>Repair many uses of the SIOCGIFCONF code for machines with an outrageous
260: number of network interfaces.
1.22 deraadt 261: <li>More kerberosIV security patches.
262: <li>A working fsirand.
1.28 deraadt 263: <li>Completely in-tree <a href="ppc.html">PowerPC</a> port for non-Apple
264: hardware. This port requires nothing outside the in-tree development
265: environment to build (except mkisofs for building distributions).
266: <li>Some ypbind(8) tightening up, includes a method to specify a list of
267: valid servers
1.25 niklas 268: <li>Bug fixed that prevented bufpages/nbuf > 1 setups. This allows large
269: buffer caches even when available kvm space is low, like for i386
270: & sparc.
1.26 deraadt 271: <li>Changed netinet IP_HDRINCL option to require ip_len and ip_off in network
272: byte order. This is a compatibility/portability fix and we expect
273: other BSD systems to eventually follow suit.
274: <li>amd (the automounter) is now 64-bit and working on the alpha.
275: <li>The <a href="alpha.html">Alpha</a> port and all it's utilities now compiles
276: using in-tree versions of all tools. Yipee!
1.34 deraadt 277: <li>A SA_SIGINFO implementation for sigaction() and signal handlers. This is a
278: small part of POSIX 1003.1b and permits the signal handler to figure
279: out the exact cause of a signal; such as fault address information
280: for SIGSEGV or more detailed information for SIGFPE.
1.31 downsj 281: <li>config.old(8) has been removed from the tree, as the <a href="hp300.html">
282: hp300</a> port switches to config(8).
1.32 deraadt 283: <li>/sbin/dump -a saves you from needing to deal with finicky tape length
284: options (from FreeBSD)
1.34 deraadt 285: <li>Added RFC-1812 ICMP unreachable codes to ip_icmp.h, traceroute, and ping.
1.36 deraadt 286: <li>Be more careful if some fool decides to enable source routing ;-)
287: <li>Support for gzip'd kernels in some bootblocks.
288: <li>New wgrisc port for Willowglen embedded r3081-based machine with ISA slots.
289: <li>Add cdev and partition support to the ramdisk driver.
290: <li>Merge new ftp(1) changes from NetBSD.
1.37 deraadt 291: <li>Change mktemp(3) and family to generate more random filenames, yet still
292: as collision free as possible.
293: <li>Have libc/rpc save you from yourself if you do enable source routing.
1.38 downsj 294: <li>The <a href="hp300.html">hp300</a> joins many other ports in supporting
295: 16 disk partitions.
1.39 deraadt 296: <li>IPF 1.3.7 which includes fully working NAT support (ie. IP masquerading).
297: <li>Use lots more XXXX characters in calls to the few remaining mktemp() calls
298: in the source tree. This cuts out a whole class of races.
299: <li>Improved NFS filehandle creation.
1.42 deraadt 300: <li>Make dd(1) work fine with our 64-bit off_t types, now you can copy very
301: large disks using it.
302: <li>add RPC service name generation to netstat -a
1.43 deraadt 303: <li>Fix pax & tar to be POSIX compliant.
1.42 deraadt 304: <li>Fix a few netinet kernel crash problems.
305: <li>Fix so that stack limits which are not a multiple of the pagesize work.
306: <li>fix some more memory and file descriptor leaks in libc/rpc
1.43 deraadt 307: <li>New scalable BLOWFISH-based crypt algorithm for passwd file entries. It
308: uses a very large strong-random `salt' and the number of rotor
309: runs is configurable. Hence if you have faster machines you can
310: slow the crypt routine down and make harder keys.
311: <li>Add support for /etc/passwd.conf which controls the format and strength
312: of passwd entries for the next time a user changes their password.
313: These options can be set per-user.
1.44 deraadt 314: <li>Working kadmind for kerberosIV.
315: <li>IPSEC package from John Ioannidis and Angelos D. Keromytis.
316: <li>cvs 1.9.2
317: <li>Fix weak symbol support in ld.
318: <li>libg++ pulls in libcurses automatically.
319: <li>Replace which(1) with a C program.
1.45 millert 320: <li>newfs(8) now has an inline fsirand(8) with no noticable speed decrease.
321: <li>settimeofday(2) won't roll back the date if securelevel > 0 (from lite2).
1.46 kstailey 322: <li>deroff(1) 1.0 from Debian (a Linux).
1.47 downsj 323: <li>BIND 4.9.5-P1.
1.48 deraadt 324: <li>Add support for FreeBSD md5 to /etc/passwd.conf.
325: <li>Import of the mvme88k kernel port.
326: <li>Import of libwrap and tcpd (tcp wrappers).
327: <li>Numerous improvements to pax, including full support for cpio and
328: a lot of fixes to tar mode.
329: <li>Let fsck and fsirand automatically work on very large filesystems.
330: <li>Various fixes to the fsck tools.
331: <li>ipsecadm as an initial cut at controlling IPSEC sessions.
332: <li>Fix pcmcia on the i386.
333: <li>Merged changes from at 2.9 into our own at.
334: <li>pccon(1) to control the pccons driver.
335: <li>Bye bye tahoe bits.
336: <li>noaccesstime option for filesystems (saves batteries on laptops)
337: <li>Substantial changes and fixes to the scsi scanner support.
338: <li>Support for "secure" YP password maps.
339: <li>Various atm fixes.
340: <li>The NE2000 if_ed driver now works on the alpha, too.
341: <li>ddb improvements for 64 bit machines.
342: <li>Fixes to fts(3).
343: <li>A few ypbind fixes.
344: <li>sysctl kern.osrevision gives OpenBSD date.
345: <li>gcc no longer defines -D__NetBSD__, only -D__OpenBSD__ now!
346: <li>Implement NOFILE_MAX--hard limit on max descriptors per proccess.
347: <li>Be more careful about modes of lost+found directories.
348: <li>New termcap and terminfo database files.
349: <li>Change mail.local -H behaviour slightly, and convince mail(1) to use it
350: for correct locking!
351: <li>64 bit clean in.rarpd.
352: <li>cvs 1.9.6
1.49 millert 353: <li>16 partition support for the alpha port.
1.50 ! deraadt 354: <li>Add ./.message support to ftpd
! 355: <li>Numerous more pax/tar fixes.
! 356: <li>Add md5 & blowfish passwd support to adduser(8).
! 357: <li>Add support for YP v1 to ypserv.
! 358: <li>Fixed some more mktemp races (sigh, will this ever end!)
! 359: <li>More buffer overflows, but none in sensitive programs.
! 360: <li>getnetent() and friends now work a lot more like gethostent().
! 361: <li>Use 10 X characters in many remaining mktemp() calls which are
! 362: hard to excise.
! 363: <li>Solve a few resolver problems after the recent 4.9.5-P1 integration,
! 364: not all our fault.
! 365: <li>Fix patch to honour Index lines better.
! 366: <li>A whole bunch of 64 bit fixes in the source tree (hint: alpha).
! 367: <li>Once again, really correct the various source routing pieces of the
! 368: userland source tree.
! 369: <li>Make real i386 cpu's work again. In case noone noticed, they didn't
! 370: work for about 5 months. The bug was very hard to find...
! 371: <li>For config(8), if any kernel options get added/deleted/changed since
! 372: the previous commit, warn that the compile tree needs 'make clean'.
! 373: <li>Use in_addr_t and in_port_t all over the place.
! 374: <li>Correct DEV_BSIZE and lp->d_secsize confusion throughout the source
! 375: tree. CD9660 is much happier now.
! 376: <li>Fix AFS string-to-key handling in kerberos.
! 377: <li>Various man page fixes.
! 378: <li>For the first time ever, an obj@ populated /usr/src tree compiles cleanly
! 379: when mounted read-only.
1.14 deraadt 380: </ul>
1.17 deraadt 381: <p>
382: <h3>Development is rapidly continuing...</h3>
383: <p>
1.14 deraadt 384:
385: This list only mentions platform-independent changes. For a list of changes
386: made in a particular platform, please check the page for that platform.<br><br>
387:
388: <hr>
389: <a href="index.html"><img src=back.gif border=0 alt=OpenBSD></a>
390: <a href=mailto:www@openbsd.org>www@openbsd.org</a>
1.50 ! deraadt 391: <br><small>$OpenBSD: plus.html,v 1.49 1997/04/07 17:57:45 millert Exp $</small>
1.14 deraadt 392:
393: </body>
394: </html>