Annotation of www/innovations.html, Revision 1.59
1.1 schwarze 1: <!DOCTYPE html>
1.34 schwarze 2: <html lang="en">
1.1 schwarze 3: <head>
4: <meta charset="UTF-8"/>
1.33 tj 5: <title>OpenBSD: Innovations</title>
1.31 deraadt 6: <meta name="viewport" content="width=device-width, initial-scale=1">
7: <link rel="stylesheet" type="text/css" href="openbsd.css">
1.35 tb 8: <link rel="canonical" href="https://www.openbsd.org/innovations.html">
1.1 schwarze 9: </head>
10:
1.31 deraadt 11: <body bgcolor= "#ffffff" text= "#000000">
12:
13: <h2>
1.59 ! job 14: <a href="index.html">
! 15: <i><font color="#0000ff">Open</font></i><font color="#000084">BSD</font></a>
! 16: <font color="#e00000">Innovations</font>
1.32 tj 17: </h2>
1.31 deraadt 18: <hr>
1.32 tj 19: <p>
1.59 ! job 20: This is a list of software and ideas developed or maintained by the OpenBSD
! 21: project, sorted in order of approximate introduction. Some of them are
! 22: explained in detail in our <a href="events.html">research papers</a>.
! 23: </p>
1.32 tj 24: <hr>
1.1 schwarze 25:
1.59 ! job 26: <h3>Concepts</h3>
1.1 schwarze 27:
28: <ul>
1.59 ! job 29: <li>
! 30: <a href="https://man.openbsd.org/ipsec.4">ipsec(4)</a>:
! 31: Started by John Ioannidis, Angelos D. Keromytis, Niels Provos, and
! 32: Niklas Hallqvist, imported February 20, 1997. OpenBSD was the first
! 33: free operating system to provide an IPSec stack.
! 34: </li>
! 35: <li>
! 36: <a href="https://man.openbsd.org/inet6.4">inet6(4)</a>:
! 37: First complete integration and adoption of IPv6 led by
! 38: "Itojun" (Dr. Junichiro Hagino) [WIDE/KAME], Craig Metz [NRL], and
! 39: Angelos D. Keromytis starting Jan 6, 1999.
! 40: Almost fully operational Jun 6, 1999 during the
! 41: <a href="hackathons.html">first OpenBSD hackathon</a>.
! 42: OpenBSD 2.7.
! 43: </li>
! 44: <li>
! 45: <strong>Privilege separation</strong>:
! 46: First implemented by
! 47: <a href="http://www.citi.umich.edu/u/provos/ssh/privsep.html">Niels Provos</a>
! 48: and Markus Friedl in OpenSSH in March 2002, released with OpenBSD 3.2.
! 49: The concept is now used in many OpenBSD programs, for example
! 50: <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>,
! 51: <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a>,
! 52: <a href="https://man.openbsd.org/dhcpd.8">dhcpd(8)</a>,
! 53: <a href="https://man.openbsd.org/dvmrpd.8">dvmrpd(8)</a>,
! 54: <a href="https://man.openbsd.org/eigrpd.8">eigrpd(8)</a>,
! 55: <a href="https://man.openbsd.org/file.1">file(1)</a>,
! 56: <a href="https://man.openbsd.org/httpd.8">httpd(8)</a>,
! 57: <a href="https://man.openbsd.org/iked.8">iked(8)</a>,
! 58: <a href="https://man.openbsd.org/ldapd.8">ldapd(8)</a>,
! 59: <a href="https://man.openbsd.org/ldpd.8">ldpd(8)</a>,
! 60: <a href="https://man.openbsd.org/mountd.8">mountd(8)</a>,
! 61: <a href="https://man.openbsd.org/npppd.8">npppd(8)</a>,
! 62: <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>,
! 63: <a href="https://man.openbsd.org/ospfd.8">ospfd(8)</a>,
! 64: <a href="https://man.openbsd.org/ospf6d.8">ospf6d(8)</a>,
! 65: <a href="https://man.openbsd.org/pflogd.8">pflogd(8)</a>,
! 66: <a href="https://man.openbsd.org/radiusd.8">radiusd(8)</a>,
! 67: <a href="https://man.openbsd.org/man8/relayd.8">relayd(8)</a>,
! 68: <a href="https://man.openbsd.org/ripd.8">ripd(8)</a>,
! 69: <a href="https://man.openbsd.org/script.1">script(1)</a>,
! 70: <a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a>,
! 71: <a href="https://man.openbsd.org/syslogd.8">syslogd(8)</a>,
! 72: <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a>,
! 73: <a href="https://man.openbsd.org/tmux.1">tmux(1)</a>,
! 74: <a href="https://man.openbsd.org/xconsole.1">xconsole(1)</a>,
! 75: <a href="https://man.openbsd.org/xdm.1">xdm(1)</a>,
! 76: <a href="https://man.openbsd.org/Xserver.1">Xserver(1)</a>,
! 77: <a href="https://man.openbsd.org/ypldap.8">ypldap(8)</a>,
! 78: <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a>,
! 79: etc.
! 80: </li>
! 81: <li>
! 82: <strong>Privilege revocation</strong>:
! 83: Related to the work on privilege separation, some programs were refactored
! 84: to drop privileges while holding onto a tricky resource such as a raw socket,
! 85: reserved port, or modification-locked bpf(4) descriptor,
! 86: for example
! 87: <a href="https://man.openbsd.org/ping.8">ping(8)</a>,
! 88: <a href="https://man.openbsd.org/traceroute.8">traceroute(8)</a>,
! 89: etc.
! 90: </li>
! 91: <li>
! 92: <strong>Stack protector</strong>:
! 93: Developed since 2001 as "propolice" by Hiroaki Etoh. Integrated, and
! 94: implemented for additional hardware platforms, by Miod Vallat and Theo
! 95: de Raadt. OpenBSD 3.3 was the first operating system to enable it
! 96: systemwide by default.
! 97: </li>
! 98: <li>
! 99: <strong>W^X</strong>:
! 100: First used for sparc, sparc64, alpha, and hppa in OpenBSD 3.3.
! 101: Strictly enforced by default since OpenBSD 6.0: a program can only
! 102: violate it if the executable is marked with <code>PT_OPENBSD_WXNEEDED</code>
! 103: and it is located on a filesystem mounted with the <code>wxallowed</code>
! 104: <a href="https://man.openbsd.org/mount.8">mount(8)</a> option.
! 105: </li>
! 106: <li>
! 107: <strong>GOT and PLT protection</strong> by ld.so:
! 108: first done as part of the W^X work in OpenBSD 3.3, by Dale Rahn and
! 109: Theo de Raadt. The GOT and PLT regions are read-only outside of ld.so
! 110: itself. Extended to the .init/.fini sections (constructors and
! 111: destructors) in OpenBSD 3.4.
! 112: </li>
! 113: <li>
! 114: <strong>ASLR</strong>:
! 115: OpenBSD 3.4 was the first widely used operating system to
! 116: provide it by default.
! 117: </li>
! 118: <li>
! 119: <a href="https://man.openbsd.org/gcc-local.1">gcc-local(1)</a>
! 120: __attribute__((__bounded__)) static analysis annotation
! 121: and checking mechanism:
! 122: Started by Anil Madhavapeddy on June 26, 2003
! 123: and ported to GCC 4 by Nicholas Marriott.
! 124: First released with OpenBSD 3.4.
! 125: </li>
! 126: <li>
! 127: <a href="https://man.openbsd.org/malloc.3">malloc(3)</a>
! 128: randomization implemented by Thierry Deval. Guard pages and randomized (delayed) free added by Ted Unangst.
! 129: Reimplemented by <a href="papers/eurobsdcon2009/otto-malloc.pdf">Otto Moerbeek</a>
! 130: for OpenBSD 4.4.
! 131: </li>
! 132: <li>
! 133: <strong>PIE</strong>:
! 134: OpenBSD 5.3 was the first widely used operating system to enable it
! 135: globally by default, on seven hardware platforms.
! 136: </li>
! 137: <li>
! 138: <strong>Random-data memory</strong>:
! 139: the ability to specify that a variable should be initialized at load
! 140: time with random byte values was implemented in OpenBSD 5.3 by Matthew
! 141: Dempsky.
! 142: </li>
! 143: <li>
! 144: <strong>Stack protector per shared object</strong>:
! 145: using the random-data memory feature, each shared object was given its
! 146: own stack protector cookie in OpenBSD 5.3 by Matthew Dempsky.
! 147: </li>
! 148: <li>
! 149: <strong>Static-PIE</strong>:
! 150: Position-independent static binaries for /bin, /sbin and ramdisks.
! 151: First released with OpenBSD 5.7.
! 152: </li>
! 153: <li>
! 154: <strong>SROP</strong>
! 155: (<a href="https://man.openbsd.org/sigreturn.2">sigreturn(2)</a>
! 156: oriented programming) mitigation: Researched by
! 157: <a href="http://www.cs.vu.nl/~herbertb/papers/srop_sp14.pdf">Eric Bosman</a>
! 158: and Herbert Bos in 2014, implemented by Theo de Raadt in May 2016,
! 159: enabled by default since OpenBSD 6.0.
! 160: </li>
! 161: <li>
! 162: <strong>Library order randomization</strong>:
! 163: In <a href="https://man.openbsd.org/rc.8">rc(8)</a>, re-link
! 164: <code>libc.so</code>, <code>libcrypto</code>, and <code>ld.so</code>
! 165: on startup, placing the objects in a random order.
! 166: Theo de Raadt and Robert Peichaer, May 2016,
! 167: enabled by default since OpenBSD 6.0 and 6.2.
! 168: </li>
! 169: <li>
! 170: Kernel-assisted lazy-binding for W^X safety in multi-threaded programs.
! 171: A new syscall <a href="https://man.openbsd.org/kbind.2">kbind(2)</a>
! 172: permits lazy-binding to be W^X safe in multi-threaded programs.
! 173: Implemented for OpenBSD 5.9 by Philip Guenther in July 2015.
! 174: </li>
! 175: <li>
! 176: Process layouts in memory tightened to remove execute permission from
! 177: all segmented, non-instruction data and to remove write permission from
! 178: data that is only modified during loading and relocation.
! 179: By combining the RELRO (Read-Only after Relocation) design from the
! 180: GNU project with the original ASLR work from OpenBSD 3.3 and
! 181: strict lazy-binding work from OpenBSD 5.9, this is applied to not
! 182: just a subset of programs and libraries but rather to all programs
! 183: and libraries.
! 184: Implemented for OpenBSD 6.1 by Philip Guenther in August 2016.
! 185: </li>
! 186: <li>
! 187: Use of <strong>fork+exec in privilege separated programs</strong>. The
! 188: strategy is to give each process a fresh & unique address space for
! 189: ASLR, stack protector -- as protection against address space discovery attacks.
! 190: Implemented first by
! 191: Damien Miller (<a href="https://man.openbsd.org/sshd.8">sshd(8)</a> 2004),
! 192: Claudio Jeker (<a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>, 2015),
! 193: Eric Faurot (<a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a>, 2016),
! 194: Rafael Zalamena (various, 2016), and others.
! 195: </li>
! 196: <li>
! 197: <strong>trapsleds</strong>:
! 198: Reduction of incidental NOP instructions/sequences in the instruction
! 199: stream which could be useful potentially for ROP attack methods to
! 200: innaccurately target gadgets. These NOP sequences are converted into
! 201: trap sequences where possible. Todd Mortimer and Theo de Raadt, June
! 202: 2017.
! 203: </li>
! 204: <li>
! 205: <strong>Kernel relinking at boot</strong>:
! 206: the .o files of the kernel are relinked in random order from a
! 207: link-kit, before every reboot. This provides substantial interior
! 208: randomization in the kernel's text and data segments for layout and
! 209: relative branches/calls. Basically a unique address space for each
! 210: kernel boot, similar to the userland fork+exec model described above
! 211: but for the kernel. Theo de Raadt, June 2017.
! 212: </li>
1.17 mlarkin 213: </ul>
1.1 schwarze 214:
1.59 ! job 215: <h3>Functions</h3>
1.1 schwarze 216:
217: <ul>
1.59 ! job 218: <li>
! 219: <a href="https://man.openbsd.org/arc4random.3">arc4random(3)</a>:
! 220: David Mazieres, December 28, 1996, OpenBSD 2.1
! 221: </li>
! 222: <li>
! 223: <a href="https://man.openbsd.org/bcrypt.3">bcrypt(3)</a>:
! 224: Implemented by <a href="https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html">Niels Provos and David Mazieres</a>
! 225: Imported February 13, 1997 and first released with OpenBSD 2.1.
! 226: </li>
! 227: <li>
! 228: <a href="https://man.openbsd.org/strlcpy.3">strlcpy(3)</a>,
! 229: <a href="https://man.openbsd.org/strlcat.3">strlcat(3)</a>:
! 230: Todd Miller and Theo de Raadt, July 1, 1998, OpenBSD 2.4
! 231: </li>
! 232: <li>
! 233: <a href="https://man.openbsd.org/strtonum.3">strtonum(3)</a>:
! 234: Ted Unangst, Todd Miller, and Theo de Raadt, May 3, 2004, OpenBSD 3.6
! 235: </li>
! 236: <li>
! 237: <a href="https://man.openbsd.org/imsg_init.3">imsg</a>:
! 238: Message passing API, written by Henning Brauer.
! 239: In libutil since May 26, 2010, OpenBSD 4.8;
! 240: used by various daemons before that.
! 241: </li>
! 242: <li>
! 243: <a href="https://man.openbsd.org/timingsafe_bcmp.3">timingsafe_bcmp(3)</a>:
! 244: Damien Miller, July 13, 2010, OpenBSD 4.9
! 245: </li>
! 246: <li>
! 247: <a href="https://man.openbsd.org/explicit_bzero.3">explicit_bzero(3)</a>:
! 248: Ted Unangst and Matthew Dempsky, January 22, 2014, OpenBSD 5.5
! 249: </li>
! 250: <li>
! 251: <a href="https://man.openbsd.org/ohash_init.3">ohash</a>:
! 252: Written and maintained by Marc Espie.
! 253: In libutil since May 12, 2014, OpenBSD 5.6;
! 254: used by make(1) and m4(1) before that.
! 255: </li>
! 256: <li>
! 257: <a href="https://man.openbsd.org/asr_run.3">asr</a>:
! 258: Replacement resolver written and maintained by Eric Faurot.
! 259: Imported April 14, 2012; activated on March 26, 2014, OpenBSD 5.6.
! 260: </li>
! 261: <li>
! 262: <a href="https://man.openbsd.org/reallocarray.3">reallocarray(3)</a>:
! 263: Theo de Raadt and Ted Unangst, April 22, 2014, OpenBSD 5.6
! 264: </li>
! 265: <li>
! 266: <a href="https://man.openbsd.org/getentropy.2">getentropy(2)</a>:
! 267: Matthew Dempsky and Theo de Raadt, June 13, 2014, OpenBSD 5.6
! 268: </li>
! 269: <li>
! 270: <a href="https://man.openbsd.org/sendsyslog.2">sendsyslog(2)</a>:
! 271: Theo de Raadt, July 10, 2014, OpenBSD 5.6
! 272: </li>
! 273: <li>
! 274: <a href="https://man.openbsd.org/timingsafe_memcmp.3">timingsafe_memcmp(3)</a>:
! 275: Matthew Dempsky, July 13, 2014, OpenBSD 5.6
! 276: </li>
! 277: <li>
! 278: <a href="https://man.openbsd.org/pledge.2">pledge(2)</a>:
! 279: Theo de Raadt, July 19, 2015, OpenBSD 5.9
! 280: </li>
! 281: <li>
! 282: <a href="https://man.openbsd.org/getpwnam_shadow.3">getpwnam_shadow(3)</a>,
! 283: <a href="https://man.openbsd.org/getpwuid_shadow.3">getpwuid_shadow(3)</a>:
! 284: Ted Unangst and Theo de Raadt, November 18, 2015, OpenBSD 5.9
! 285: </li>
! 286: <li>
! 287: <a href="https://man.openbsd.org/recallocarray.3">recallocarray(3)</a>:
! 288: Otto Moerbeek, Joel Sing and Theo de Raadt, March 6, 2017, OpenBSD 6.1
! 289: </li>
! 290: <li>
! 291: <a href="https://man.openbsd.org/freezero.3">freezero(3)</a>:
! 292: Otto Moerbeek, April 10, 2017, OpenBSD 6.2
! 293: </li>
1.16 deraadt 294: </ul>
295:
1.59 ! job 296:
! 297: <h3>Programs and subsystems</h3>
1.16 deraadt 298:
299: <ul>
1.59 ! job 300: <li>
! 301: <a href="https://man.openbsd.org/ypbind.8">ypbind(8)</a>,
! 302: <a href="https://man.openbsd.org/ypset.8">ypset(8)</a>,
! 303: <a href="https://man.openbsd.org/ypcat.1">ypcat(1)</a>,
! 304: <a href="https://man.openbsd.org/ypmatch.1">ypmatch(1)</a>,
! 305: <a href="https://man.openbsd.org/ypwhich.1">ypwhich(1)</a>,
! 306: and libc support: Started by Theo de Raadt.
! 307: Imported April 26, 1993 and first released with NetBSD 0.9.
! 308: </li>
! 309: <li>
! 310: <a href="https://man.openbsd.org/ypserv.8">ypserv(8)</a>:
! 311: Started by Mats O. Jansson in 1994.
! 312: Imported October 23, 1995 and first released with OpenBSD 2.0.
! 313: </li>
! 314: <li>
! 315: <a href="https://man.openbsd.org/mopd.8">mopd(8)</a>:
! 316: Started by Mats O. Jansson in 1993.
! 317: Imported September 21, 1996 and first released with OpenBSD 2.0.
! 318: </li>
! 319: <li>
! 320: <a href="anoncvs.html">AnonCVS</a>:
! 321: Designed and implemented by Chuck Cranor and Theo de Raadt in 1995
! 322: (<a href="papers/anoncvs-paper.pdf">paper</a>,
! 323: <a href="papers/anoncvs-slides.pdf">slides</a>)
! 324: </li>
! 325: <li>
! 326: <a href="https://man.openbsd.org/aucat.1">aucat(1)</a>:
! 327: Started by Kenneth Stailey.
! 328: Imported January 2, 1997 and first released with OpenBSD 2.1.
! 329: Now maintained by Alexandre Ratchov.
! 330: </li>
! 331: <li>
! 332: <a href="https://www.openssh.com/">OpenSSH</a>
! 333: including <a href="https://man.openbsd.org/ssh.1">ssh(1)</a>,
! 334: <a href="https://man.openbsd.org/scp.1">scp(1)</a>,
! 335: <a href="https://man.openbsd.org/sftp.1">sftp(1)</a>,
! 336: <a href="https://man.openbsd.org/ssh-add.1">ssh-add(1)</a>,
! 337: <a href="https://man.openbsd.org/ssh-agent.1">ssh-agent(1)</a>,
! 338: <a href="https://man.openbsd.org/ssh-keygen.1">ssh-keygen(1)</a>,
! 339: <a href="https://man.openbsd.org/sshd.8">sshd(8)</a>,
! 340: <a href="https://man.openbsd.org/sftp-server.8">sftp-server(8)</a>:
! 341: Started by Aaron Campbell, Bob Beck, Dug Song, Markus Friedl,
! 342: Niels Provos, and Theo de Raadt
! 343: as a fork of SSH 1.2.12 by Tatu Ylonen.
! 344: Imported September 26, 1999 and first released with OpenBSD 2.6.
! 345: Now maintained by Markus Friedl, Damien Miller, Darren Tucker, and
! 346: Theo de Raadt.
! 347: </li>
! 348: <li>
! 349: <a href="https://man.openbsd.org/mg.1">mg(1)</a>:
! 350: Started by Dave Conroy in November 1986.
! 351: Imported February 25, 2000 and first released with OpenBSD 2.7.
! 352: Now maintained by Mark Lumsden.
! 353: </li>
! 354: <li>
! 355: <a href="https://man.openbsd.org/m4.1">m4(1)</a>:
! 356: Originally implemented by Ozan Yigit and Richard A. O'Keefe for 4.3BSD-Reno.
! 357: Considerably extended and maintained by Marc Espie since 1999.
! 358: </li>
! 359: <li>
! 360: <a href="https://man.openbsd.org/pf.4">pf(4)</a>,
! 361: <a href="https://man.openbsd.org/pfctl.8">pfctl(8)</a>,
! 362: <a href="https://man.openbsd.org/pflogd.8">pflogd(8)</a>,
! 363: <a href="https://man.openbsd.org/authpf.8">authpf(8)</a>,
! 364: <a href="https://man.openbsd.org/ftp-proxy.8">ftp-proxy(8)</a>:
! 365: Started by Daniel Hartmeier as a replacement for the non-free ipf by
! 366: Darren Reed. Imported June 24, 2001 and first released with OpenBSD
! 367: 3.0. Now maintained by Henning Brauer.
! 368: </li>
! 369: <li>
! 370: <a href="https://man.openbsd.org/OpenBSD-5.9/systrace.4">systrace(4)</a>,
! 371: <a href="https://man.openbsd.org/OpenBSD-5.9/systrace.1">systrace(1)</a>:
! 372: Started by Niels Provos.
! 373: Imported June 4, 2002 and first released with OpenBSD 3.2.
! 374: Deleted after OpenBSD 5.9 because
! 375: <a href="https://man.openbsd.org/pledge.2">pledge(2)</a> is even better.
! 376: </li>
! 377: <li>
! 378: <a href="https://man.openbsd.org/spamd.8">spamd(8)</a>:
! 379: Written by Bob Beck. Imported December 21, 2002 and first released with
! 380: OpenBSD 3.3.
! 381: </li>
! 382: <li>
! 383: <a href="https://man.openbsd.org/dc.1">dc(1)</a>:
! 384: Written and maintained by Otto Moerbeek.
! 385: Imported September 19, 2003 and first released with OpenBSD 3.5.
! 386: </li>
! 387: <li>
! 388: <a href="https://man.openbsd.org/bc.1">bc(1)</a>:
! 389: Written and maintained by Otto Moerbeek.
! 390: Imported September 25, 2003 and first released with OpenBSD 3.5.
! 391: </li>
! 392: <li>
! 393: <a href="https://man.openbsd.org/sensorsd.8">sensorsd(8)</a>:
! 394: Started by Henning Brauer.
! 395: Imported September 24, 2003 and first released with OpenBSD 3.5.
! 396: Reworked by Constantine A. Murenin.
! 397: </li>
! 398: <li>
! 399: <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a>:
! 400: Written and maintained by Marc Espie.
! 401: Imported October 16, 2003 and first released with OpenBSD 3.5.
! 402: </li>
! 403: <li>
! 404: <a href="https://man.openbsd.org/carp.4">carp(4)</a>:
! 405: Written by Mickey Shalayeff, Markus Friedl, Marco Pfatschbacher,
! 406: and Ryan McBride.
! 407: Imported October 17, 2003 and first released with OpenBSD 3.5.
! 408: </li>
! 409: <li>
! 410: <a href="http://www.openbgpd.org/">OpenBGPD</a>
! 411: including <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>
! 412: and <a href="https://man.openbsd.org/bgpctl.8">bgpctl(8)</a>:
! 413: Written and maintained by Henning Brauer and Claudio Jeker,
! 414: and also maintained by Peter Hessler.
! 415: Imported December 17, 2003 and first released with OpenBSD 3.5.
! 416: </li>
! 417: <li>
! 418: <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a>:
! 419: Started by Ted Lemon and Elliot Poger in 1996.
! 420: Imported January 18, 2004 and first released with OpenBSD 3.5.
! 421: Reworked by Henning Brauer.
! 422: Now maintained by Kenneth Westerback.
! 423: </li>
! 424: <li>
! 425: <a href="https://man.openbsd.org/dhcpd.8">dhcpd(8)</a>:
! 426: Started by Ted Lemon in 1995.
! 427: Imported April 13, 2004 and first released with OpenBSD 3.6.
! 428: Reworked by Henning Brauer.
! 429: Now maintained by Kenneth Westerback.
! 430: </li>
! 431: <li>
! 432: <a href="https://man.openbsd.org/hotplugd.8">hotplugd(8)</a>:
! 433: Started by Alexander Yurchenko.
! 434: Imported May 30, 2004 and first released with OpenBSD 3.6.
! 435: </li>
! 436: <li>
! 437: <a href="http://www.openntpd.org/">OpenNTPD</a>
! 438: including <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>
! 439: and <a href="https://man.openbsd.org/ntpctl.8">ntpctl(8)</a>:
! 440: Written and maintained by Henning Brauer.
! 441: Imported May 31, 2004 and first released with OpenBSD 3.6.
! 442: Portable version maintained by Brent Cook.
! 443: </li>
! 444: <li>
! 445: <a href="https://man.openbsd.org/dpb.1">dpb(1)</a>:
! 446: Started by Nikolay Sturm on August 10, 2004; first available for OpenBSD 3.6.
! 447: Rewritten and maintained by Marc Espie since August 20, 2010.
! 448: </li>
! 449: <li>
! 450: <a href="https://man.openbsd.org/ospfd.8">ospfd(8)</a>,
! 451: <a href="https://man.openbsd.org/ospfctl.8">ospfctl(8)</a>:
! 452: Started by Esben Norby and Claudio Jeker.
! 453: Imported January 28, 2005 and first released with OpenBSD 3.7.
! 454: </li>
! 455: <li>
! 456: <a href="https://man.openbsd.org/ifstated.8">ifstated(8)</a>:
! 457: Started by Marco Pfatschbacher and Ryan McBride.
! 458: Imported January 23, 2004 and first released with OpenBSD 3.8.
! 459: </li>
! 460: <li>
! 461: <a href="https://man.openbsd.org/bioctl.8">bioctl(8)</a>:
! 462: Started by Marco Peereboom.
! 463: Imported March 29, 2005 and first released with OpenBSD 3.8.
! 464: </li>
! 465: <li>
! 466: <a href="https://man.openbsd.org/hostapd.8">hostapd(8)</a>:
! 467: Written and maintained by Reyk Floeter.
! 468: Imported May 26, 2005 and first released with OpenBSD 3.8.
! 469: </li>
! 470: <li>
! 471: <a href="https://man.openbsd.org/watchdogd.8">watchdogd(8)</a>:
! 472: Started by Marc Balmer.
! 473: Imported August 8, 2005 and first released with OpenBSD 3.8.
! 474: </li>
! 475: <li>
! 476: <a href="https://man.openbsd.org/sdiff.1">sdiff(1)</a>:
! 477: Written by Ray Lai.
! 478: Imported December 27, 2005 and first released with OpenBSD 3.9.
! 479: </li>
! 480: <li>
! 481: <a href="https://man.openbsd.org/dvmrpd.8">dvmrpd(8)</a>,
! 482: <a href="https://man.openbsd.org/dvmrpctl.8">dvmrpctl(8)</a>:
! 483: Started by Esben Norby.
! 484: Imported June 1, 2006 and first released with OpenBSD 4.0.
! 485: </li>
! 486: <li>
! 487: <a href="https://man.openbsd.org/ripd.8">ripd(8)</a>,
! 488: <a href="https://man.openbsd.org/ripctl.8">ripctl(8)</a>:
! 489: Started by Michele Marchetto.
! 490: Imported October 18, 2006 and first released with OpenBSD 4.1.
! 491: </li>
! 492: <li>
! 493: <a href="https://man.openbsd.org/pkg-config.1">pkg-config(1)</a>:
! 494: Started by Chris Kuethe and Marc Espie.
! 495: Imported November 27, 2006 and first released with OpenBSD 4.1.
! 496: Now maintained by Jasper Lievisse Adriaanse.
! 497: </li>
! 498: <li>
! 499: <a href="https://man.openbsd.org/relayd.8">relayd(8)</a>
! 500: with <a href="https://man.openbsd.org/relayctl.8">relayctl(8)</a>:
! 501: Started by Pierre-Yves Ritschard and Reyk Floeter.
! 502: Imported December 16, 2006 and first released with OpenBSD 4.1.
! 503: Now maintained by Reyk Floeter and Sebastian Benoit.<br/>
! 504: </li>
! 505: <li>
! 506: <a href="https://man.openbsd.org/cwm.1">cwm(1)</a>:
! 507: Started by <a href="http://monkey.org/~marius/cwm/README">Marius
! 508: Aamodt Eriksen</A> in 2004.
! 509: Imported April 27, 2007 and first released with OpenBSD 4.2.
! 510: Now maintained by Okan Demirmen.
! 511: <a href="https://github.com/chneukirchen/cwm">Portable version</a>
! 512: maintained by Leah Neukirchen.
! 513: </li>
! 514: <li>
! 515: <a href="https://man.openbsd.org/ospf6d.8">ospf6d(8)</a>,
! 516: <a href="https://man.openbsd.org/ospf6ctl.8">ospf6ctl(8)</a>:
! 517: Started by Esben Norby and Claudio Jeker.
! 518: Imported October 8, 2007 and first released with OpenBSD 4.2.
! 519: </li>
! 520: <li>
! 521: <a href="https://man.openbsd.org/libtool.1">libtool(1)</a>:
! 522: Written by Steven Mestdagh and Marc Espie.
! 523: Imported October 28, 2007 and first available for OpenBSD 4.3.
! 524: Now maintained by Marc Espie, Jasper Lievisse Adriaanse,
! 525: and Antoine Jacoutot.
! 526: </li>
! 527: <li>
! 528: <a href="https://man.openbsd.org/snmpd.8">snmpd(8)</a>,
! 529: <a href="https://man.openbsd.org/snmpctl.8">snmpctl(8)</a>:
! 530: Started by Reyk Floeter.
! 531: Imported December 5, 2007 and first released with OpenBSD 4.3.
! 532: Maintained by Reyk Floeter and Bret Lambert.
! 533: </li>
! 534: <li>
! 535: <a href="https://man.openbsd.org/sysmerge.8">sysmerge(8)</a>:
! 536: Written and maintained by Antoine Jacoutot,
! 537: originally forked from mergemaster by Douglas Barton.
! 538: Imported April 22, 2008, first released with OpenBSD 4.4.
! 539: </li>
! 540: <li>
! 541: <a href="https://man.openbsd.org/ypldap.8">ypldap(8)</a>:
! 542: Started by Pierre-Yves Ritschard.
! 543: Imported June 26, 2008 and first released with OpenBSD 4.4.
! 544: </li>
! 545: <li>
! 546: <a href="https://www.opensmtpd.org/">OpenSMTPD</a>
! 547: including <a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a>,
! 548: <a href="https://man.openbsd.org/smtpctl.8">smtpctl(8)</a>,
! 549: <a href="https://man.openbsd.org/makemap.8">makemap(8)</a>:
! 550: Started by Gilles Chehade.
! 551: Imported November 1, 2008 and first released with OpenBSD 4.6.
! 552: Now maintained by Gilles Chehade and Eric Faurot.
! 553: </li>
! 554: <li>
! 555: <a href="http://tmux.github.io/">tmux</a>,
! 556: <a href="https://man.openbsd.org/tmux.1">tmux(1)</a>:
! 557: Started in 2007 and maintained by Nicholas Marriott.
! 558: Imported June 1, 2009, first released with OpenBSD 4.6.
! 559: </li>
! 560: <li>
! 561: <a href="https://man.openbsd.org/ldpd.8">ldpd(8)</a>,
! 562: <a href="https://man.openbsd.org/ldpctl.8">ldpctl(8)</a>:
! 563: Started by Michele Marchetto.
! 564: Imported June 1, 2009 and first released with OpenBSD 4.6.
! 565: Now maintained by Claudio Jeker.
! 566: </li>
! 567: <li>
! 568: <a href="http://mdocml.bsd.lv/">mandoc</a>
! 569: including <a href="https://man.openbsd.org/mandoc.1">mandoc(1)</a>,
! 570: <a href="https://man.openbsd.org/man.1">man(1)</a>,
! 571: <a href="https://man.openbsd.org/apropos.1">apropos(1)</a>,
! 572: <a href="https://man.openbsd.org/makewhatis.8">makewhatis(8)</a>,
! 573: <a href="https://man.openbsd.org/mandoc/man8/man.cgi.8">man.cgi(8)</a>:
! 574: Started by Kristaps Dzonsons in November 2008.
! 575: Imported April 6, 2009, first released with OpenBSD 4.8.
! 576: Now maintained by Ingo Schwarze.
! 577: </li>
! 578: <li>
! 579: <a href="https://man.openbsd.org/ldapd.8">ldapd(8)</a>,
! 580: <a href="https://man.openbsd.org/ldapctl.8">ldapctl(8)</a>:
! 581: Written by Martin Hedenfalk.
! 582: Imported May 31, 2010 and first released with OpenBSD 4.8.
! 583: </li>
! 584: <li>
! 585: <a href="http://www.openiked.org/">OpenIKED</a>
! 586: including <a href="https://man.openbsd.org/iked.8">iked(8)</a>
! 587: and <a href="https://man.openbsd.org/ikectl.8">ikectl(8)</a>:
! 588: Started by Reyk Floeter.
! 589: Imported June 3, 2010 and first released with OpenBSD 4.8.
! 590: Now maintained by Reyk Floeter and Mike Belopuhov.
! 591: </li>
! 592: <li>
! 593: <a href="https://man.openbsd.org/iscsid.8">iscsid(8)</a>,
! 594: <a href="https://man.openbsd.org/iscsictl.8">iscsictl(8)</a>:
! 595: Written and maintained by Claudio Jeker.
! 596: Imported September 24, 2010 and first released with OpenBSD 4.9.
! 597: </li>
! 598: <li>
! 599: <a href="https://man.openbsd.org/rc.d.8">rc.d(8)</a>,
! 600: <a href="https://man.openbsd.org/rc.subr.8">rc.subr(8)</a>:
! 601: Written and maintained by Robert Nagy and Antoine Jacoutot.
! 602: Imported October 26, 2010 and first released with OpenBSD 4.9.
! 603: </li>
! 604: <li>
! 605: <a href="https://man.openbsd.org/tftpd.8">tftpd(8)</a>:
! 606: Written and maintained by David Gwynne.
! 607: Imported March 2, 2012 and first released with OpenBSD 5.2.
! 608: </li>
! 609: <li>
! 610: <a href="https://man.openbsd.org/npppd.8">npppd(8)</a>,
! 611: <a href="https://man.openbsd.org/npppctl.8">npppctl(8)</a>:
! 612: Started by Internet Initiative Japan Inc.
! 613: Imported January 11, 2010, first released with OpenBSD 5.3.
! 614: Maintained by YASUOKA Masahiko.
! 615: </li>
! 616: <li>
! 617: <a href="https://man.openbsd.org/ldomd.8">ldomd(8)</a>,
! 618: <a href="https://man.openbsd.org/ldomctl.8">ldomctl(8)</a>:
! 619: Written and maintained by Mark Kettenis.
! 620: Imported October 26, 2012 and first released with OpenBSD 5.3.
! 621: </li>
! 622: <li>
! 623: <a href="https://man.openbsd.org/sndiod.8">sndiod(8)</a>:
! 624: Written and maintained by Alexandre Ratchov.
! 625: Imported November 23, 2012 and first released with OpenBSD 5.3.
! 626: </li>
! 627: <li>
! 628: <a href="https://man.openbsd.org/cu.1">cu(1)</a>:
! 629: Written and maintained by Nicholas Marriott.
! 630: Imported July 10, 2012 and first released with OpenBSD 5.4.
! 631: </li>
! 632: <li>
! 633: <a href="https://man.openbsd.org/identd.8">identd(8)</a>:
! 634: Written and maintained by David Gwynne.
! 635: Imported March 18, 2013 and first released with OpenBSD 5.4.
! 636: </li>
! 637: <li>
! 638: <a href="https://man.openbsd.org/slowcgi.8">slowcgi(8)</a>:
! 639: Written and maintained by Florian Obser.
! 640: Imported May 23, 2013 and first released with OpenBSD 5.4.
! 641: </li>
! 642: <li>
! 643: <a href="https://man.openbsd.org/signify.1">signify(1)</a>:
! 644: Written and maintained by <a href="http://www.tedunangst.com/flak/post/signify">Ted Unangst</a>.
! 645: Imported December 31, 2013 and first released with OpenBSD 5.5.
! 646: </li>
! 647: <li>
! 648: <a href="https://man.openbsd.org/htpasswd.1">htpasswd(1)</a>:
! 649: Written and maintained by Florian Obser.
! 650: Imported March 17, 2014 and first released with OpenBSD 5.6.
! 651: </li>
! 652: <li>
! 653: <a href="https://www.libressl.org/">LibreSSL</a>:
! 654: Started by Ted Unangst, Bob Beck, Joel Sing, Miod Vallat, Philip Guenther,
! 655: and Theo de Raadt on April 13, 2014, as a fork of OpenSSL 1.0.1g.
! 656: First released with OpenBSD 5.6.
! 657: Portable version maintained by Brent Cook.
! 658: </li>
! 659: <li>
! 660: <a href="https://man.openbsd.org/httpd.8">httpd(8)</a>:
! 661: Started by Reyk Floeter.
! 662: Imported July 12, 2014 and first released with OpenBSD 5.6.
! 663: Maintained by Reyk Floeter and Florian Obser.
! 664: </li>
! 665: <li>
! 666: <a href="https://man.openbsd.org/rcctl.8">rcctl(8)</a>:
! 667: Written and maintained by Antoine Jacoutot.
! 668: Imported August 19, 2014 and first released with OpenBSD 5.7.
! 669: </li>
! 670: <li>
! 671: <a href="https://man.openbsd.org/file.1">file(1)</a>:
! 672: Rewritten from scratch and maintained by Nicholas Marriott.
! 673: Imported April 24, 2015 and first released with OpenBSD 5.8.
! 674: </li>
! 675: <li>
! 676: <a href="https://man.openbsd.org/doas.1">doas(1)</a>:
! 677: Written and maintained by Ted Unangst.
! 678: Imported July 16, 2015 and first released with OpenBSD 5.8.
! 679: </li>
! 680: <li>
! 681: <a href="https://man.openbsd.org/radiusd.8">radiusd(8)</a>:
! 682: Written and maintained by YASUOKA Masahiko.
! 683: Imported July 21, 2015 and first released with OpenBSD 5.8.
! 684: </li>
! 685: <li>
! 686: <a href="https://man.openbsd.org/eigrpd.8">eigrpd(8)</a>,
! 687: <a href="https://man.openbsd.org/eigrpctl.8">eigrpctl(8)</a>:
! 688: Written and maintained by Renato Westphal.
! 689: Imported October 2, 2015 and first released with OpenBSD 5.9.
! 690: </li>
! 691: <li>
! 692: <a href="https://man.openbsd.org/rebound.8">rebound(8)</a>:
! 693: Written and maintained by Ted Unangst.
! 694: Imported October 15, 2015 and first released with OpenBSD 5.9.
! 695: </li>
! 696: <li>
! 697: <a href="https://man.openbsd.org/vmm.4">vmm(4)</a>,
! 698: <a href="https://man.openbsd.org/vmd.8">vmd(8)</a>,
! 699: <a href="https://man.openbsd.org/vmctl.8">vmctl(8)</a>:
! 700: Written and maintained by Mike Larkin and Reyk Floeter.
! 701: Imported November 13, 2015 and first released with OpenBSD 5.9.
! 702: </li>
! 703: <li>
! 704: <a href="https://man.openbsd.org/pdisk.8">pdisk(8)</a>:
! 705: Originally written by Eryk Vershen in 1996-1998,
! 706: rewritten and maintained by Kenneth Westerback since January 11, 2016
! 707: and first released with OpenBSD 5.9.
! 708: </li>
! 709: <li>
! 710: <a href="https://man.openbsd.org/mknod.8">mknod(8)</a>:
! 711: Original version from Version 6 AT&T UNIX (1975),
! 712: last rewritten by Marc Espie on March 5, 2016
! 713: and first released with OpenBSD 6.0.
! 714: </li>
! 715: <li>
! 716: <a href="https://man.openbsd.org/audioctl.1">audioctl(1)</a>:
! 717: Originally written by Lennart Augustsson in 1997,
! 718: rewritten and maintained by Alexandre Ratchov since June 21, 2016
! 719: and first released with OpenBSD 6.0.
! 720: </li>
! 721: <li>
! 722: <a href="https://man.openbsd.org/switchd.8">switchd(8)</a>,
! 723: <a href="https://man.openbsd.org/switchctl.8">switchctl(8)</a>:
! 724: Written and maintained by Reyk Floeter.
! 725: Imported July 19, 2016; released with OpenBSD 6.1.
! 726: </li>
! 727: <li>
! 728: <a href="https://man.openbsd.org/acme-client.1">acme-client(1)</a>:
! 729: Written by Kristaps Dzonsons, imported August 31, 2016; released
! 730: with OpenBSD 6.1.
! 731: </li>
! 732: <li>
! 733: <a href="https://man.openbsd.org/syspatch.8">syspatch(8)</a>:
! 734: Written and maintained by Antoine Jacoutot.
! 735: Imported September 5, 2016; released with OpenBSD 6.1.
! 736: </li>
! 737: <li>
! 738: <a href="https://man.openbsd.org/ping.8">ping(8)</a>:
! 739: Restructured to include IPv6 functionality and maintained by Florian Obser.
! 740: The separate
! 741: <a href="https://man.openbsd.org/OpenBSD-6.0/ping6.8">ping6(8)</a>
! 742: was superseded on September 17, 2016,
! 743: and the new, combined version was released with OpenBSD 6.1.
! 744: </li>
! 745: <li>
! 746: <a href="https://man.openbsd.org/xenodm.1">xenodm(1)</a>:
! 747: Cleaned-up fork of
! 748: <a href="https://man.openbsd.org/OpenBSD-6.0/xdm.1">xdm(1)</a>
! 749: maintained by Matthieu Herrb.
! 750: Imported October 23, 2016; released with OpenBSD 6.1.
! 751: </li>
! 752: <li>
! 753: <a href="https://man.openbsd.org/ocspcheck.8">ocspcheck(8)</a>:
! 754: Written and maintained by Bob Beck.
! 755: Imported January 24, 2017; released with OpenBSD 6.1.
! 756: </li>
! 757: <li>
! 758: <a href="https://man.openbsd.org/slaacd.8">slaacd(8)</a>:
! 759: Written and maintained by Florian Obser.
! 760: Imported March 18, 2017; released with OpenBSD 6.2.
! 761: </li>
1.1 schwarze 762: </ul>
763:
1.11 deraadt 764: <h3>Projects maintained by OpenBSD developers outside OpenBSD</h3>
1.1 schwarze 765:
766: <ul>
1.59 ! job 767: <li>
! 768: <a href="http://www.sudo.ws/">sudo</a>:
! 769: Started by Bob Coggeshall and Cliff Spencer around 1980.
! 770: Imported November 18, 1999, first released with OpenBSD 2.7.
! 771: Now maintained by Todd Miller.
! 772: </li>
! 773: <li>
! 774: <a href="http://bulabula.org/femail/">femail</a>:
! 775: Written and maintained by Henning Brauer.
! 776: Started in 2005, port available since September 22, 2005.
! 777: </li>
! 778: <li>
! 779: <a href="http://www.midish.org/">midish</a>:
! 780: Written and maintained by Alexandre Ratchov.
! 781: Started in 2003, port available since November 4, 2005.
! 782: </li>
! 783: <li>
! 784: <a href="https://github.com/nicm/fdm">fdm</a>:
! 785: Written and maintained by Nicholas Marriott.
! 786: Started in 2006, port available since January 18, 2007.
! 787: </li>
! 788: <li>
! 789: <a href="https://github.com/ajacoutot/toad/">toad</a>:
! 790: Written and maintained by Antoine Jacoutot.
! 791: Started in 2013, port available since October 8, 2013.
! 792: </li>
! 793: <li>
! 794: <a href="http://jasperla.github.io/portroach/">portroach</a>:
! 795: Written and maintained by Jasper Lievisse Adriaanse,
! 796: originally forked from FreeBSD's portscout.
! 797: Started in 2014, port available since September 5, 2014.
! 798: </li>
! 799: <li>
! 800: <a href="https://github.com/yasuoka/cvs2gitdump">cvs2gitdump</a>:
! 801: Written and maintained by YASUOKA Masahiko.
! 802: Started in 2012, port available since August 1, 2016.
! 803: </li>
1.1 schwarze 804: </ul>
805:
806: </body>
807: </html>