OFW vs. proprietary BIOS

Mitch Bradley wmb at laptop.org
Fri Aug 29 20:07:07 EDT 2008


Edward Cherlin wrote.
> I also want to see Open Firmware replace proprietary BIOSes everywhere. 

I'd like that too, but it won't happen.  The market forces that drive 
the computer business still favor proprietary thinking, notwithstanding 
the many FOSS arguments to the contrary.  Intel calls the shots by 
controlling a big percentage of the silicon designs, and Intel is 
pushing UEFI, partially because it allows them to keep their 
chipset-dependent startup code proprietary.  The board manufacturers do 
what the dominant silicon vendor allows them to do.

> In fact, I would like to see OFW-only embedded systems,
> since FORTH is designed for that environment.

I have built such devices, including a web-interface multi-headed 
high-speed camera that could capture the dynamics of golf club to ball 
impact.  The product shipped for awhile, then the company tanked in the 
dot-com bust.

A lot of the OFW functionality is targeted toward the task of managing a 
large collection of possibly-plug-in I/O devices, then booting a general 
purpose OS.  That isn't necessarily useful for your random embedded 
system.  For embedded applications that don't need that level of 
OFW-ness, I have a small Forth interpreter that provides the same Forth 
interactive development/execution/debug environment as OFW, omitting all 
the device tree and booting elaborations.  It fits easily on an ARM SOC 
such as the Atmel AT91-SAM7 family, leaving plenty of space for 
application code and data.  Guess how the OLPC multi-battery-charger is 
programmed?

> (I am assuming that Mitch can add real-time capabilities to OFW,

It already has them.  The golf camera could time the arrival of a golf 
club to the ball with microsecond resolution.

You can add round-robin multitasking (essentially multithreading) to OFW 
by loading a file.  The core data is all in what is essentially 
thread-local storage.  OFW doesn't have preemptive multitasking, but 
I've never really needed it.  Many real-time problems can be handled 
rather well with a combination of explicit-yield tasking and judicious 
use of interrupt routines.  The added benefit of avoiding preemption is 
that synchronization is much easier.

>  and that a variety of
> development environments are available for such systems.) Or perhaps
> OFW/Parrot hybrids. I don't know. It's Free Software, folks, what do
> you want to implement today?
>   

The usual Free Software answer to that question is "I want to implement 
yet another version of something for which there already exists a dozen 
other implementations".   Which is exactly the problem.





More information about the Devel mailing list