Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

16.2. Mapped Base Address for Shared Libraries in Red Hat Enterprise Linux 3, 4 and 5

In Red Hat Enterprise Linux 3, 4 or 5 the mapped base for shared libraries does not need to be lowered since this operation is now done automatically. To verify the mapped base (mapped_base) for shared libraries execute cat /proc/self/maps in a shell. The directory self in the proc file system always points to the current running process which in this example is the cat process:
# cat /etc/redhat-release
Red Hat Enterprise Linux AS release 3 (Taroon Update 6)
# cat /proc/self/maps
00a23000-00a38000 r-xp 00000000 08:09 14930   /lib/ld-2.3.2.so
00a38000-00a39000 rw-p 00015000 08:09 14930   /lib/ld-2.3.2.so
00b33000-00c66000 r-xp 00000000 08:09 69576   /lib/tls/libc-2.3.2.so
00c66000-00c69000 rw-p 00132000 08:09 69576   /lib/tls/libc-2.3.2.so
00c69000-00c6c000 rw-p 00000000 00:00 0
00ee5000-00ee6000 r-xp 00000000 08:09 32532   /etc/libcwait.so
00ee6000-00ee7000 rw-p 00000000 08:09 32532   /etc/libcwait.so
08048000-0804c000 r-xp 00000000 08:09 49318   /bin/cat
0804c000-0804d000 rw-p 00003000 08:09 49318   /bin/cat
099db000-099fc000 rw-p 00000000 00:00 0
b73e7000-b75e7000 r--p 00000000 08:02 313698  /usr/lib/locale/locale-archive
b75e7000-b75e8000 rw-p 00000000 00:00 0
bfff8000-c0000000 rw-p ffffc000 00:00 0
#

# cat /etc/redhat-release
Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
# cat /proc/self/maps
00b68000-00b7d000 r-xp 00000000 03:45 1873128  /lib/ld-2.3.4.so
00b7d000-00b7e000 r--p 00015000 03:45 1873128  /lib/ld-2.3.4.so
00b7e000-00b7f000 rw-p 00016000 03:45 1873128  /lib/ld-2.3.4.so
00b81000-00ca5000 r-xp 00000000 03:45 1938273  /lib/tls/libc-2.3.4.so
00ca5000-00ca6000 r--p 00124000 03:45 1938273  /lib/tls/libc-2.3.4.so
00ca6000-00ca9000 rw-p 00125000 03:45 1938273  /lib/tls/libc-2.3.4.so
00ca9000-00cab000 rw-p 00ca9000 00:00 0
08048000-0804c000 r-xp 00000000 03:45 1531117  /bin/cat
0804c000-0804d000 rw-p 00003000 03:45 1531117  /bin/cat
08fa0000-08fc1000 rw-p 08fa0000 00:00 0
b7df9000-b7ff9000 r--p 00000000 03:45 68493    /usr/lib/locale/locale-archive
b7ff9000-b7ffa000 rw-p b7ff9000 00:00 0
bffa6000-c0000000 rw-p bffa6000 00:00 0
ffffe000-fffff000 ---p 00000000 00:00 0
#
The outputs show that the mapped base is already very low in Red Hat Enterprise Linux 3, 4 or 5. In the above example shared libraries start at 0xa38000 (decimal 10715136) in Red Hat Enterprise Linux 3 and 0xb68000 (decimal 11960320) in Red Hat Enterprise Linux 4 and 5. This is much lower than 0x40000000 (decimal 1073741824) in Red Hat Enterprise Linux 2.1:
# cat /etc/redhat-release
Red Hat Linux Advanced Server release 2.1AS (Pensacola)
# cat /proc/self/maps
08048000-0804c000 r-xp 00000000 08:08 44885      /bin/cat
0804c000-0804d000 rw-p 00003000 08:08 44885      /bin/cat
0804d000-0804f000 rwxp 00000000 00:00 0
40000000-40016000 r-xp 00000000 08:08 44751      /lib/ld-2.2.4.so
40016000-40017000 rw-p 00015000 08:08 44751      /lib/ld-2.2.4.so
40017000-40018000 rw-p 00000000 00:00 0
40022000-40155000 r-xp 00000000 08:08 47419      /lib/i686/libc-2.2.4.so
40155000-4015a000 rw-p 00132000 08:08 47419      /lib/i686/libc-2.2.4.so
4015a000-4015f000 rw-p 00000000 00:00 0
bffea000-bffee000 rwxp ffffd000 00:00 0
#
The above mappings show that the Mapped Base Address does not have to be lowered in Red Hat Enterprise Linux 3 or 4 to gain more SGA space.