swap space
John Macdonald
jmm at eci386.uucp
Sat Jun 22 08:15:22 AEST 1991
In article <384 at kyzyl.mi.org> tkacik at kyzyl.mi.org (Tom Tkacik) writes:
|I have been perusing /usr/include/sys to try to see where that
|2.5MB virtual memory limit comes from, and found in /usr/include/sys/param.h
|the following defines.
|
|#define VUSER_START 0x80000 /* start address of user process */
|#define VUSER_END 0x300000 /* end address of user process */
|#define SHLIB_START VUSER_END /* start address of shared lib */
|#define SHLIB_END 0x380000 /* end address of shared lib */
|#define KVMEM_VBASE SHLIB_END /* start addr of kernel vm */
|#define KVMEM_VLIMIT 0x400000 /* end addr of kernel vm */
|
|This defines how virtual memory space is used in each process.
|They clearly show that the user process goes from 0x80000 to 0x300000.
|This is the 2.5MB. Shared libraries must fit into the 0.5MB between
|0x300000 and 0x380000, while the kernel must fit into the 0.5Mb
|between 0x380000 and 0x400000 (the very top of virtual memory).
|
|But that's only 3.5MB of the available 4MB. I cannot find what
|could possibly be in that space from 0x00000 to 0x80000.
|The ifiles (in /lib) all instruct ld(1) to start the user
|program at 0x80000.
|
|Does anybody have any idea what is in that low part of memory?
|Shouldn't we be able to get 3MB of virtual memory for out programs?
|What would happen if some guinea pog modified the ifile to start a program
|much lower in memory? How much lower could you safely go? Any takers?
I would guess that the low 0.5 Meg is non-virtual memory for the
kernel - i.e. the portion of the kernel that is fixed when the
kernel is built. The virtual memory for the kernel would then
include loadable device driver and allocatable space...
--
Usenet is [like] the group of people who visit the | John Macdonald
park on a Sunday afternoon. [...] luckily, most of | jmm at eci386
the people are staying on the paths and not pissing |
on the flowers - Gene Spafford
More information about the Comp.sys.3b1
mailing list