When searching lately a lot through the UNIX 2.11BSD source code I wanted many times a hyperlinked and cross-referenced rendition of the sources, much like doxygen or lxr does it. For kernel, library, and userland code, for C and assembler.

Since none of the existing tools seemed to do what I wanted, I wrote a Perl script generating such a html'ized version of the source code.

The tool is far from finished, but might already be useful. For a tour start for example with the code of the cp command

  https://www.retro11.de/ouxr/211bsd/usr/src/bin/cp.c.html
and click along. The links connect C and asm code, the userland code, libc, and kernel code. Look to the readdir() call in line 197, a click gets you into the libc module implementing readdir(). A further click on read() into the assembler stub doing the system call, and a click on the kernel handler listed there gets you into the kernel source. Here are the links to the tour
  https://www.retro11.de/ouxr/211bsd/usr/src/bin/cp.c.html#n:197
  https://www.retro11.de/ouxr/211bsd/usr/src/lib/libc/gen/readdir.c.html#s:_readdir
  https://www.retro11.de/ouxr/211bsd/usr/src/lib/libc/pdp/sys/__read.s.html#s:_read
  https://www.retro11.de/ouxr/211bsd/usr/src/sys/sys/sys_generic.c.html#s:_read

The background color tells you in which territory you are in

  magenta   boot and standalone code
  red       kernel
  gold      network code (running in supervisor)
  green     libraries
  blue      userland code

If you want a kernel tour, start at

  https://www.retro11.de/ouxr/211bsd/usr/src/sys/sys/init_main.c.html

Clicking on a symbol definition (or the X in the sidebar) gets you to the cross referencing info's. To see for example who is using setjmp see

  https://www.retro11.de/ouxr/211bsd/usr/src/lib/libc/pdp/gen/setjmp.s.html#xref:s:_setjmp
or who is including nlist.h see
  https://www.retro11.de/ouxr/211bsd/usr/include/nlist.h.html#xref:i:nlist.h

As said, it's beta stage, the style sheet is still the debug version, not all links end where they should, not all is parsed as it should.

Hope you enjoy it.

2016-11-27: The ouxr data have been moved from the server cited in the original posting to a different site. Updated the post accordingly.
For original note to 2.11BSD users see posting to cctech@classiccmp.org archived on
2014-10-06
. That started a nice thread back in 2007.