posted by Eugenia Loli on Sat 3rd Aug 2002 19:23 UTC
IconA whole year after the Be IP buyout from Palm, BeOS 5 PE still enjoys more than 2,500 downloads per week. However, new hardware creates problems to BeOS, as it does not support new graphics cards, sound cards, new chipsets and worse, doesn't even boot on AthlonXP's or many Pentium4s without the usage of patches/hacks that are floating around. The latest sad incident is the inability of BeOS to boot when you have lots of system memory and lots of virtual graphics memory.

There is 1.25 GB addresses 0x10000000 to 0x5fffffff in which the BeOS kernel creates kernel areas and physical_ram is allocated from there. The size of physical_ram is the amount of RAM in the machine, rounder up to the closest power of two. This means that BeOS wouldn't boot at all if you stick more than 1 GB of memory. Other things are allocated between these addresses are the framefuffer for the graphics card and the loader cache (all the binaries you would load in the system).

The framebuffer is allocated with the size the graphics card reports to the PCI level. So, even if you have a 32 MB Radeon, the Radeon might be reporting more, up to 128 MB, and that is what BeOS is "believing" it has. For example, the nVidia driver found on BeBits for the nVidia cards, also maps whatever the PCI says, and not what the graphics card has on it. My GeForce2 MX400, has only 32 MB VRAM, maps 128 MB plus 16 MB for some register special stuff. That means that this 32 MB graphics card maps 144 MB out of the 1.25 GB memory allowed under BeOS. The new ATi Radeon 8500 for example, has 128 MB of VRAM in it, and it maps a whopping 256 MB of VRAM, because this way, ATi doesn't have to re-engineer a future version of Radeon to have 256 MB. Problem is, that the BeOS drivers, and especially the VESA driver, do not ask the card how much memory really have on, but ask the PCI bus which gets the information from the card itself, but the number reported there is how much memory they would be able to work with, and not how much they already have on.

If you bought a new graphics card and BeOS doesn't boot, take out some system memory. Also, be advised that when you have the BeOS machine loaded with much system memory (eg. more than 512 MB rounds to 1 GB) and graphics memory (which might be as high as 256 MB even if you might only have a 64 MB card) and that the overall mapping is close to 1.25 GB overall, it won't let you run big apps, like BeZilla that require lots of memory, because it won't be much memory left to use for applications! It is all used from the system allready. To check how much memory you have left, do a: "listarea > myMemory" on a terminal and then examine that myMemory file.

Solution:
Never use more than 512 MB of RAM with BeOS. In fact, 256 MB is what BeOS was optimized to use anyway. Also, make sure that your graphics card is an older, supported one, with no more than 32 or 64 MB of VRAM. As there is no OpenGL for BeOS 5, even a 8 MB graphics card would do the job perfectly. Oh, and don't throw away that old PII or PIII you have if you want to continue using BeOS in the years to come.

e p (0)    56 Comment(s)

Technology White Papers

See More