fluca1978 said:
Thanks. So this means the kernel has a data space of around 12 MB, right?
It depends on what you mean with "data space". The kernel is actually an executable in ELF format and has a well-defined structure (see
elf(5)). An ELF file is divided in several sections (again, see
elf(5)), and one of this is named ".data".
Well, the "data=<hex>+<hex>" that you see is actually the size+offset of the .data section of your kernel.
The modules are in ELF format too.
fluca1978 said:
1) what does kernel module means? This confuses my vision of a kernel that loads modules, but is not a module by itself...
With "kernel/module" I mean "kernel or module(s)". Sorry for not being clear.
fluca1978 said:
2) this data has something to do with the kernel stack space and heap?
Yes and no.
When a process is loaded in memory, the OS assigns some space (called process address space) which is divided roughly in this manner:
Code:
+---------------+
| Stack |
+---------------+
| ... |
| ... |
| ... |
+---------------+
| Data Segment |
+---------------+
| Text Segment |
+---------------+
So no, the stack has nothing to do with the data segment.
However, the heap is part of the data segment.
You can find more information
here and
here.