mini-PCs as Routers.
levipearson at gmail.com
Tue Aug 13 12:07:37 MDT 2013
On Tue, Aug 13, 2013 at 9:17 AM, Nicholas Leippe <nick at leippe.com> wrote:
> I concede--it's actually both. OpenWRT supports plain-jane ordinary x86--on
> a hard drive, ssd, flash card, whatever. The fact that for *some* devices
> in order to install the distribution of linux requires placing it into the
> firmware along with the rest of the device's BIOS as required by the
> hardware's boot loader makes it so that in those cases it *also* supplies
> firmware. But it's still in addition a linux distro, and not just BIOS.
If you want to be picky about terminology, most embedded systems do
NOT have a BIOS. A BIOS is a standardized interface to low-level I/O
functionality provided to an OS, and most embedded systems (and even
modern PC OSes) build most of the functionality of a BIOS directly
into the OS kernel for the sake of efficiency. In addition to the I/O
interface, PC BIOS implementations tend to do a lot of low-level
hardware initialization and configuration, which functionality tends
not to be entirely duplicated by PC OS kernels as there's no real need
for it once the BIOS takes care of it, but that's not the defining
feature of a BIOS.
Embedded systems often split these tasks at some point between a
bootloader and the kernel (if there is a kernel), but once the
bootloader has done its job, it's typically wiped from memory, so it's
definitely NOT a BIOS, which remains accessible to the OS to perform
low-level IO tasks.
> You can do the exact same thing with the linux coreboot project--you can
> include your kernel in your PC's BIOS flash rom for faster booting--the
> rest of your OS remains on other media, however--thus it doesn't turn
> RedHat from a distribution into firmware by doing so.
Coreboot used to be called Linux BIOS, which was kind of a misnomer as
it didn't actually support any more of the BIOS functionality than the
Linux kernel needed to boot. It *replaces* the system BIOS on the
BIOS ROM, but what you get in place of the BIOS is a bootloader, not a
real BIOS. If you want a BIOS, you can use coreboot to load SeaBIOS,
which is actually a BIOS. Coreboot doesn't actually contain a Linux
kernel, either; it just boots one very quickly from a ROM or even a
network connection. It's fast precisely because it *isn't* a BIOS.
> But I concede that we continue to relax and conflate the meaning of things
> as time progresses and technology becomes more flexible. Eg, "rewind" on a
> CD or DVD player doesn't mean spin it backwards...
Firmware was originally just the microcode in a CPU; it was relaxed
very early on to cover the software flashed into ROM on embedded
systems. The fact that ROMs are no longer quite read-only and that
embedded systems are more and more resembling PC systems in terms of
the software that can be flashed into them has made the firmware
concept bigger by expanding the terms it's definition relies on more
than changing the definition of the term itself.
More information about the PLUG