Better Living Through Open Source
Every month I get a number of requests for the Geekbench source code (for a variety of different reasons, ranging from curiosity to a desire to port Geekbench to a different platform). For now, though, Geekbench is closed-source software. Releasing Geekbench as open-source software would cause a number of problems, the major one being it’d make comparing Geekbench results difficult, if not impossible. Part of the value of Geekbench is that it makes it easy to compare results across different configurations and different platforms when run by different users, in part because Geekbench is built with a similar set of compiler and optimization options across all platforms.
If alternate builds of Geekbench were made available, there’s no guarantee what options or optimizations it was built with (let alone whether it was built with changes made to the source code); comparing scores generated by different binary versions of Geekbench would become pointless.
That said, there are certainly parts of Geekbench that might benefit from being released as open-source software. There’s a lot of cross-platform code that’s not specific to Geekbench that might be of interest to other developers.
One particular example is the system information gear in Geekbench. Gathering system information can be tricky; you need to know where to look for the system information, and when the system information can be wrong. Whenever I port Geekbench to a new platform, most of the time is spent writing and debugging the system information code for the new platform; porting the benchmarks and Geekbench really doesn’t take very long at all.
So I created Geekinfo, which is based on the cross-platform system information gear in Geekbench. While it’s got some limitations (such as a C++-only API), it works well and it’s small and easy to understand. Right now it builds on Windows using Visual C++ 2005, on Solaris using Sun Studio 11, and Linux and Mac OS X using gcc 4.0.
Geekinfo is hosted over on Google Code. You can grab the latest source code using subversion, or download a .tar.gz file containing one of the point releases. Both should just build and run; let me know if you have problems with either.
Geekinfo is licensed under the LGPL; which means closed-source applications can use Geekinfo provided any changes made to Geekinfo are also released under the LGPL. Of course, if this license (for whatever reason) doesn’t appeal to you, I’m willing to consider exceptions on a case-by-case basis.
If you’re interested in contributing, there are a number of ways you can help. New features or bug fixes are always welcome, as are ports to other platforms (such as Solaris/SPARC or FreeBSD/x86). As always, comments and suggestions are welcome, too.
I hope you find Geekinfo interesting and useful, and if you end up using Geekinfo in a project I’d love to hear about it.
