Memory Allocation Table question ??

William Case billlinux at rogers.com
Thu Feb 21 16:57:51 UTC 2008


Hi Gilboa and others;

On Thu, 2008-02-21 at 15:22 +0200, Gilboa Davara wrote:
> On Wed, 2008-02-20 at 11:41 -0500, William Case wrote:
[snip]
> Bill,
> 
> This is not a memory allocation table - it's a stack trace.

I understand that.  I just used the term 'memory allocation table' in an
effort to explain what I was looking for.

> Kernel stack traces can be generated when a certain kernel
> process/function calls the dump_stack() function. (Or when something
> dies/OOPs.)
> 
Yes

> Other then that, a user may trigger such a stack by using the magic
> SysRQ [1] key combination.

Fascinating.  I had always been told that the SysRQ key didn't have a
use on a desktop PC. (I went to the Wiki page cited below) 
> 
> If you're looking for information about kernel space, I'd start by
> googling for "Linux Device Drivers" and "Understanding The Linux
> Kernel" (Both can be downloaded in PDF form)
> 
I have "The Linux Kernel Primer" here (for the 2.6 kernel) and I have
read it.  I also have two books on Computer Organization and
Architecture.  So I will be more specific about my question.

In the text books I have, memory allocation is shown diagrammatically as
a column with broad representational divisions.  Example:
 _______	Ox000000000
|	|
|	|
---------
|	| BIOS
|	|
---------
|	|
|	| Kernel Space
|	|
---------
|	|
|	|
|	| User Space
|	|
|	|
		... 0xFFFFFFFF

Or some such.  The representations in my texts are perhaps a little more
complex, but I think you get the idea.  

What I would like to do is capture a snapshot at a moment in time of
exactly how MY memory could be represented.  I.E. addresses, size and
tag (name, identifier).  I have read about it; now I would like to see
it.

I can capture the latest processes using top, and I can use objdump or
stack traces in gdb to capture a small portion of a process (but that
gives me every line -- more than I want).

I had hoped that someone with my type of curiosity and/or a programming
need had written a command or program that shows the layout of memory in
a more detailed representational or textual way.  For example, I would
like to see where and how pipes and sockets get created or where devices
get grouped together.  And yes, I understand the differences between
Virtual Memory, Actual Memory and how DMA and buffers work.  However,
there must be a way to view this all as something meaningful.  And yes,
I understand that this could be a large amount of data, but hopefully it
wouldn't take more than 2 or 3 days to pick through the information and
create a columned representation that is meaningful to me.  (Good chance
to practise the use of grep, awk and sed.) 

In my own defence, it seems I have a peculiar view of learning how
computers and operating systems work.  But, I can also say, with reading
and help from people on this list and my local LUG, I have been able to
chase down all those questions and get satisfying answers.

> - Gilboa
> [1] http://en.wikipedia.org/wiki/Magic_SysRq_key
> 

-- 
Regards Bill




More information about the users mailing list