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