IBM researchers Singh, Smith & Reed are developing in their free time legacy BIOS support for Intel Macs. “BAMBIOS” is using Boch’s BIOS emulation code and has also adapted its graphical BIOSes for the current ATi and Intel graphics chipsets used on the Intel Macs today. The BIOS itself loads as a small EFI-capable OS that then chainloads to a second stage boot manager to then boot non-EFI OSes (editor’s note: In the past some unsupported VESA 1.2 PC users used a small DOS partition to load a special DOS-based “VESA 2.0 graphics bios” code that was preparing the way for what BeOS was expecting and then it was chainloading the BeOS from DOS). BAMBIOS is a very promising project to bring Windows and non-EFI Unices to the Mac platform, although the downside is that you most likely need updated versions for it for each new Mac released – if the Mac hardware has changed from its previous models that is. And if the trick used is indeed chainloading, then some quirky re-partitioning of the drive will be required by the user too. Update: Additional info from Amit Singh below.“To EFI, our software looks like a regular EFI program which happens to be a bootloader. This bootloader contains
a binary payload which is an entire BIOS, VGA BIOS, and other
x86-specific glue needed to boot the machine. This binary payload is loaded into memory in the legacy BIOS space. To all software on the machine, it appears as if the machine has a traditional BIOS. An important aspect of BAMBIOS is that its goal is to be non-disruptive.” – Amit Singh
Potentially excellent news. Not entirely sure about the name though, I initially mis-parsed it as Bambi OS (perhaps an effect of Pixar/Apple and Disney becoming closer? )
Requiring an updated version for each new Mac doesn’t sound too bad, at least not to the end user. The end user might have to wait a while to use it after buying a brand new model mac, but the average user won’t be doing that too often, so once he has a version of BAMBIOS for his model, he’s set.
first thing I thought of was “badass mac BIOS” .. heh
This is indeed a clean solution.
My only problem is that I don’t trust Bochs’ BIOS emulation code. It has problems with many OSes, especially with OSes like OS/2 or BeOS. It works so-so with Linux and XP, but if other OSes don’t like it too much it means that there are remaining bugs in it or the solution is not complete. Hopefully the Bochs BIOS code gets more rich as time goes by and so BAMBIOS becomes more solid.
I agree that Boch’s BIOS code is not the greatest.
Then again, with the Intel-based MACs there is less variety of hardware to emulate.
So I think this emulation code with some tweaks in the end would work better than the regular Boch’s code.
My only problem is that I don’t trust Bochs’ BIOS emulation code. It has problems with many OSes, especially with OSes like OS/2 or BeOS. It works so-so with Linux and XP, but if other OSes don’t like it too much it means that there are remaining bugs in it or the solution is not complete. Hopefully the Bochs BIOS code gets more rich as time goes by and so BAMBIOS becomes more solid.
I don’t think BIOS is the problem. OS/2 has problems running in many VMs, including VMWare (which is using PhoenixBIOS – a commercial BIOS implementation). OS/2 had been (in)famous for using undocumented instructions – e.g. a 286-specific version of LOADALL which made it break on 386s. I’d guess that problems with OS/2 are more related to CPU and MMU emulation than to BIOS.
What is ‘BIOS emulation code’?
I’ve read “framebuffer” somewhere in their presentation. S’that mean we’ll have slow-as-hell graphics?
Now that’s good
Oh well – the short answer is no. Without the “framebuffer” you wouldn’t be having any graphics at all (even on MacOS X).
I’ll try to answer what you probably really meant: BAMBIOS will need a VGA BIOS – basically an interface for displaying graphics at a few common resolutions (320x240x8, 640x480x4, etc.). Windows is using the VGA BIOS in safe mode; as soon as you install a driver for your video card, the VGA BIOS isn’t being used anymore. And BTW – using the framebuffer is in fact the only sensible way to implement a VGA BIOS, not to mention that it’s also the fastest.
It’s basically exactly like USB. Apple led the way, then five years later it became common-place on PCs. If you want to blame anyone, blame Microsoft for their failure to support contemporary (not new) hardware after six years spent developing Vista.
That’s not really true. It’s Microsoft who is dealing the cards here. No motherboard vendor will release a motherboard to retail stores which won’t boot Windows; their customers wouldn’t switch to Linux, but just return the motherboard for a refund.
Apple’s hardware is not only ‘new’ but also in some ways ‘weird’ – it doesn’t have a feature which it basically should have, as BIOS compatibility is part of EFI. Microsoft doesn’t have to support every weird x86 based motherboard out there.
This is a chicken and egg problem. No motherboard vendor will want to drop legacy support if Microsoft continues to prolong the life of BIOS. With Vista, they could have forced this transition to finally leave it behind. If Microsoft finally did this, motherboard vendors would now have incentive to drop legacy support. This in turn would emphasize other OS’ that rely on legacy booting methods to update.
I also don’t see anything weird about the Intel based Mac hardware. The Compatibility Support Module (aka BIOS compatibility) is an OPTIONAL part of EFI (refer to the 2nd paragraph).
http://www.intel.com/technology/framework/overview4.htm
Apple had no need to include it in their hardware because they chose the legacy free route to use a more modern firmware implementation which offered a better transition from OpenFirmware.
By also leaving a solution open to a third party vendor, Apple can also absolve itself from support related issues but also opens up another niche market for anyone capable enough to fill that role.
Users who don’t need this ability won’t have to be bothered with this while those who could make use of it will understand the delineation of responsibility when they install it.
This is EXACTLY what I told people would be done. It’s the most logical thing to do. Now I can go tell my friends I told them so.
Seems like the most elegant solution to be presented as yet…many thanks to the devs, i look forward to being able to boot solaris on my macbook!
I wonder if Apple and/or Microsoft were expecting this?
at all the lame and weak-ass attempts to circumvent their machines and run Windows.
Guys, leave the mac alone – don’t you have some bugs to fix in AIX?
“at all the lame and weak-ass attempts to circumvent their machines and run Windows. ”
wtf? What makes you think there is a concerted effort to stop people running windows?
They should have used chips totally incompatible with x86: chipset with different programming interface, e.g. not using ports, just memory mapped IO: 100% of OSes would simply not work. Going further: not using existing PCI interface which uses in/out instructions. They should also remove 8086 comcrapability from CPUs.
…and they should have put a big red sticker inside the case with stern words on it :-).
Aww, someone doesn’t like Apple’s new Kool-aid flavour.
Funny how IBM, the company that no longer makes apple CPU’s, are working on cracking the Mactel computers.
Interesting idea, but “IBM researchers Singh, Smith & Reed are developing *in their free time*”. So, perhaps this isn’t actually an IBM plot (yet?).
“Funny how IBM, the company that no longer makes apple CPU’s, are working on cracking the Mactel computers.”
Well,
if it works, instead of purchasing two Intel CPUs you would need to get only one.
Maybe they are already waiting for a paycheck from intel too, to develop their idea more. Longer and harder.
Edited 2006-03-14 10:00
I’ve read “framebuffer” somewhere in their presentation. S’that mean we’ll have slow-as-hell graphics?
I think, this depend on ATI or intel windows drivers. If they use graphics card BIOS and if this graphics card BIOS is not present on MAC then yes, only VGA can be used.
I think that it is curious that Apple have gone 90% of the way towards enabling their machines to run XP, but stopped short of finishing the job. I guess it was just incidental to their aims. Nevertheless, if they had made their new machines XP capable, I suspect that this would have been a great marketing move, because then Windows people like me would have been more inclined to buy Apple. As it is, whilst I applaud Singh, Smith & Reed, their efforts are still an unsupported hack. I just can’t affort to trust it on a machine that I use to make my living. Perhaps, in time, IBM, Apple or even Microsoft will back their work. In the mean time, I’ll be buying my hardware elsewhere. Which is sad, because I’d love to run Mac OS for personal projects.
Um no, Apple just went with the most advanced technology currently available. BIOS is a legacy monstrosity that Intel has been trying to shift for some time now. EFI is the way forward. Microsoft had been working on adding EFI support to Vista, but scrapped it due to time contraints: it’ll appear in the 64-bit (read: server) versions later.
It’s basically exactly like USB. Apple led the way, then five years later it became common-place on PCs. If you want to blame anyone, blame Microsoft for their failure to support contemporary (not new) hardware after six years spent developing Vista.
I understand that EFI is vastly superior to BIOS, so I certainly don’t “blame” Apple for not supporting old technology.
As I said, however, I do think that it would have been good marketing for Apple to support older OS. Firstly, becuase Windows users would start to buy Apple hardware, and then because they would start to use Apple software.
> If you want to blame anyone, blame Microsoft for their failure to support contemporary (not new) hardware after six years spent developing Vista
I thought Microsoft had made it clear that they wait for the hardware to show up, then try to engineer to the actual hardware, quirks and all, rather than some notional spec and initial seed hardware. Which is reasonable, I guess, given the expense of trying to do driver-du-jour on a deployed base that size (particularly when the user base does not expect to be using driver disks during installation, by and large).
There’s been test hardware lying around for developers to use for years now: how else could Apple have switched their computers so fast? Thanks to Apple there is now consumer hardware available as well.
EFI might have been a “notional spec and initial seed hardware” three or four years ago, but that certainly isn’t the case now.
Until Apple started releasing MacTels, I’d think you’d be hard pressed to find an X86 MB using EFI, so maybe it’s true, maybe they were waiting for broader acceptance from hardware manufacturers, not to mention, as far as marketshare goes, a mactel is still not a common config
PS: It’s current possible to run Windows on a Mac on a virtual machine. The options are QEmu (which is quite slow) or VMWare running on a copy of Linux installed on the Mac (which is meant to be pretty fast).
That latter option is a bit awkward, but I think I heard somewhere that VMWare are working on porting their product to Mac OS X. Unfortunately Microsoft are a lot more cagey about their plans (if any) to port VirtualPC to Intel.
I am sure these are great solutions for occasional Windows use. However, I don’t think that these products are yet mature enough to host a business critical Windows installation 24×7. Perhaps, as you say, when VMWare runs natively on Mac OS X we might consider it.
I am sure these are great solutions for occasional Windows use. However, I don’t think that these products are yet mature enough to host a business critical Windows installation 24×7. Perhaps, as you say, when VMWare runs natively on Mac OS X we might consider it.
This could be true if Apple used totally custom hardware. But Apple uses an Intel Chipset and an off-the-shelf graphics card, which means that as soon as the drivers for these devices get loaded by Windows (or Linux) the hardware will work just as well as in a ‘real’ PC.
You’re right – nobody (or hardly anybody) will use Apple+Windows to host a business critical solution, but the problem will be more about official support than maturity.
apple just did not go 100% XP compatible because
a) they don’t want half of the world to install XP and get support questions
b) they don’t want to be blamed for starting a war againt PC manufacterors and/or Microsoft.
You may be right.
Consider, however, that
a) Other hardware vendors don’t seem to have a problem supporting users running XP.
b) The war is already being fought.
Perhaps, however, Apple feel that the time is not right.
Apple make a really nice OS so that people will buy their nice computers. Going the extra mile to allow Windows to boot on a Mac doesn’t benefit Apple at all. Unless they want to make money from supporting Windows but I don’t think Apple want to do that. They are content selling their OS, Computers, iPods and music/podacsts/movies/whatever else on iTunes.
If OS-X and Apple hardware are the be-all and end-all, then why the mad rush to run Windows? Why not just order up a mass-market Windows PC or laptop and be done with it?
If OS-X and Apple hardware are the be-all and end-all, then why the mad rush to run Windows?
It’s a “mad rush” only among OS enthusiasts, aka geeks. And of course it’s mirrored by the attempts to get OS X working on non-Apple PCs.
Some people want to be able to run Windows on a Mac ‘just because’.
Other people want to run Windows on a Mac so that they can use Mac OS X and then Windows for games/work/whatever without having to buy an extra machine.
For all the people who “don’t get it” , there are a lot of people out there, me included that simply need Windows to work on but would love to run OSX in their free time or doing sideprojects and so on. Had Apple made a machine that could easily boot both systems I would have bought one for sure. Now I simply cannot do that because I would end up with two machines which isn’t practical.
Kind of like upgrading a mustang to an F-150…
Having a system that could triple-boot OSX (for media work, etc), Linux (for nerd cred) and Windoze (for Games) would be wonderful.
I don’t care what Apple says about them beig a hardware company. Letting Windows boot on Apples would be too good for the competition. Also we have to think about who is running Apple, Steve Jobs. Don’t you think there is something kind of personal between him and Bill? Anything that would be good for Bill is probably bad for Steve even if it isn’t bad for Apple.