Boomer
In my previous post I was worried about Sun’s Boomer project. Now after Sun has released more details about Boomer my worst expectations appeared to be false.
What is Boomer?
Boomer is Sun’s implementation of OSS4 fro Solaris/OpenSolaris. It’s indeed a fork of OSS. Boomer is a hybrid implementation that combines the OSS4 framework (audio and mixer) together with Sun’s earlier SADA (/dev/audio) API. The OSS specific parts are derived from OSS 4.0. However the low level device drivers don’t originate fro OSS. Instead they are modifications of the earlier low level SADA drivers with OSS specific interfases added in them. This approach is necessary to support both OSS and SADA API’s at the same time. In adition the OSS derived parts have been optimized to support all Solaris specific features of the kernel.
The compatibility between the audio (/dev/dsp) API’s between OSS4 and Boomer are expected to be 100%. The main differences are in the mixer (/dev/mixer) API’s. Boomer has some restrictions caused by the differences in the security model. OSS4 assumes that the computer is only be used by the “legal” owner of the system. Boomer is more multi user oriented. Some ioctl calls may only work if the dev parameter is set to -1 (the current device). In adition the hierarchial (group) model of the mixer API is not supported by boomer. Instead Boomer defines predefined names for the mixer controls so that the applications can control the hardware directly. This may lead in some incompatibilities in applications that use the mixer API. However this sould not be an issue since OSS4 bans the mixer API anyway.
Possible issues
Mt original goal was that OSS4 could serve as the common code base for all the plattforms that do audio. This didn’t appear to be possible. Different OS vendors want to differentiate from their competitors by implementing private extensions to the OSS code. This is something we just have to accept. TRhe changes made to the min-line OSS code will (or will not) appear in the derived implementations sooner or later. Incorporating the vendor specific changes back to OSS4 is possible but it will require more or less work.
Sun Ray support
One of the requirements of the agreement we made with Sun was a working interface for their SunRay thin client architecture. We have now provided a “proof of concept” implementation of the Sun Ray audio server (utaudio) that is based on the oss_userdev pseudo driver. All this code is now in open source. Future will show how muct Sun’s final Sun Ray implementation will be with oss_userdev.