[vox-tech] lame question on memory allocation

Rod Roark vox-tech@lists.lugod.org
Tue, 21 Jan 2003 11:38:21 -0800


On x86 CPUs (well, 80386 and above), a word is 32 bits.

A "word-aligned" piece of memory is one whose starting
binary address ends in 00 (i.e. is a multiple of 4 bytes).

Also I thought the x86 unit of paging is 4K, not 8K, but
maybe things have changed since the old 386 days.

Cheers,
-- 
Rod Roark, Sunset Systems     http://www.sunsetsystems.com/
Offering preconfigured Linux computers, custom software and
remote system administration services.
Public Key: http://www.sunsetsystems.com/rodspublickey.asc

On Tuesday 21 January 2003 11:20 am, Peter Jay Salzman wrote:
> you'd think by now i'd know stuff like this.  i'm embarrased to have to
> ask this, but here it goes.
>
> i'm reading the man page for electric fence, and i'm not fully
> understanding the sections on EF_ALIGNMENT and "WORD-ALIGNMENT AND
> OVERRUN DETECTION".   i feel like i "almost" understand them.
>
> i think i understand the concept of memory page as being the minimum
> chunk of memory the kernel handles internally (8192 bytes minimum
> allocation of memory on x86) and alignment, but i guess i don't know
> what a word is.
>
> for example, the man page says that malloc() may be required to return
> word aligned memory pages, so in the diagram:
>
>
>          1 page allocated by malloc()
> x       ------------
> x+1     |          |
> x+2     | 8192     |
>
>         | bytes on |
>         |   x86    |
>
>         ------------
>
> i guess that places a restriction on what "x" is, but because i don't
> know what a word is, i don't know what that restriction is.
>
> what's a word?  :)
>
> or does it mean that there's a restriction on *size* of the page and not
> the starting point?
>
> pete