Linux BIOS
An anonymous reader pointed us to the Linux Bios Project
which (surprise) is aiming to make a Linux Kernel BIOS. Its got numerous bugs, but some boards are booting. Interesting stuff, and has the potential to dramatically reduce boot time.
- You may put in whatever soundcard you want, from the cheapest to the most expensive
- You may use whatever Network Interface Card you want, BNC/RJ45/Tokenring/Fiber/...
- You may put in as many HD as you want (Hmmm usually at most 4)
- You may use IDE or SCSI for your CD-ROM, CD-R,...
- ...
But also, you may put on it any OS you want, MS Windows, Linux, FreeBSD, Solaris, BeOS,... And the piece of software that allows that is the BIOS.So I don't think that putting Linux directly in the BIOS is a good thing. It's only limiting the machine.
But using a linux variant that fulfit all previous BIOSes functions and adds some things like NFS boot, multitask for 16bit OSes (DOS, whatever version it is), PnP, drivers for WinModems making them usable under any OS not disabling the BIOS, FB drivers,... That would be great. And many of these functions are already implemented in Linux (sometimes partially or with extra-patches).
The linux kernel on BIOS can still be used as fallback, if there are no OS present, like the BASIC ROM was in earlier PC. Maybe there can even be reusable parts between these two. That would allows for that cluster system to be built.
I should however recognize that this project has to be started somewhere... And making the BIOS being the Linux kernel is a begin to it... But I think that it should not be the ultimate goal...
I don't think it's a good idea to have to reflash the BIOS for every kernel update, without forgetting that a bad flashing may make the PC useless.
The real benefit is not necessarily to reduce the boot time to Linux - it's to enable greater functionality in the bootloader that would bootstrap the real Linux installation. Imagine being able to netboot on any card without having to flash a NIC EEPROM! You could also boot from Zip, CD-ROW, DVD or a number of other things. Imagine having a password-protected root prompt available at boot...
The possibilities are endless. I hope this one takes off.
æeee!
Well as much as I hate the time that it takes to boot, I can't remember the last time that I had to.
Has it occurred to anyone that if computer and computer component designers and manufacturers would quit trying to support Microsoft (non-)operating systems, then we'd have thumbnail- sized supercomputers?
Also, how much faster would Transmeta have finished Crusoe if they didn't have to compensate for the 16 (8?) bit code that Microsoft uses? (And how much better would the chip be?)
I'm still waiting for my 1600x1200 contact lens.
I already know all about Linus and how he was born in a log cabin in Finland and his mom and drap scraped to save enough to send him to college where he got into a newsgroup shouting match with Andy Tanenbaum while working on Linux.
I have already read his BIOS. Why do I need to read it again?
Sheesh.
-- You see, there would be these conclusions that you could jump to
I understand your point, and agree. So what I'm about to say is probably sacrilege; please don't flame me.
Basically, all modern PC (Intel x86) OS's ingore most of the BIOS functions and do all the access yourself, and run on bare metal. You are saying why not just toss the middle man, and get rid of the BIOS, replace it with an arbitrary loader that can 1) take care of all other interesting type of boots, like network boots etc. and 2) runs in 32 bit mode.
The problem with this rational is that in order to do this, you are STILL replicating 99% of the "bare metal" functions of the kernel in the boot loader.
So why not put say, MACH in the boot loader, and run mklinux on TOP of that? Then drivers stay drivers (in the MACH firmware), and the OS kernel itself doesn't have to change much (regardless of the hardware) - you just need enough info in the MACH loader to pull needed extra MACH drivers off of simple known boot location (on board flash, or a small IDE disk).
On top of that, if the MACH is a good one, you can run MACH RT tasks next to the linux kernel.
Presto. A kickass embedded environment as well.
Sure its the OPPOSITE tack from completely separating the BIOS and the kernel, but I'm not sure the latter is such a hot idea in the first place.
Fast booting: This is the point I best noted. Just think being able to replace all major A/V equipment in your house with linux boxes. Once they boot as fast as normal equiptment and we can already have them mount a ro filesystem for quick shutdown, my god it will be beautiful. I can't wait to be able to telnet to any A/V in my house. Use TCP/IP to create a electorinic system which can talk to each other. I.E. when my computer starts playing a CD or mp3 automatically mute my TV and turn on CC.
I can hardly wait.
Well, if you read the information on the page, that is exactly what they are trying to get around.
they are replacing the bios with an image of the kernel, so that we aren't dealing with this "sudo-OS".
something you also learn when you read the page, is that they start in 16 bit mode (as required by the cpu) and then about immediatly jump to 32 bit mode, gunzip the linux image, and run with it..
----------------
"All the things I really like to do are either immoral, illegal, or fattening."
"All the things I really like to do are either immoral, illegal, or fattening."
- Alexandar Woolcot
Again, this project is booting Linux right now and is in active development by a paid staff. It's just gonna get better. :}
--
Hand me that airplane glue and I'll tell you another story.
Imagine having even the boot block and swap partition encrypted.
Mike
-- Could you use my software consulting serv
I think alot of people are missing the point of the project.. It's not about speed, although that's a neat side effect. It's about being able to pull boot instructions from a network without the limitations of the technologies that already do that. Look far down on the page.. they have a section called "Why we are doing this.." It's not a speed thing..
wish
---
Quite simply: The OS loads without the normal 'POST' routine present on a standard PC.
In detail: When your PC starts up, the very first thing it does is go to the ROM (or PROM, or EEPROM, or FlashROM...) for the BIOS, and run the Power On Self Test. This is the routine that tests the processor(s) and memory, then initializes the PCI bus, initializes your IDE bus, and runs any Option ROMs on any add-in cards. On my home computer, this process (with memory test DISabled) takes about 2 minutes. (Yes, I have lots of OpROMs.) Unfortunately, most modern OSes (Linux included) do not use the BIOS. They access hardware directly, without ever speaking to the BIOS. So, once the BIOS has done it's job, your OS loads, and pushes the BIOS out of the way.
What Linux BIOS does: It completely does away with your old BIOS and goes immediately to the OS (Linux.) This means no POST, no PCI initialization, no OpROM scan. Because Linux doesn't talk to the BIOS anyway, it isn't needed. Now, the difficulty lies in the fact that you have this miniscule space (1MB on an Intel L440GX+) to hold the system. Plus, they are having difficulties getting some of the onboard hardware to function properly. (Linux DOES like to have the PCI bus initialized for it beforehand, which isn't happening with the old BIOS gone.)
Some of the benefits include:
Hopefully this gives you a little more info on why this is much better than just being able to skip the memory test... ;-)
Another non-functioning site was "uncertainty.microsoft.com."
The purpose of that site was not known.
Not really. The Sun (EE)PROM monitor is actually a fully capable FORTH environment, and I saw some pretty cool hacks for it floating around inside Sun (customers are obviously discouraged from hacking the monitor, but at least it's possible on a Sun, unlike most of their competition. This sort of thing is most often used to "fix" the IDPROM/hostid code that plays havoc with old licensed software on new hardware.)
The Sun monitor has even been codified as an IEEE standard, so anyone should be able to implement and use it.
This is damn cool, though. The implications for net-booting embedded devices alone are staggering. This sure beats flashing boot code into the NIC before you can boot, or living in the PXE straightjacket. (We'll know these guys have cojones when this BIOS inludes support for laptop functions like PCCard, ACPI suspend/resume, and hot-docking. These are *really* ugly areas, but breaking DOS compatibility makes things much easier.)
BTW: Microsoft's plan, too, is for the BIOS to go away and be replaced by some simple address tables telling where things are - I think the "legacy-free" PCs (no ISA, serial, or parallel, among other things) may have this sort of BIOS already. This is a good time fo the OpenSource crowd to bend Intel's ear and make sure that Microsoft doesn't dictate NG BIOS standards to the detriment of everyone else. (They enforce compliance with their plans through substantial OS "discounts" for PC9x/WHQL standards compliance, so they're not really optional for the OEMs that need the Windows OS.)
"The future's good and the present is nothing to sneeze at." - Roblimo's last
Going backward in time, through PCs alone:
What I want in a BIOS is
It seems to me that Open Firmware is a good contender and starting point. It is already fairly widely used, it is programmable, and it seems to work fairly well. One of the nicer features is that it is actually programmable (in Forth) and provides full access to the machine. So, you can load extensions (e.g., new partitioning schemes) into it easily and portably. I believe there is an open source project trying to create an Open Firmware implementation for PCs (I can't find the link, though).
Seriously, this BIOS stuff has got to go. Nobody uses 16-bit operating systems anymore; why are we still booting 32-bit (and soon 64-bit) operating systems using a 16-bit BIOS?
... but in reality, nobody uses any of it anymore, except the little bit required to chain-load into a 32-bit OS.
Non-PC platforms all have nice, simple ROM Monitors with simple, straightforward methods of loading the operating system kernel and then getting out of the way. On the PC, we have this gargantuan pseudo-OS that carries all sorts of legacy crud with it to support MS-DOS
This is one of those things that make the PC a 'fundamentally broken' architecture. Until things like this get changed, there will always be a delineation between PC's and 'real computers'.
--
Tired of FB/Google censorship? Visit UNCENSORED!
At Rebel.com, we've had this kind of bios in the NetWinder since day 1. The original idea belongs to nettwerk (who's at VA now). The idea was that we wanted the NetWinder to be able to boot from: disk, zip drive, tftp, nfs or parallel-port-cdrom. The kernel knows how to do all that, so why not make a bios out of the kernel. PatB
on SourceForge.
It's still crude (we're working on it)- but it is booting Linux _right_ _now_ on SiS530 chipsets.