Annotation of www/innovations.html, Revision 1.68
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>,
1.67 schwarze 67: <a href="https://man.openbsd.org/relayd.8">relayd(8)</a>,
1.59 job 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>
1.65 kurt 133: <strong>Position-independent executables (PIE)</strong>:
1.59 job 134: OpenBSD 5.3 was the first widely used operating system to enable it
135: globally by default, on seven hardware platforms.
1.65 kurt 136: Implemented in November 2008 by
137: <a href="https://www.openbsd.org/papers/nycbsdcon08-pie/">Kurt Miller</a>
138: and enabled by default by
139: <a href="https://www.openbsd.org/papers/asiabsdcon2015-pie-slides.pdf">Pascal Stumpf</a>
140: in August 2012.
1.59 job 141: </li>
142: <li>
143: <strong>Random-data memory</strong>:
1.68 ! deraadt 144: the ability to specify that a variable should be initialized
! 145: at load time with random byte values (placed into a new ELF
! 146: <b>.openbsd.randomdata</b> section) was implemented in
! 147: OpenBSD 5.3 by Matthew Dempsky.
1.59 job 148: </li>
149: <li>
150: <strong>Stack protector per shared object</strong>:
151: using the random-data memory feature, each shared object was given its
152: own stack protector cookie in OpenBSD 5.3 by Matthew Dempsky.
153: </li>
154: <li>
155: <strong>Static-PIE</strong>:
156: Position-independent static binaries for /bin, /sbin and ramdisks.
1.65 kurt 157: Implemented for OpenBSD 5.7 by Kurt Miller and Mark Kettenis.
1.59 job 158: </li>
159: <li>
160: <strong>SROP</strong>
161: (<a href="https://man.openbsd.org/sigreturn.2">sigreturn(2)</a>
162: oriented programming) mitigation: Researched by
163: <a href="http://www.cs.vu.nl/~herbertb/papers/srop_sp14.pdf">Eric Bosman</a>
164: and Herbert Bos in 2014, implemented by Theo de Raadt in May 2016,
165: enabled by default since OpenBSD 6.0.
166: </li>
167: <li>
168: <strong>Library order randomization</strong>:
169: In <a href="https://man.openbsd.org/rc.8">rc(8)</a>, re-link
170: <code>libc.so</code>, <code>libcrypto</code>, and <code>ld.so</code>
171: on startup, placing the objects in a random order.
172: Theo de Raadt and Robert Peichaer, May 2016,
173: enabled by default since OpenBSD 6.0 and 6.2.
174: </li>
175: <li>
176: Kernel-assisted lazy-binding for W^X safety in multi-threaded programs.
177: A new syscall <a href="https://man.openbsd.org/kbind.2">kbind(2)</a>
178: permits lazy-binding to be W^X safe in multi-threaded programs.
179: Implemented for OpenBSD 5.9 by Philip Guenther in July 2015.
180: </li>
181: <li>
182: Process layouts in memory tightened to remove execute permission from
183: all segmented, non-instruction data and to remove write permission from
184: data that is only modified during loading and relocation.
185: By combining the RELRO (Read-Only after Relocation) design from the
186: GNU project with the original ASLR work from OpenBSD 3.3 and
187: strict lazy-binding work from OpenBSD 5.9, this is applied to not
188: just a subset of programs and libraries but rather to all programs
189: and libraries.
190: Implemented for OpenBSD 6.1 by Philip Guenther in August 2016.
191: </li>
192: <li>
193: Use of <strong>fork+exec in privilege separated programs</strong>. The
194: strategy is to give each process a fresh & unique address space for
195: ASLR, stack protector -- as protection against address space discovery attacks.
196: Implemented first by
197: Damien Miller (<a href="https://man.openbsd.org/sshd.8">sshd(8)</a> 2004),
198: Claudio Jeker (<a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>, 2015),
199: Eric Faurot (<a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a>, 2016),
200: Rafael Zalamena (various, 2016), and others.
201: </li>
202: <li>
203: <strong>trapsleds</strong>:
204: Reduction of incidental NOP instructions/sequences in the instruction
205: stream which could be useful potentially for ROP attack methods to
206: innaccurately target gadgets. These NOP sequences are converted into
207: trap sequences where possible. Todd Mortimer and Theo de Raadt, June
208: 2017.
209: </li>
210: <li>
211: <strong>Kernel relinking at boot</strong>:
212: the .o files of the kernel are relinked in random order from a
213: link-kit, before every reboot. This provides substantial interior
214: randomization in the kernel's text and data segments for layout and
215: relative branches/calls. Basically a unique address space for each
216: kernel boot, similar to the userland fork+exec model described above
217: but for the kernel. Theo de Raadt, June 2017.
218: </li>
1.61 deraadt 219: <li>
220: Rearranged i386/amd64 register allocator order in
221: <a href="https://man.openbsd.org/clang.1">clang(1)</a>
222: to reduce polymorphic RET instructions:
223: Todd Mortimer, November 20, 2017.
224: </li>
1.64 deraadt 225: <li>
1.66 schwarze 226: <b>MAP_STACK</b> addition to
1.64 deraadt 227: <a href="https://man.openbsd.org/mmap.2">mmap(2)</a>
228: allows opportunistic verification that the stack-register
229: points at stack memory, therefore catching pivots to non-stack
230: memory (sometimes used in ROP attacks).
231: Theo de Raadt, April 12, 2018.
232: </li>
1.68 ! deraadt 233: <li>
! 234: <b>RETGUARD</b> is a replacement for the <b>stack-protector</b>
! 235: which uses a per-function random cookie (located in the ELF
! 236: <b>.openbsd.randomdata</b> section to consistency check the
! 237: return address on the stack. Implemented for AMD64 and ARM64
! 238: by Todd Mortimer in OpenBSD 6.4.
! 239: </li>
! 240:
1.17 mlarkin 241: </ul>
1.1 schwarze 242:
1.59 job 243: <h3>Functions</h3>
1.1 schwarze 244:
245: <ul>
1.59 job 246: <li>
1.62 tj 247: <a href="https://man.openbsd.org/issetugid.2">issetugid(2)</a>:
248: Theo de Raadt, August 25, 1996, OpenBSD 2.0
249: </li>
1.63 schwarze 250: <li>
1.59 job 251: <a href="https://man.openbsd.org/arc4random.3">arc4random(3)</a>:
252: David Mazieres, December 28, 1996, OpenBSD 2.1
253: </li>
254: <li>
255: <a href="https://man.openbsd.org/bcrypt.3">bcrypt(3)</a>:
256: Implemented by <a href="https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html">Niels Provos and David Mazieres</a>
257: Imported February 13, 1997 and first released with OpenBSD 2.1.
258: </li>
259: <li>
260: <a href="https://man.openbsd.org/strlcpy.3">strlcpy(3)</a>,
261: <a href="https://man.openbsd.org/strlcat.3">strlcat(3)</a>:
262: Todd Miller and Theo de Raadt, July 1, 1998, OpenBSD 2.4
263: </li>
264: <li>
265: <a href="https://man.openbsd.org/strtonum.3">strtonum(3)</a>:
266: Ted Unangst, Todd Miller, and Theo de Raadt, May 3, 2004, OpenBSD 3.6
267: </li>
268: <li>
269: <a href="https://man.openbsd.org/imsg_init.3">imsg</a>:
270: Message passing API, written by Henning Brauer.
271: In libutil since May 26, 2010, OpenBSD 4.8;
272: used by various daemons before that.
273: </li>
274: <li>
275: <a href="https://man.openbsd.org/timingsafe_bcmp.3">timingsafe_bcmp(3)</a>:
276: Damien Miller, July 13, 2010, OpenBSD 4.9
277: </li>
278: <li>
279: <a href="https://man.openbsd.org/explicit_bzero.3">explicit_bzero(3)</a>:
280: Ted Unangst and Matthew Dempsky, January 22, 2014, OpenBSD 5.5
281: </li>
282: <li>
283: <a href="https://man.openbsd.org/ohash_init.3">ohash</a>:
284: Written and maintained by Marc Espie.
285: In libutil since May 12, 2014, OpenBSD 5.6;
286: used by make(1) and m4(1) before that.
287: </li>
288: <li>
289: <a href="https://man.openbsd.org/asr_run.3">asr</a>:
290: Replacement resolver written and maintained by Eric Faurot.
291: Imported April 14, 2012; activated on March 26, 2014, OpenBSD 5.6.
292: </li>
293: <li>
294: <a href="https://man.openbsd.org/reallocarray.3">reallocarray(3)</a>:
295: Theo de Raadt and Ted Unangst, April 22, 2014, OpenBSD 5.6
296: </li>
297: <li>
298: <a href="https://man.openbsd.org/getentropy.2">getentropy(2)</a>:
299: Matthew Dempsky and Theo de Raadt, June 13, 2014, OpenBSD 5.6
300: </li>
301: <li>
302: <a href="https://man.openbsd.org/sendsyslog.2">sendsyslog(2)</a>:
303: Theo de Raadt, July 10, 2014, OpenBSD 5.6
304: </li>
305: <li>
306: <a href="https://man.openbsd.org/timingsafe_memcmp.3">timingsafe_memcmp(3)</a>:
307: Matthew Dempsky, July 13, 2014, OpenBSD 5.6
308: </li>
309: <li>
310: <a href="https://man.openbsd.org/pledge.2">pledge(2)</a>:
311: Theo de Raadt, July 19, 2015, OpenBSD 5.9
312: </li>
313: <li>
314: <a href="https://man.openbsd.org/getpwnam_shadow.3">getpwnam_shadow(3)</a>,
315: <a href="https://man.openbsd.org/getpwuid_shadow.3">getpwuid_shadow(3)</a>:
316: Ted Unangst and Theo de Raadt, November 18, 2015, OpenBSD 5.9
317: </li>
318: <li>
319: <a href="https://man.openbsd.org/recallocarray.3">recallocarray(3)</a>:
320: Otto Moerbeek, Joel Sing and Theo de Raadt, March 6, 2017, OpenBSD 6.1
321: </li>
322: <li>
323: <a href="https://man.openbsd.org/freezero.3">freezero(3)</a>:
324: Otto Moerbeek, April 10, 2017, OpenBSD 6.2
1.68 ! deraadt 325: </li>
! 326: <li>
! 327: <a href="https://man.openbsd.org/unveil.2">unveil(2)</a>:
! 328: Theo de Raadt and Bob Beck, July 13, 2018, OpenBSD 6.4
1.60 deraadt 329: </li>
1.16 deraadt 330: </ul>
331:
1.59 job 332:
333: <h3>Programs and subsystems</h3>
1.16 deraadt 334:
335: <ul>
1.59 job 336: <li>
337: <a href="https://man.openbsd.org/ypbind.8">ypbind(8)</a>,
338: <a href="https://man.openbsd.org/ypset.8">ypset(8)</a>,
339: <a href="https://man.openbsd.org/ypcat.1">ypcat(1)</a>,
340: <a href="https://man.openbsd.org/ypmatch.1">ypmatch(1)</a>,
341: <a href="https://man.openbsd.org/ypwhich.1">ypwhich(1)</a>,
342: and libc support: Started by Theo de Raadt.
343: Imported April 26, 1993 and first released with NetBSD 0.9.
344: </li>
345: <li>
346: <a href="https://man.openbsd.org/ypserv.8">ypserv(8)</a>:
347: Started by Mats O. Jansson in 1994.
348: Imported October 23, 1995 and first released with OpenBSD 2.0.
349: </li>
350: <li>
351: <a href="https://man.openbsd.org/mopd.8">mopd(8)</a>:
352: Started by Mats O. Jansson in 1993.
353: Imported September 21, 1996 and first released with OpenBSD 2.0.
354: </li>
355: <li>
356: <a href="anoncvs.html">AnonCVS</a>:
357: Designed and implemented by Chuck Cranor and Theo de Raadt in 1995
358: (<a href="papers/anoncvs-paper.pdf">paper</a>,
359: <a href="papers/anoncvs-slides.pdf">slides</a>)
360: </li>
361: <li>
362: <a href="https://man.openbsd.org/aucat.1">aucat(1)</a>:
363: Started by Kenneth Stailey.
364: Imported January 2, 1997 and first released with OpenBSD 2.1.
365: Now maintained by Alexandre Ratchov.
366: </li>
367: <li>
368: <a href="https://www.openssh.com/">OpenSSH</a>
369: including <a href="https://man.openbsd.org/ssh.1">ssh(1)</a>,
370: <a href="https://man.openbsd.org/scp.1">scp(1)</a>,
371: <a href="https://man.openbsd.org/sftp.1">sftp(1)</a>,
372: <a href="https://man.openbsd.org/ssh-add.1">ssh-add(1)</a>,
373: <a href="https://man.openbsd.org/ssh-agent.1">ssh-agent(1)</a>,
374: <a href="https://man.openbsd.org/ssh-keygen.1">ssh-keygen(1)</a>,
375: <a href="https://man.openbsd.org/sshd.8">sshd(8)</a>,
376: <a href="https://man.openbsd.org/sftp-server.8">sftp-server(8)</a>:
377: Started by Aaron Campbell, Bob Beck, Dug Song, Markus Friedl,
378: Niels Provos, and Theo de Raadt
379: as a fork of SSH 1.2.12 by Tatu Ylonen.
380: Imported September 26, 1999 and first released with OpenBSD 2.6.
381: Now maintained by Markus Friedl, Damien Miller, Darren Tucker, and
382: Theo de Raadt.
383: </li>
384: <li>
385: <a href="https://man.openbsd.org/mg.1">mg(1)</a>:
386: Started by Dave Conroy in November 1986.
387: Imported February 25, 2000 and first released with OpenBSD 2.7.
388: Now maintained by Mark Lumsden.
389: </li>
390: <li>
391: <a href="https://man.openbsd.org/m4.1">m4(1)</a>:
392: Originally implemented by Ozan Yigit and Richard A. O'Keefe for 4.3BSD-Reno.
393: Considerably extended and maintained by Marc Espie since 1999.
394: </li>
395: <li>
396: <a href="https://man.openbsd.org/pf.4">pf(4)</a>,
397: <a href="https://man.openbsd.org/pfctl.8">pfctl(8)</a>,
398: <a href="https://man.openbsd.org/pflogd.8">pflogd(8)</a>,
399: <a href="https://man.openbsd.org/authpf.8">authpf(8)</a>,
400: <a href="https://man.openbsd.org/ftp-proxy.8">ftp-proxy(8)</a>:
401: Started by Daniel Hartmeier as a replacement for the non-free ipf by
402: Darren Reed. Imported June 24, 2001 and first released with OpenBSD
403: 3.0. Now maintained by Henning Brauer.
404: </li>
405: <li>
406: <a href="https://man.openbsd.org/OpenBSD-5.9/systrace.4">systrace(4)</a>,
407: <a href="https://man.openbsd.org/OpenBSD-5.9/systrace.1">systrace(1)</a>:
408: Started by Niels Provos.
409: Imported June 4, 2002 and first released with OpenBSD 3.2.
410: Deleted after OpenBSD 5.9 because
411: <a href="https://man.openbsd.org/pledge.2">pledge(2)</a> is even better.
412: </li>
413: <li>
414: <a href="https://man.openbsd.org/spamd.8">spamd(8)</a>:
415: Written by Bob Beck. Imported December 21, 2002 and first released with
416: OpenBSD 3.3.
417: </li>
418: <li>
419: <a href="https://man.openbsd.org/dc.1">dc(1)</a>:
420: Written and maintained by Otto Moerbeek.
421: Imported September 19, 2003 and first released with OpenBSD 3.5.
422: </li>
423: <li>
424: <a href="https://man.openbsd.org/bc.1">bc(1)</a>:
425: Written and maintained by Otto Moerbeek.
426: Imported September 25, 2003 and first released with OpenBSD 3.5.
427: </li>
428: <li>
429: <a href="https://man.openbsd.org/sensorsd.8">sensorsd(8)</a>:
430: Started by Henning Brauer.
431: Imported September 24, 2003 and first released with OpenBSD 3.5.
432: Reworked by Constantine A. Murenin.
433: </li>
434: <li>
435: <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a>:
436: Written and maintained by Marc Espie.
437: Imported October 16, 2003 and first released with OpenBSD 3.5.
438: </li>
439: <li>
440: <a href="https://man.openbsd.org/carp.4">carp(4)</a>:
441: Written by Mickey Shalayeff, Markus Friedl, Marco Pfatschbacher,
442: and Ryan McBride.
443: Imported October 17, 2003 and first released with OpenBSD 3.5.
444: </li>
445: <li>
446: <a href="http://www.openbgpd.org/">OpenBGPD</a>
447: including <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>
448: and <a href="https://man.openbsd.org/bgpctl.8">bgpctl(8)</a>:
449: Written and maintained by Henning Brauer and Claudio Jeker,
450: and also maintained by Peter Hessler.
451: Imported December 17, 2003 and first released with OpenBSD 3.5.
452: </li>
453: <li>
454: <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a>:
455: Started by Ted Lemon and Elliot Poger in 1996.
456: Imported January 18, 2004 and first released with OpenBSD 3.5.
457: Reworked by Henning Brauer.
458: Now maintained by Kenneth Westerback.
459: </li>
460: <li>
461: <a href="https://man.openbsd.org/dhcpd.8">dhcpd(8)</a>:
462: Started by Ted Lemon in 1995.
463: Imported April 13, 2004 and first released with OpenBSD 3.6.
464: Reworked by Henning Brauer.
465: Now maintained by Kenneth Westerback.
466: </li>
467: <li>
468: <a href="https://man.openbsd.org/hotplugd.8">hotplugd(8)</a>:
469: Started by Alexander Yurchenko.
470: Imported May 30, 2004 and first released with OpenBSD 3.6.
471: </li>
472: <li>
473: <a href="http://www.openntpd.org/">OpenNTPD</a>
474: including <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>
475: and <a href="https://man.openbsd.org/ntpctl.8">ntpctl(8)</a>:
476: Written and maintained by Henning Brauer.
477: Imported May 31, 2004 and first released with OpenBSD 3.6.
478: Portable version maintained by Brent Cook.
479: </li>
480: <li>
481: <a href="https://man.openbsd.org/dpb.1">dpb(1)</a>:
482: Started by Nikolay Sturm on August 10, 2004; first available for OpenBSD 3.6.
483: Rewritten and maintained by Marc Espie since August 20, 2010.
484: </li>
485: <li>
486: <a href="https://man.openbsd.org/ospfd.8">ospfd(8)</a>,
487: <a href="https://man.openbsd.org/ospfctl.8">ospfctl(8)</a>:
488: Started by Esben Norby and Claudio Jeker.
489: Imported January 28, 2005 and first released with OpenBSD 3.7.
490: </li>
491: <li>
492: <a href="https://man.openbsd.org/ifstated.8">ifstated(8)</a>:
493: Started by Marco Pfatschbacher and Ryan McBride.
494: Imported January 23, 2004 and first released with OpenBSD 3.8.
495: </li>
496: <li>
497: <a href="https://man.openbsd.org/bioctl.8">bioctl(8)</a>:
498: Started by Marco Peereboom.
499: Imported March 29, 2005 and first released with OpenBSD 3.8.
500: </li>
501: <li>
502: <a href="https://man.openbsd.org/hostapd.8">hostapd(8)</a>:
503: Written and maintained by Reyk Floeter.
504: Imported May 26, 2005 and first released with OpenBSD 3.8.
505: </li>
506: <li>
507: <a href="https://man.openbsd.org/watchdogd.8">watchdogd(8)</a>:
508: Started by Marc Balmer.
509: Imported August 8, 2005 and first released with OpenBSD 3.8.
510: </li>
511: <li>
512: <a href="https://man.openbsd.org/sdiff.1">sdiff(1)</a>:
513: Written by Ray Lai.
514: Imported December 27, 2005 and first released with OpenBSD 3.9.
515: </li>
516: <li>
517: <a href="https://man.openbsd.org/dvmrpd.8">dvmrpd(8)</a>,
518: <a href="https://man.openbsd.org/dvmrpctl.8">dvmrpctl(8)</a>:
519: Started by Esben Norby.
520: Imported June 1, 2006 and first released with OpenBSD 4.0.
521: </li>
522: <li>
523: <a href="https://man.openbsd.org/ripd.8">ripd(8)</a>,
524: <a href="https://man.openbsd.org/ripctl.8">ripctl(8)</a>:
525: Started by Michele Marchetto.
526: Imported October 18, 2006 and first released with OpenBSD 4.1.
527: </li>
528: <li>
529: <a href="https://man.openbsd.org/pkg-config.1">pkg-config(1)</a>:
530: Started by Chris Kuethe and Marc Espie.
531: Imported November 27, 2006 and first released with OpenBSD 4.1.
532: Now maintained by Jasper Lievisse Adriaanse.
533: </li>
534: <li>
535: <a href="https://man.openbsd.org/relayd.8">relayd(8)</a>
536: with <a href="https://man.openbsd.org/relayctl.8">relayctl(8)</a>:
537: Started by Pierre-Yves Ritschard and Reyk Floeter.
538: Imported December 16, 2006 and first released with OpenBSD 4.1.
539: Now maintained by Reyk Floeter and Sebastian Benoit.<br/>
540: </li>
541: <li>
542: <a href="https://man.openbsd.org/cwm.1">cwm(1)</a>:
543: Started by <a href="http://monkey.org/~marius/cwm/README">Marius
544: Aamodt Eriksen</A> in 2004.
545: Imported April 27, 2007 and first released with OpenBSD 4.2.
546: Now maintained by Okan Demirmen.
547: <a href="https://github.com/chneukirchen/cwm">Portable version</a>
548: maintained by Leah Neukirchen.
549: </li>
550: <li>
551: <a href="https://man.openbsd.org/ospf6d.8">ospf6d(8)</a>,
552: <a href="https://man.openbsd.org/ospf6ctl.8">ospf6ctl(8)</a>:
553: Started by Esben Norby and Claudio Jeker.
554: Imported October 8, 2007 and first released with OpenBSD 4.2.
555: </li>
556: <li>
557: <a href="https://man.openbsd.org/libtool.1">libtool(1)</a>:
558: Written by Steven Mestdagh and Marc Espie.
559: Imported October 28, 2007 and first available for OpenBSD 4.3.
560: Now maintained by Marc Espie, Jasper Lievisse Adriaanse,
561: and Antoine Jacoutot.
562: </li>
563: <li>
564: <a href="https://man.openbsd.org/snmpd.8">snmpd(8)</a>,
565: <a href="https://man.openbsd.org/snmpctl.8">snmpctl(8)</a>:
566: Started by Reyk Floeter.
567: Imported December 5, 2007 and first released with OpenBSD 4.3.
568: Maintained by Reyk Floeter and Bret Lambert.
569: </li>
570: <li>
571: <a href="https://man.openbsd.org/sysmerge.8">sysmerge(8)</a>:
572: Written and maintained by Antoine Jacoutot,
573: originally forked from mergemaster by Douglas Barton.
574: Imported April 22, 2008, first released with OpenBSD 4.4.
575: </li>
576: <li>
577: <a href="https://man.openbsd.org/ypldap.8">ypldap(8)</a>:
578: Started by Pierre-Yves Ritschard.
579: Imported June 26, 2008 and first released with OpenBSD 4.4.
580: </li>
581: <li>
582: <a href="https://www.opensmtpd.org/">OpenSMTPD</a>
583: including <a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a>,
584: <a href="https://man.openbsd.org/smtpctl.8">smtpctl(8)</a>,
585: <a href="https://man.openbsd.org/makemap.8">makemap(8)</a>:
586: Started by Gilles Chehade.
587: Imported November 1, 2008 and first released with OpenBSD 4.6.
588: Now maintained by Gilles Chehade and Eric Faurot.
589: </li>
590: <li>
591: <a href="http://tmux.github.io/">tmux</a>,
592: <a href="https://man.openbsd.org/tmux.1">tmux(1)</a>:
593: Started in 2007 and maintained by Nicholas Marriott.
594: Imported June 1, 2009, first released with OpenBSD 4.6.
595: </li>
596: <li>
597: <a href="https://man.openbsd.org/ldpd.8">ldpd(8)</a>,
598: <a href="https://man.openbsd.org/ldpctl.8">ldpctl(8)</a>:
599: Started by Michele Marchetto.
600: Imported June 1, 2009 and first released with OpenBSD 4.6.
601: Now maintained by Claudio Jeker.
602: </li>
603: <li>
604: <a href="http://mdocml.bsd.lv/">mandoc</a>
605: including <a href="https://man.openbsd.org/mandoc.1">mandoc(1)</a>,
606: <a href="https://man.openbsd.org/man.1">man(1)</a>,
607: <a href="https://man.openbsd.org/apropos.1">apropos(1)</a>,
608: <a href="https://man.openbsd.org/makewhatis.8">makewhatis(8)</a>,
1.67 schwarze 609: <a href="https://man.openbsd.org/man.cgi.8">man.cgi(8)</a>:
1.59 job 610: Started by Kristaps Dzonsons in November 2008.
611: Imported April 6, 2009, first released with OpenBSD 4.8.
612: Now maintained by Ingo Schwarze.
613: </li>
614: <li>
615: <a href="https://man.openbsd.org/ldapd.8">ldapd(8)</a>,
616: <a href="https://man.openbsd.org/ldapctl.8">ldapctl(8)</a>:
617: Written by Martin Hedenfalk.
618: Imported May 31, 2010 and first released with OpenBSD 4.8.
619: </li>
620: <li>
621: <a href="http://www.openiked.org/">OpenIKED</a>
622: including <a href="https://man.openbsd.org/iked.8">iked(8)</a>
623: and <a href="https://man.openbsd.org/ikectl.8">ikectl(8)</a>:
624: Started by Reyk Floeter.
625: Imported June 3, 2010 and first released with OpenBSD 4.8.
626: Now maintained by Reyk Floeter and Mike Belopuhov.
627: </li>
628: <li>
629: <a href="https://man.openbsd.org/iscsid.8">iscsid(8)</a>,
630: <a href="https://man.openbsd.org/iscsictl.8">iscsictl(8)</a>:
631: Written and maintained by Claudio Jeker.
632: Imported September 24, 2010 and first released with OpenBSD 4.9.
633: </li>
634: <li>
635: <a href="https://man.openbsd.org/rc.d.8">rc.d(8)</a>,
636: <a href="https://man.openbsd.org/rc.subr.8">rc.subr(8)</a>:
637: Written and maintained by Robert Nagy and Antoine Jacoutot.
638: Imported October 26, 2010 and first released with OpenBSD 4.9.
639: </li>
640: <li>
641: <a href="https://man.openbsd.org/tftpd.8">tftpd(8)</a>:
642: Written and maintained by David Gwynne.
643: Imported March 2, 2012 and first released with OpenBSD 5.2.
644: </li>
645: <li>
646: <a href="https://man.openbsd.org/npppd.8">npppd(8)</a>,
647: <a href="https://man.openbsd.org/npppctl.8">npppctl(8)</a>:
648: Started by Internet Initiative Japan Inc.
649: Imported January 11, 2010, first released with OpenBSD 5.3.
650: Maintained by YASUOKA Masahiko.
651: </li>
652: <li>
653: <a href="https://man.openbsd.org/ldomd.8">ldomd(8)</a>,
654: <a href="https://man.openbsd.org/ldomctl.8">ldomctl(8)</a>:
655: Written and maintained by Mark Kettenis.
656: Imported October 26, 2012 and first released with OpenBSD 5.3.
657: </li>
658: <li>
659: <a href="https://man.openbsd.org/sndiod.8">sndiod(8)</a>:
660: Written and maintained by Alexandre Ratchov.
661: Imported November 23, 2012 and first released with OpenBSD 5.3.
662: </li>
663: <li>
664: <a href="https://man.openbsd.org/cu.1">cu(1)</a>:
665: Written and maintained by Nicholas Marriott.
666: Imported July 10, 2012 and first released with OpenBSD 5.4.
667: </li>
668: <li>
669: <a href="https://man.openbsd.org/identd.8">identd(8)</a>:
670: Written and maintained by David Gwynne.
671: Imported March 18, 2013 and first released with OpenBSD 5.4.
672: </li>
673: <li>
674: <a href="https://man.openbsd.org/slowcgi.8">slowcgi(8)</a>:
675: Written and maintained by Florian Obser.
676: Imported May 23, 2013 and first released with OpenBSD 5.4.
677: </li>
678: <li>
679: <a href="https://man.openbsd.org/signify.1">signify(1)</a>:
680: Written and maintained by <a href="http://www.tedunangst.com/flak/post/signify">Ted Unangst</a>.
681: Imported December 31, 2013 and first released with OpenBSD 5.5.
682: </li>
683: <li>
684: <a href="https://man.openbsd.org/htpasswd.1">htpasswd(1)</a>:
685: Written and maintained by Florian Obser.
686: Imported March 17, 2014 and first released with OpenBSD 5.6.
687: </li>
688: <li>
689: <a href="https://www.libressl.org/">LibreSSL</a>:
690: Started by Ted Unangst, Bob Beck, Joel Sing, Miod Vallat, Philip Guenther,
691: and Theo de Raadt on April 13, 2014, as a fork of OpenSSL 1.0.1g.
692: First released with OpenBSD 5.6.
693: Portable version maintained by Brent Cook.
694: </li>
695: <li>
696: <a href="https://man.openbsd.org/httpd.8">httpd(8)</a>:
697: Started by Reyk Floeter.
698: Imported July 12, 2014 and first released with OpenBSD 5.6.
699: Maintained by Reyk Floeter and Florian Obser.
700: </li>
701: <li>
702: <a href="https://man.openbsd.org/rcctl.8">rcctl(8)</a>:
703: Written and maintained by Antoine Jacoutot.
704: Imported August 19, 2014 and first released with OpenBSD 5.7.
705: </li>
706: <li>
707: <a href="https://man.openbsd.org/file.1">file(1)</a>:
708: Rewritten from scratch and maintained by Nicholas Marriott.
709: Imported April 24, 2015 and first released with OpenBSD 5.8.
710: </li>
711: <li>
712: <a href="https://man.openbsd.org/doas.1">doas(1)</a>:
713: Written and maintained by Ted Unangst.
714: Imported July 16, 2015 and first released with OpenBSD 5.8.
715: </li>
716: <li>
717: <a href="https://man.openbsd.org/radiusd.8">radiusd(8)</a>:
718: Written and maintained by YASUOKA Masahiko.
719: Imported July 21, 2015 and first released with OpenBSD 5.8.
720: </li>
721: <li>
722: <a href="https://man.openbsd.org/eigrpd.8">eigrpd(8)</a>,
723: <a href="https://man.openbsd.org/eigrpctl.8">eigrpctl(8)</a>:
724: Written and maintained by Renato Westphal.
725: Imported October 2, 2015 and first released with OpenBSD 5.9.
726: </li>
727: <li>
728: <a href="https://man.openbsd.org/rebound.8">rebound(8)</a>:
729: Written and maintained by Ted Unangst.
730: Imported October 15, 2015 and first released with OpenBSD 5.9.
731: </li>
732: <li>
733: <a href="https://man.openbsd.org/vmm.4">vmm(4)</a>,
734: <a href="https://man.openbsd.org/vmd.8">vmd(8)</a>,
735: <a href="https://man.openbsd.org/vmctl.8">vmctl(8)</a>:
736: Written and maintained by Mike Larkin and Reyk Floeter.
737: Imported November 13, 2015 and first released with OpenBSD 5.9.
738: </li>
739: <li>
740: <a href="https://man.openbsd.org/pdisk.8">pdisk(8)</a>:
741: Originally written by Eryk Vershen in 1996-1998,
742: rewritten and maintained by Kenneth Westerback since January 11, 2016
743: and first released with OpenBSD 5.9.
744: </li>
745: <li>
746: <a href="https://man.openbsd.org/mknod.8">mknod(8)</a>:
747: Original version from Version 6 AT&T UNIX (1975),
748: last rewritten by Marc Espie on March 5, 2016
749: and first released with OpenBSD 6.0.
750: </li>
751: <li>
752: <a href="https://man.openbsd.org/audioctl.1">audioctl(1)</a>:
753: Originally written by Lennart Augustsson in 1997,
754: rewritten and maintained by Alexandre Ratchov since June 21, 2016
755: and first released with OpenBSD 6.0.
756: </li>
757: <li>
758: <a href="https://man.openbsd.org/switchd.8">switchd(8)</a>,
759: <a href="https://man.openbsd.org/switchctl.8">switchctl(8)</a>:
760: Written and maintained by Reyk Floeter.
761: Imported July 19, 2016; released with OpenBSD 6.1.
762: </li>
763: <li>
764: <a href="https://man.openbsd.org/acme-client.1">acme-client(1)</a>:
765: Written by Kristaps Dzonsons, imported August 31, 2016; released
766: with OpenBSD 6.1.
767: </li>
768: <li>
769: <a href="https://man.openbsd.org/syspatch.8">syspatch(8)</a>:
770: Written and maintained by Antoine Jacoutot.
771: Imported September 5, 2016; released with OpenBSD 6.1.
772: </li>
773: <li>
774: <a href="https://man.openbsd.org/ping.8">ping(8)</a>:
775: Restructured to include IPv6 functionality and maintained by Florian Obser.
776: The separate
777: <a href="https://man.openbsd.org/OpenBSD-6.0/ping6.8">ping6(8)</a>
778: was superseded on September 17, 2016,
779: and the new, combined version was released with OpenBSD 6.1.
780: </li>
781: <li>
782: <a href="https://man.openbsd.org/xenodm.1">xenodm(1)</a>:
783: Cleaned-up fork of
784: <a href="https://man.openbsd.org/OpenBSD-6.0/xdm.1">xdm(1)</a>
785: maintained by Matthieu Herrb.
786: Imported October 23, 2016; released with OpenBSD 6.1.
787: </li>
788: <li>
789: <a href="https://man.openbsd.org/ocspcheck.8">ocspcheck(8)</a>:
790: Written and maintained by Bob Beck.
791: Imported January 24, 2017; released with OpenBSD 6.1.
792: </li>
793: <li>
794: <a href="https://man.openbsd.org/slaacd.8">slaacd(8)</a>:
795: Written and maintained by Florian Obser.
796: Imported March 18, 2017; released with OpenBSD 6.2.
1.66 schwarze 797: </li>
798: <li>
799: <a href="https://man.openbsd.org/rad.8">rad(8)</a>:
800: Written and maintained by Florian Obser.
801: Imported July 10, 2018.
1.59 job 802: </li>
1.1 schwarze 803: </ul>
804:
1.11 deraadt 805: <h3>Projects maintained by OpenBSD developers outside OpenBSD</h3>
1.1 schwarze 806:
807: <ul>
1.59 job 808: <li>
809: <a href="http://www.sudo.ws/">sudo</a>:
810: Started by Bob Coggeshall and Cliff Spencer around 1980.
811: Imported November 18, 1999, first released with OpenBSD 2.7.
812: Now maintained by Todd Miller.
813: </li>
814: <li>
815: <a href="http://bulabula.org/femail/">femail</a>:
816: Written and maintained by Henning Brauer.
817: Started in 2005, port available since September 22, 2005.
818: </li>
819: <li>
820: <a href="http://www.midish.org/">midish</a>:
821: Written and maintained by Alexandre Ratchov.
822: Started in 2003, port available since November 4, 2005.
823: </li>
824: <li>
825: <a href="https://github.com/nicm/fdm">fdm</a>:
826: Written and maintained by Nicholas Marriott.
827: Started in 2006, port available since January 18, 2007.
828: </li>
829: <li>
830: <a href="https://github.com/ajacoutot/toad/">toad</a>:
831: Written and maintained by Antoine Jacoutot.
832: Started in 2013, port available since October 8, 2013.
833: </li>
834: <li>
835: <a href="http://jasperla.github.io/portroach/">portroach</a>:
836: Written and maintained by Jasper Lievisse Adriaanse,
837: originally forked from FreeBSD's portscout.
838: Started in 2014, port available since September 5, 2014.
839: </li>
840: <li>
841: <a href="https://github.com/yasuoka/cvs2gitdump">cvs2gitdump</a>:
842: Written and maintained by YASUOKA Masahiko.
843: Started in 2012, port available since August 1, 2016.
844: </li>
1.1 schwarze 845: </ul>
846:
847: </body>
848: </html>