[Dredging into my memory, and anecdotal from a friend of mine...]
I think Sun uses (or at least used to) something like this. It is based on Forth and is called OpenROM or something like that. I believe that all the adapters had enough of a driver stored onboard to support booting. It was supposed to be able to run on any of the platforms they supported. I just did a quick search and found references to OpenROM and OpenBoot. I believe that the guy that wrote this is a pretty well know Forth personage.
Now the buzzword is I2O. Some believe this to be a plot by Intel to sell more 960's since most (all) I20 adapters have a 960 onboard. There is a lot of controversy over I2O in the Open Source camp.
-david -----Original Message----- From: Jan Bottorff janb@pmatrix.com To: squeak@cs.uiuc.edu squeak@cs.uiuc.edu Date: Saturday, December 26, 1998 7:11 PM Subject: Re: SqueakOS
At 09:32 AM 12/26/98 -0500, Paul Fernhout wrote:
I would imagine the big issue isn't getting something to boot -- it is having a knowledge base for interacting with the variety of graphics cards, ethernet cards, modems, SCSI adapters, HD drives, etc.
I've recently had some interest in development of what I'd call a universal device driver spec. This would be a language or mabey just a framework for some current language that would allow hardware developers to specify drivers.
Pretty much ALL device divers are currently written with the OS unique code mixed in with the device unique code. A very large part of developing a driver is understanding the hardware and the subtle ways to interact with it. I don't see any good reason why this knowledge can't be stored in a form that was totally platform/OS independent.
The fantasy is the manufacturer of a piece of hardware could include a universal driver (in ROM or on disk). This driver would gurantee your hardware at least worked, on any OS that supported the universal driver model. This also would not stop companies from developing drivers highly tuned to specific device/OS combinations.
It seems silly that a large amount of hardware is becoming unusable because the manufacturer is not expending software development effort to rewrite drivers for each new OS release. For example, many Win95/98 drivers will not work with Win 2000, and a BUNCH of hardware will become obsolete. It also seems like there is some real possibility of multiple OS's being significant on commodity hardware (Windows 98, Windows NT/2000, Linux, embedded OS's). Currently, each of these requires very different drivers.
It occurs to me that Smalltalk might be an excellent tool for modeling this OS independence, either as some sort of compiler from universal driver format into OS/platform specific format (a driver source code generator) or as something more exotic (universal driver virtual machine or even compilation of universal driver source code into something executable on the fly).
Right now, I'm in sortof a strategy phase, as in; am I crazy; could this actually be made to work; what is the very basic framework to make it work.
On the plus side, I have lots of experience writing drivers and exotic run-time environments (like virtual machines). On the minus side, I don't believe anybody has done something like this (mabey there is a good reason), and I have to spend a large part of my time doing work for clients with better defined projects.
It had occured to me hardware manufactures might be interested in funding the R&D effort, as it could bring enormous benefits to them down the road. Say forty hardware manufacturers put in $25k each, this would provide sufficent funds for a small team to make a very serious run at the problem. My sense is $25k is a drop in the bucket if your primary task is designing a new peripheral device. I'd think the R&D costs for a single printer from somebody like HP must be millions of dollars.
The issue of device drivers is a serious problem across many projects, from Windows to Linux to embedded Smalltalk. I personally believe solutions much better than are currently available would be possible.
Jan Bottorff, President Paradigm Matrix, Inc.
Paradigm Matrix Inc., San Ramon California
"video products and development services for Win32 platforms" Internet: Jan Bottorff janb@pmatrix.com WWW http://www.pmatrix.com Phone: voice (925) 803-9318 fax (925) 803-9397 PGP: public key http://www-swiss.ai.mit.edu/~bal/pks-toplev.html fingerprint 52 CB FF 60 91 25 F9 44 6F 87 23 C9 AB 5D 05 F6 ___________________________________________________________________
[Dredging into my memory, and anecdotal from a friend of mine...]
I think Sun uses (or at least used to) something like this. It is based on Forth and is called OpenROM or something like that. I believe that all the adapters had enough of a driver stored onboard to support booting. It was supposed to be able to run on any of the platforms they supported. I just did a quick search and found references to OpenROM and OpenBoot. I believe that the guy that wrote this is a pretty well know Forth personage.
Now the buzzword is I2O. Some believe this to be a plot by Intel to sell more 960's since most (all) I20 adapters have a 960 onboard. There is a lot of controversy over I2O in the Open Source camp.
Indeed, the iMac boots in a funny mode when you hold some magic keys down, into a Forth-like interpreter that seems to be closely related to device configuration. I recall seeing some press describing this awhile back, and some indication that more Apple computers will be using that thingie, whatever its called. OpenROM or OpenBoot sounds familiar.
A follow-up on my previous posting about Apple's Open Firmware. A website dedicated to the same begins at:
Finally (this is because I have now made three postings about a technology I know nothing about), I note that the Open Firmware is subject to a IEEE standard: IEEE Standard 1275-1994.
squeak-dev@lists.squeakfoundation.org