CoreBoot (LinuxBIOS) Can Boot Windows 7 Beta
billybob2 writes "CoreBoot (formerly LinuxBIOS), the free and open source BIOS replacement, can now boot Windows 7 Beta. Videos and screenshots of this demonstration, which was performed on an ASUS M2V-MX SE motherboard equipped with a 2GHz AMD Sempron CPU, can be viewed on the CoreBoot website. AMD engineers have also been submitting code to allow CoreBoot to run on the company's latest chipsets, such as the RS690 and 780G."
Written in C, contains virtually no assembly code
What is the benefit of writing a BIOS in C over assembly code? Is it for transparency? Easier to catch bugs? Does compiling from C to machine assembly protect you from obvious errors in assembly? Is it for reusability of procedures, modules & packages?
Oftentimes I have wished I knew more assembly so I could rewrite often used or expensive procedures to fit the target machine and try to optimize it. I don't know assembly well, however, and therefore don't mess with this. Doesn't handwritten assembly have the potential to be much faster than assembly compiled from C? I thought often run pieces of the Linux kernel were being rewritten into common architecture assembly languages because of this?
I'm confused why mainboard companies don't write their BIOS in C if this is an obvious benefit--or is it that they do and all we ever get to see of it is the assembly that results from it?
Can anyone more knowledgeable in this department answer these questions?
My work here is dung.
I'd really like to see the buggy vendor bioses get the boot and be replaced by this. The BIOS on my motherboard has all sorts of quirks, like missing one stick of my ram during detection randomly, to really laggy page switches. Windows support is what CoreBoot needs to get accepted.
Obligatory blog plug: http://www.caseybanner.ca/
Oh never mind.
Meta will eat itself
Excuse my ignorance but is it already possible to have a fully working computer that doesn't perform a single unknown operation?
I've been buying Intel because they support their 3D graphics with open source code really well under Linux, unlike AMD/ATI.
But Coreboot says support AMD, because AMD helps them run on AMD chipsets, unlike Intel.
Help!
There may be SOME architecture specific code, even a lot of that can probably be written in C. 99% of the Linux kernel is C and that has to interact with hardware too.
As far as efficiency goes, in the old days it was true that a coder with an intimate knowledge of the architecture could usually hand code more efficient assembly. Modern C compilers however can do a LOT of optimization and generally the resulting code is faster than anything that could be coded by hand, or at least AS fast. Even if it is microscopically slower it is still a LOT easier to use C. Plus if hardware abstraction is done properly even a low level driver back end should be portable for the most part.
Manufacturer BIOS may be written in Assembly since they are A) targeting a specific board which is going to obviously only run that one family of chip and B) probably have a lot of legacy assembly code they would rather not bother to port to C. Neither of those would apply to Coreboot.
"Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
LinuxBIOS/CoreBoot is fantastic for embedded work, but no one has been performing ports to hardware with Intel chipsets.
Idiot! It should be "One small post for a troll."
The original misquote only worked because of the double meaning for man. Stupid troll.
Why is it "news" that it can launch Windows 7?
I guess what I am struggling to understand is why the news isn't - "CoreBoot can now boot x86 operating systems."
What is special about Windows 7 that made it harder to boot / run under CoreBoot as opposed to Windows XP or 2003 Server?
Should a bios even be able to tell the difference between booting Linux and Window's bootloaders?
In our ever-increasing need to "dumb down" all things related to computers, this will only result in more bloated, slow code.
*sigh*
I for one look forward to our "21 freaking seconds to access BIOS?!" overlords.
Sig Follows: "Suppose you were an idiot. And suppose you were a member of Congress. But I repeat myself." -- Mark Twain
Just a random ramble, but why change the name from LinuxBIOS, surely it would have been easier to point out the irony of Windows needing Linux to start itself. Maybe it would have got some people to think more of the capabilities of Linux then?
Take Nobody's Word For It.
Sign on a Google desk:
"The chair stops HERE"
Seven puppies were harmed during the making of this post.
Given the slow move towards EFI, would it not make sense to make CoreBoot an EFI loader, with the BIOS support option? If it is EFI compatible I couldn't see it clearly marked on the website.
Jumpstart the tartan drive.
My view is .. "it ain't done till Windows 7 doesn't run"
I think they should tweak it so that Windows 7 boots, but every 30 mins or so it crashes. Call it ... Karma!
Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
I thought modern operating system (i.e. not-DOS) make no BIOS calls once the drivers are loaded. Does any of this code get executed from the desktop?
Congrats to the team.
At first you think no big deal, then you realize they are making their own bios, something most of us would fear trying. Congrats for doing something difficult, well.
I wish we in the OSS world had "Open Source" printer chips and toner formula. These would enable anyone with the ambition, to build "free" printers instead of shelling dough to these greedy companies.
Excuse my ignorance but is it already possible to have a fully working computer that doesn't perform a single unknown operation?
Possible? Yes. Feasible for an enthusiast? Not in the first quarter of 2009. Intel and AMD CPUs contain secret microcode. There exist Free CPU cores such as the MIPS-compatible Plasma, but as far as I know, none are commercially fabricated in significant quantities.
There are some things I don't understand about CoreBoot, so perhaps someone can enlighten me ;)
Let's say i replace the BIOS of my mainboard with CoreBoot. How do I configure the system? I know that Linux doesn't really do any BIOS-calls any more (legacy-free), but how do I for example change ram-timings, voltages, memory speed, change the multiplicator of my cpu, disable certain onboard devices, or tell the system do boot from cdrom and not from disk? To me it seems that CoreBoot makes sense for "locked" devices, like routers and stuff, where you don't actually need/want to change these things. Am I right or wrong? :-)
Looking at the CoreBoot site, it seems there best support is for the AMD Geode chips. It is ironic that this Slashdot article is one after the article saying AMD has no successor planned for the Geode line and it may fade away.
Learning HOW to think is more important than learning WHAT to think.
I noticed in the first system info image that the processor and memory fields said "Not Available" but in the 2nd image labeled "system information closeup" it then shows data populating those fields.
Maybe I've been trained to look for tricks in marketing campaigns run by Microsoft but these kinds of details should not be overlooked or else it gives a sense of being falsified.
LoB
"Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
I always wondered why people thought they were so cool...but if you can equate bugs to 'lines of code' I have a feeling they are pretty efficient. ;)
--Welcome to the Realm of the Hawke--
. . . now they'll fix things so that it can't.
The law is not an ass. No really.
It deserves praise and support previously reserved for deities. I'm only overstating this a little.
The benefits of CoreBoot are many:
1. Cheaper motherboard manufacturing. TPM chips are expensive components when mass producing motherboards.
2. CoreBoot gives hardware manufacturers a viable market that Microsoft and Apple cannot touch.
3. Keeps the hardware open for all operating sytems and devices. This simple fact cannot be stressed enough. As the world slowly migrates to 64-bit everything. Microsoft has locked hobby driver developers out of Vista in 64-bit land.
TPM BIOS modules have the capacity to lock out unapproved operating systems, devices, etc. Are they widely implemented? No. Is it possible to the point of being well documented? Yes.
http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
Sweet historical slam on an FP troll. Sweet. Just wish I could have used my mod points on you.
You do know that with the historical reference you would have gotten modded up if you hadn't posted AC?
Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong fix.
Will it also boot Windows 7 on an Intel chipset?
Specialized instructions (MMX, SSE, etc) can provide substantial speed boosts with certain code. Unfortunately no C compiler really takes full advantage of those features (if at all) despite them being widely available nowadays.
So in those cases it may be a whole lot faster to use assembly. Usually this is just embedded within a C function because of the specialized nature.
Recent analysis of the tapes show that he DID say "One small step for a man".
Zing.
BIOS is way, way obsolete. The bigger question is whether or not Windows 7 will be bootable on EFI machines. This article says that Windows 7 "delivers support" for EFI. It is likely that means that it will be bootable on EFI equipped machines, but there's wiggle room there.
EFI and GPT offer real improvements beyond merely sweeping away the legacy cruft of decades of backwards compatibility. It's time to move on.
I wish we in the OSS world had "Open Source" printer chips and toner formula. These would enable anyone with the ambition, to build "free" printers instead of shelling dough to these greedy companies.
Dayumn! Superb idea? 1) Which obsolete hardware would be best to start with? 2) What's the high-volume, most available? 3) Sturdiest, least likely to be a pain? Freegeek.org has oodles of used printers if anyone wants to start building a hardware base.
There is nothing wrong with yr Internet. Do not attempt to adjust the picture. We are controlling the transmission - NSA
It's an interesting idea. I think open source toner might be a bit tricky (likely the manufacturing process is difficult) but it certainly might be possible to work out the components for an open source driver board that could be used as a module in existing printers, bypassing the "chips" and allowing the simple use of third party toner. It might then be possible to move forward with open source printer hardware from there.
With Intel, Apple, and rapidly the entire rest of the x86, x64, and IA64 hardware world moving to (or explicitly running on, in the case of Apple and IA64) EFI, what is the whole point of CoreBoot besides being a nifty experiment? Intel won't let anything replace EFI anytime soon. Trust me - I've had EFI shoved at me for almost a decade.
I noticed in the first system info image that the processor and memory fields said "Not Available" but in the 2nd image labeled "system information closeup" it then shows data populating those fields.
If you watch the vid you'll notice it takes a moment to fetch that information.
This is a great project. Going to their website it seems like most of the CPUs fully supported are so obsolete one has a hard time buying them. My guess is that there's little support in terms of financing or manufacturers releasing specs. Could it be that the traditional BIOS makers have a lock-in and special interests are interfering?
I don't like to leave my computers on all the time, but I do use them sometimes as PVRs, so one pet peeve I have is the hassle of trying to set up my computers to switch off and switch on at various times the way an old fashioned VCR does. Or the way my Mac running OS X does when I use it as a PVR with Eye TV. I would hope that CoreBIOS would fix that situation. Now that's me. I bet a lot of people would have various needs that could be addressed by an open system.
AMD itself is helping with proper free BIOS support. But ATI is forcing world + dog to use their atombios bytecode quite harshly...
If only the AMD RS780 board BIOSes weren't editing the ATOMBIOS bytecode directly to tell it how its busses are used...
Or how ATI is holding AMD back, has it ever done anything else?
Talk to Stallman. He may be willing to help -- since an issue with a printer was what got him started with Free software:
http://en.wikipedia.org/wiki/Stallman#MIT.27s_hacker_culture_declines
(With a fattening layer of MS)
Anybody feel like booting from CoreBoot into Windows 7 beta then running KDE 3.2RC?
Then I read there's even a "Flashrom Live CD". < 185MB. Instant and spontaneous ejaculation!
Then it came to me:
This page is a work in progress. There is no ISO yet. This is just a plan for now.
This is exactly like a fine woman looking at you. Saying she will give it to you. Eventually. Maybe. Cock teaser.
Still a beautiful woman I like having around.
Now please excuse me. I'll be off masturbating.
I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
The start-up in hardware and consumables doesn't more than ambition - he needs divine intervention.
The competition is Cannon - Dell - HP - Lexmark.
The competition is guaranteed shelf space in every WalMart.
Every drugstore or mini-mart in a town big enough to rate a single traffic light.
...the linux bootloader! (We'll have to wait for the desktop.)
One ring to bind them - should probably have more fiber and less rings in their diet.
The answer is simple: just don't buy a printer that requires chips embedded in the toner cartridges. Most laser printers, AFAIK, still don't. Even my HP Laserjet 2300 doesn't require it (though it will give you a warning message when you turn on the printer with a non-HP cart, but that doesn't matter).
It's mainly the stupid inkjet printers that have this problem, and anyone stupid enough to use an inkjet printer deserves to be ripped off, when laser printers are so much cheaper to operate, and only cost $100-200 now (and much less on Ebay for very nice HPs).
AMD engineers have also been submitting code to allow CoreBoot to run on the company's latest chipsets, such as the RS690 and 780G."
Now that would freakin' rock!!!
Until now, CoreBoot has been really hampered by the fact that it has mostly been supported on server boards, with little to know support on Desktop and Laptop chipsets. This is mostly the fault of the chipset/mobo manufacturers, who have zealously guarded their legacy BIOS crap for reasons that are pretty unfathomable to me.
I would love to be able to run CoreBoot on my Desktop and laptops. It would help to fix soooo many of the legacy BIOS issues that people tear their hair out over: booting USB devices, suspend/resume support, wake-on-LAN support, network booting.
So, go AMD. I've been a loyal fanb^H^H^H^H, uh, customer for years and I'm really glad to see them moving in the direction of open-sourcing their video drivers and now releasing chipset docs. Excellent news.
My bicyles
Easier to maintain, more portable accross platforms, easier to do more complex stuff, easier to integrate/reuse existing librairies/code, etc.... ?
I could say that about a refrigerator-dolly manufacturing company, or a public librarian, or a nail salon.
If only Intel would be as forthcoming with open code for their chipsets as they are with open code for their GPUs
An interesting idea, but just pointing out that you can use cheaper toner cartridge supplier. For example Pitney-Bowes (of postage machines fame) makes a wide selection of high quality cartdridges that are often about half the cost of the original and can be ordered online; they especially ocver HP models and they include a warranty that covers printer repair costs if the cartridge fails and pours toner all over the machine. Alphajet is another supplier I have had good experience with. There's also BC in color inks and Zebra in toners (with a less stellar track record but usually much better than refilled cartridges; refills are horrible once the same cartridge has been refilled over two or three times). The funny thing is, I know a Zebra rep, and he revealed that they subcontract the same generic cartridge plant in Portugal that Lexmark uses. ;-)
:-)
Just saying that you *can* stop shoveling money to the greedy printer makers with the Gillette business model fairly conveniently -- but I do hope the "OpenPrinter" sees the light of day someday.
It is much more effective to have Linux on a bios, and allow it directly throttle system settings on demand. Back when hardware IO was on a proprietary bridge, eventually an assembly procedure module will be universal to any operating system for the kernel to interact its procedures. Instant bootup in Linux or even *gasp* Microsoft Windows would be similar to how Apple has closely integreated their software to BIOS. Instant-On will be just that. In terms of Linux, memtest86 or whatever it's called, would make a fair footprint rather than the default sissy hardware check that is performed; imagine a hardware check done in Linux to test the reliability of hardware while it is actively running! Imagine firmware upgrades that take effect while still running the OS, and with compatibility backdoors to prevent hardware hangups so they could be reset into a compatibility mode to try again for full function non-default!
As for me, I wouldn't mind seeing Linux kernel integrated with a complete DirectFB with minimal X Server, all on BIOS in immediate power-on mode.
You're assuming that firmware must, of necessity, be for a single platform. This assumption is wrong; while different platforms do need different object code to some extent, it is otherwise good to use the same firmware code on many platforms.
Read up on Open Firmware and EFI. These are existing firmware standards that are used in more than one CPU platform. They go even further than that, actually, and make the firmware include a platform-independent bytecode interpreter, so that it is possible to write cross-platform binary device drivers or firmware extensions in general. The idea is that your device's firmware would come with simple platform-agnostic drivers that can be used during the bootstrap process. The OS can use those drivers provisionally until it loads more featureful, native code drivers.
From what I read, CoreBoot has a very different design philosophy from these firmware standards, and it's not trying to do anything that elaborate; but still, writing it in C allows the firmware to be much more easily ported to other platforms.
Are you adequate?
The funny thing, though, is that I've heard that since at least the 80's. (Never mind that it was provably wrong, too.) But there was always some crowd repeating the same mantra. There was always some nebulous X years ago when competence was worth it, and a now where the compiler does a better job than anyone imaginable.
I'd imagine that it might be as old as when v2.0 of the first compiler was available. See last year's FORTRAN was worse than hand-optimized assembly, but this new compiler does everything better than any human! Knowing the underlying architecture is soo 50's. Move on to the 1960's already, you assembly has-beens. Heh.
The problem with the above line of thinking is assuming that a human would do the same optimizations that a compiler does. And in that case, yes, might as well let the compiler do it. What a human does better though is changing the algorithm, if another one fits the architecture better. The main advantage is probably not even the actual coding of assembly itself, but seeing actually what's the resulting code, exactly which registers are used and what the timings are for doing things the X way vs the Y way. Seeing that the X way actually needs swapping values to memory, while the Y way fits them nicely in the available registers. _That_ is the advantage.
Additionally, almost no compiler yet is _that_ complete. Most have basically a table of usual patterns that come with the associated clever optimizations, but are sometimes thrown off the hook by as little as writing a comparison the other way around. Java's JIT is for example well known and documented for it. And yes, the first Hotspot versions were documented to be thrown off the loop by as little as changing an "if (a == b)" to "if (b == a)" in a popular benchmark at the time.
There'll always be some piece of code which misses that completely.
Which brings us to another point: cheating. If you think that the compiler will perform as good on _all_ cases as it performs on the showcase benchmarks, I have some logging rights in Sahara to sell. The generated code for popular benchmarks, which performs as well as the best hand-optimized assembly... guess why? Because it _is_ hand-optimized assembly. The compiler is programmed to recognize whole chunks of that benchmark and essentially use the hand-optimized assembly that exists just for it.
Assembly has its own problems, don't get me wrong. It's _very_ expensive to produce, a nightmare to maintain, and isn't cross-platform either. I wouldn't advise it for whole projects or for most projects, for that reason. Bang per buck, the vast majority of stuff out there just doesn't justify using assembly. But the myth that an expert can't produce better assembly code, is still just that: a myth.
The real question is whether you want to pay a _lot_ more, for a little extra speed. But (unless you hired a monkey) that extra speed has always been there, and still is there.
A polar bear is a cartesian bear after a coordinate transform.
On the compiler, the architecture, and what the code does and how its written.
It has been a few years since I had the job of writing device drivers, but we did quite a bit of experimentation around this point. This was on 68k processors back in the 80's, but what I learned was that in MANY cases the compiler is pretty good. Interrupt Service Handlers, the really speed critical part of your driver, are also usually quite simple linear code. Maybe you have a simple loop, a lookup table, index a data structure or two, move some bytes around. If you're doing more than that its probably a bad design.
Given that the entry to the ISR is already a context switch, so you're starting out with an empty pipeline what we discovered was that in actual practice the C compiler was reasonably close. Its almost 20 years later, compilers have improved. I'm sure you or I could look at gcc output and tweak away some cycles here and there, but the difference is not usually much. The other issue was of course that case where the compiler just missed something entirely, but those cases are almost always ones where you can tweak the source a bit and fix the problem or use a different flag.
Of course the 68k architecture was easily 50 times better than x86, so that helped too! lol. I still think its a tragedy that x86 went anywhere, the whole design is $*}#...
"Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
I just found 68k to be a really elegant design. All orthogonal registers, no real special cases, etc. No need to worry about the fact that your value needed to be in register A and not B, etc. That really did help a lot.
Never did make sense to me that people couldn't just pick up the documentation for the processor and SEE that instruction X took 25 clock cycles and Y took 3. Ah well, the bad programmers are what lets the good ones stand out! ;)
"Malo periculosam, libertatem quam quietam servitutem." -- Jefferson