Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Feb 2001 14:40:43 +0000
From:      Nik Clayton <nik@freebsd.org>
To:        Murray Stokely <murray@osd.bsdi.com>
Cc:        freebsd-doc@freebsd.org
Subject:   Re: Indexing the Handbook
Message-ID:  <20010223144043.A46865@canyon.nothing-going-on.org>
In-Reply-To: <Pine.BSF.4.31.0102221744050.7245-100000@meow.osd.bsdi.com>; from murray@osd.bsdi.com on Thu, Feb 22, 2001 at 05:59:04PM -0800
References:  <Pine.BSF.4.31.0102221744050.7245-100000@meow.osd.bsdi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Feb 22, 2001 at 05:59:04PM -0800, Murray Stokely wrote:
>   After looking through Nik's changes to make indexing available I
> went ahead and marked up a chapter from the Developer's Handbook with
> <indexterm>, <primary>, and <secondary> tags.  I added 42 index
> entries to the chapter all together.  Adding index entries into the
> middle of the paragraph really breaks up the flow so I wanted to see
> what everyone thought about style practices for adding index entries.

OK.  This isn't something I've got a huge amount of experience with.

>   Here is an example from that chapter that shows the style I used to
> mark index entries.  If there are no objections with this code then I
> would like to commit it shortly.
> 
>    <para>Most modern computer systems use a stack to pass arguments to
>       procedures and to store local variables.  A stack is a LIFO
>       (last in first out) buffer in the high memory area of a process
>       image.
> 
>       <indexterm><primary>LIFO</primary></indexterm>
>       <indexterm>
>         <primary>process image</primary>
> 	  <secondary>stack pointer</secondary>
>       </indexterm>
> 
>       When a program invokes a function a new "stack frame" is
>       created.
> 
>       <indexterm><primary>stack frame</primary></indexterm>
>       <indexterm><primary>stack pointer</primary></indexterm>
> 
>       This stack frame consists of the arguments passed to the
>       function as well as a dynamic amount of local variable space.
>       The "stack-pointer" is a register that holds the current
>       location of the top of the stack.  Since this value is
>       constantly changing as new values are pushed onto the top of the
>       stack, many implementations also provide a "frame pointer" that
>       is located near the beginning of a stack frame so that local
>       variables can more easily be addressed relative to this
>       value. <xref linkend="COD">
> 
>       <indexterm><primary>frame pointer</primary></indexterm>
>       <indexterm>
>         <primary>process image</primary>
>         <secondary>frame pointer</secondary>
>       </indexterm>
>       <indexterm><primary>return address</primary></indexterm>
> 
>       The return address for function calls is also stored on the
>       stack, and this is the cause of stack-overflow exploits since
>       overflowing a local variable in a function can overwrite the
>       return address of that function, potentially allowing a
>       malicious user to execute any code he or she wants.</para>
> 
>     <para>Although stack-based attacks are by far the most common,
>       it would also be possible to overrun the stack with a heap-based
>       (malloc/free) attack.</para>
> 
>       <indexterm><primary>bounds checking</primary></indexterm>
> 
>     <para>The C programming language does not perform automatic
>       bounds-checking on arrays or pointers as many other languages
>       do.  In addition, the standard C library is filled with a
>       handful of very dangerous functions.</para>

Right.

My main concern is that in talking with a few people at various
conventions it seems that getting a good index involves more than just
sprinkling <indexterm> liberally around the document.

I've got no idea how we select good terms to index, and again, the
feedback I've had suggests that it's much more an art than a science.
Which probably means we can't write rules and procedures for it :-)

Do we also run the risk of having lots of different index terms, all
subtly different?  I don't know.

What are the {Linux,Gnome,KDE} Documentation Projects doing about this,
if anything?

Is this something we could use entities for?

    <!ENTITY index.p.stack_frame 
      "<indexterm><primary>stack frame</primary></indexterm>">

and then write

    &index.p.stack_frame;

in the documentation?

As I say, I don't know.

N
-- 
Internet connection, $19.95 a month.  Computer, $799.95.  Modem, $149.95.
Telephone line, $24.95 a month.  Software, free.  USENET transmission,
hundreds if not thousands of dollars.  Thinking before posting, priceless.
Somethings in life you can't buy.  For everything else, there's MasterCard.
  -- Graham Reed, in the Scary Devil Monastery

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-doc" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010223144043.A46865>