05-23-2009
Any 32 bit OS will only see / use 3.5GB of RAM.
Remember that in the absence of the 64 bit support, the OS memory manager is limited to a 4GB physical address space. Most of that address space is filled with RAM, but not all of it. Memory-mapped devices (such as your video card) will use some of that physical address space, as will the BIOS ROMs. After all the non-memory devices have had their say, there will be less than 4GB of address space available for RAM below the 4GB physical address boundary.
the motherboard assigned the ROMs and the hardware devices to the physical address space between 3.5GB and 4GB (occupying about 0.5GB of address space). When you start plugging in your memory chips, then, they are assigned physical addresses starting at the bottom, and then skip over the address space that has already been assigned to the hardware and ROM, then resume.
On this imaginary system, then, the 0.5GB of address space used for hardware and ROMs causes that much memory to get shoved upwards, and it ends up above the 4GB boundary. Without 64 bit support, the processor is capable only of addressing memory below the 4GB boundary, which means that the memory above that boundary is inaccessible. It's consuming electricity but isn't doing anything.
The solution is to go to 64-bit OS so that the processor can access the physical address space above the 4GB boundary.
So why don't we just map the ROMs and the hardware devices to space above 4GB??
then the CPU can't access the IO devices so you have system with 4GB of RAM and no video card......
any questions??
8 More Discussions You Might Find Interesting
1. Linux
Hi,
I want to know what is command to know which will tell wheather linux is 32 or 64 bit (5 Replies)
Discussion started by: manoj.solaris
5 Replies
2. Linux
Where can I get a list that maps the each Linux version to corresponding 32/64 bits model?
e.g.
OS -> Model (ILP32, LP64, ...)
RHLE3 -> ?
RHLE4 -> ?
RHLE5 -> ?
...
It would be better if there is such a list that contains most of current UNIX OS versions.
... (1 Reply)
Discussion started by: princelinux
1 Replies
3. Gentoo
hi all,
i have a 64 bit linux machine.
$uname -a
Linux SVRDELLD30 2.6.9-42.ELsmp #1 SMP Tue Aug 15 10:35:26 BST 2006 x86_64 x86_64 x86_64 GNU/Linux
here by default gcc creates 64 bit executable. but for some reason i want to create 32bit executable.
first i want to create 32 bit object... (3 Replies)
Discussion started by: uttamhoode
3 Replies
4. Red Hat
Hi all,
I'm looking to cover a corner case for an upcoming test cycle. Is there a way to boot a RedHat Advanced Server 4 (update 3) installed on a Power PC machine to use a 32 bit kernel? This would be similar to what is done here -> https://www.unix.com/aix/26204-aix-platform.html
I've done... (0 Replies)
Discussion started by: philrau
0 Replies
5. Solaris
Not really a Unix question as such :o, but what advantages or disadvantages are there between using 32bit or 64bit applications on a T5220 running Solaris 10? What about mixing them e.g. 64 bit app using 32 bit libraries or vice versa? (1 Reply)
Discussion started by: JerryHone
1 Replies
6. UNIX for Advanced & Expert Users
Hi.
I need to migrate the whole unix environment from a Unix mp-ras 32 bit to a Linux Suse 64 bit.
1) can i use cpio to copy the data?
2) can i just copy the users from unix to linux or do i have to create them by hand
3) are there any other concerns i should worry about?
thanx (1 Reply)
Discussion started by: mrodrig
1 Replies
7. Linux
How to enable more than 4GB RAM support on Linux 32bit OS?
OS: CentOS release 5.4 (Final)
Kernel version: 2.6.18-53.el5
Arch: 32Bit
I got solution at Innovationframes.com • View topic - How to enable more than 4GB RAM support on Linux 32bit OS? but my question is the steps given... (5 Replies)
Discussion started by: chandranjoy
5 Replies
8. High Performance Computing
For Intel processors we've a lot of new instruction sets (AVX and AVX2 already exists, AVX512 is announced). Therefore an application has to check during run time which instruction sets are available. I've written for that purpopse some procedures, which are callable from C or C++.
A strange... (2 Replies)
Discussion started by: GG2014
2 Replies
LEARN ABOUT OSF1
svatophys
svatophys(9r) svatophys(9r)
NAME
svatophys - General: Converts a system virtual address to a physical address
SYNOPSIS
kern_return_t svatophys(
vm_offset_t kern_addr,
vm_offset_t *phys_addr );
ARGUMENTS
Specifies the kernel virtual address. Specifies a pointer to the physical address to be filled in.
DESCRIPTION
The svatophys routine converts a system virtual address to the corresponding physical address. All address and data structure manipulation
done within the kernel is performed using system virtual addresses. Typically, system virtual addresses are a means of mapping physical
memory and I/O space, which often consists of device registers and DMA buffers. In contrast to this, devices are usually unaware of any
virtual addressing and for this reason use physical addresses. You use the svatophys routine to perform this address translation.
As an example of where you can use this address translation, a disk device driver can use DMA buffers to transfer blocks of data to the
disk (for the case of a write operation). The data to be written to disk is present in system memory at a system virtual address known to
the driver. To initiate the DMA operation, the disk driver can set up a command packet to specify a write operation to the underlying disk
controller hardware. This write command packet contains (among other things) the location of the DMA buffer as a physical address and the
length of the buffer. Here, the driver calls the svatophys routine to translate the system virtual address of the DMA buffer to a physical
address in the command packet issued to the disk driver.
RETURN VALUES
The svatophys routine returns the following: The address translation has been completed successfully. Unable to perform address transla-
tion. This value indicates that the address specified by the kern_addr argument is not a valid kernel or system virtual address.
svatophys(9r)