BIOS interface design

[prev] [thread] [next] [lurker] [Date index for 2003/11/06]

From: Darrell Fuhriman
Subject: BIOS interface design
Date: 19:49 on 06 Nov 2003

So, independent of the fact that every vendor seems to use a
different BIOS version in each product, likely from one of
several vendors (Dell, I'm looking at you), BIOSes setup screens
are fonts of bad interface design.

Two... err three... of my regular peeves:

Why do I select '+' to move an down in the boot priority and '-'
to move it up?

Why do you put useless things in the boot order like: "BEV device
not installed."  If it's not installed, I can't bloody well boot
from it, can I?  So why is there?

If I enable booting from the on-board NIC, I have to exit the
BIOS setup and re-enter in order for the NIC to appear in the
BIOS boot order.  Wait a minute, if you're always telling me when
I don't have something installed, why then don't I *always* have
a bloody boot option labeled "NIC not installed???"

Die BIOSes, die!!

I look forward with loathing to EFI, which will eventually
replace the BIOS in newer IA32 machines as it does with IA64.
They've managed with EFI to make things *more* complicated and
even *less* intuitive, all the while taunting you with things
which *could* be really nice, if they weren't done incredibly
poorly.

Take, for instance, NSH -- a shell command tool that Intel built
and included with their EFI reference implementation.  The name
taunts you, "Hey, that ends in SH -- that implies that it's a
real shell.  Maybe now I can do interesting things in this
environment."

Only, after reading through the docs you find that you can't
write something to accept input from STDIN, although docs proudly
tell you that in NSH "Output redirection is fully supported".
There are no while loops (which is fine because there's no way to
increment a variable), no sub-shells, and IF YOU USE TWO VARIABLES
NAMES THAT SHARE THE SAME BEGINNING OF STRING, WHEN YOU TRY
ACCESS A VARIABLE YOU GET THE VALUE OF THE SHORTER VARIABLE
COMBINED WITH THE REST OF THE LONGER VARIABLE NAME.

For instance (sample untested code):

set -v f Hello
#   ^^ you have to say -v so the variable doesn't get set
# permanently in the NVRAM.  Yes, even from a "shell"
set -v foo World

echo %foo

Will yield:

Hellooo

But just so folks don't think I'm picking on x86, I have one word:
Forth.

I hate firmware.

Darrell

Generated at 14:02 on 01 Jul 2004 by mariachi 0.52