NEWS: Woo-hoo! We won an award! We were also described as ``a must
for the developer'' in Byte's January 1997 issue. To date, I've been
pretty lame about distributing source to the Navigator. This should
change RSN :-), and although I'm currently pretty hosed, I have some cool
improvements in mind. As always, suggestions are welcomed -- Ben.
Welcome to the Linux Source Navigator. Originally developed as
part of an Independant Study in the Linux Kernel, the Navigator is a
CGI interface to browse the entire Linux kernel source. You're best
off viewing the Navigator with a browser that understands <TABLE>
tags to see the directories correctly; Netscape works great.
The Navigator formats the raw source tree on-the-fly, using
italics, bolds, colors and hyperlinks to present the source in a much
more managable format. Although I've added support in my code for
selecting which version of the kernel and which architecture to
browse, there's just a 2.0.0 kernel set up to use i386 architecture
Have fun exploring!
I've had a lot of feedback on how to improve the browser (thanks to
all those who've sent me their comments and advice!) and here are some
of the improvements that I'm working on incorporating (suggestions
in italics are a nice idea, but will take lower priority for one
reason or another) I'd welcome any other suggestions or comments;
feel free to mail them to me!
- The ability to grep through the source
- Indices of function and variable definitions
- The ability to find references to functions and variables
- static functions and variables will not be linked to from
outside of their files
- Multiple versions of the kernel - the current version and the
latest release version, for example - (Done! The support is now in place, but I haven't generated any more architecture/version combinations...)
- The ability to select a particular architecture to browse.
Since certain functions are defined in all architecture specific code,
links to those functions will be unpredictable and, more often than
not, will take you to the alpha architecture definitions (this is
a consequence of the indexing techniques I used) (Implemened,
but my indicies need regenerating)
- Add a "status-line" to the top of each file, allowing you to
return to the previous file, and telling you the current file.
- Turn any references to the 'include/asm' directory to the
directory appropriate for the current architecture
- Make sure their are pointers to definitions for typedefs,
structs and #defines (Fixed for new indices)
- 11/25/95 - Fixed highliting in strings
- 11/26/95 - Went a long way towards implementing support for
multiple architectures and kernel version
- 12/3/95 - Fixed some bugs with <;, >; and &
- 12/95 - 1/96 - Fixed many more bugs, and including support in the
browser for version and architecture selection (encoded in the URL).
Now that that's finally done, I still need to perfect my indexing scripts
which were having some problems.
- x/96 - fixed a lot of bugs, rewrote the tag-generating scripts,
reorganized the main code, other nice things.
- Q: Can I get a copy of the Navigator to run locally?
NOTE: I removed these instructions because the Navigator is
undergoing major changes to allow support for multiple kernel
versions & architectures; they wouldn't work anyway. I'll post
something to comp.os.linux.announce when a package is ready.
Well, my thanks for the day go to the folks who created gimp,
the hottest Linux graphics tool around. I just spend the best part
of the afternoon in a semi-maniacal obsessed state, created the new
graphics for this Web page (the last was looking rather shabby).
Kudos, guys! Just in case anyone was wondering, the images I used
were from an old map of New York. I'd post the URL if I hadn't
just exited Netscape... *sigh*
Ben Walter /