[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