New OpenSolaris project: /dev/recycle
I've just heard of this project from a colleague of mine, Avril Dummkopf. To use one one of John Clingan's expressions, Avril is a non-blogging heathan, so I thought I'd share the details of Avril's new OpenSolaris project announcement here.
For many years Solaris has had a device, /dev/null, which is used as a bit bucket. Anything written to /dev/null is thrown away, and reads return EOF. Another device exists, /dev/zero, which is similar except that it returns an endless stream of 0 bytes when read.
I think that this is wasteful, /dev/null especially so. So with a nod of inspiration to Sun's environmentally friendly UltraSPARC T1 processor and T1000 and T2000 servers, I am pleased to announce an OpenSolaris project to implement /dev/recycle, sponsored in part by GreenPeace.
The idea of this device is simple: rather than simply discarding unwanted bytes like /dev/null, data written to /dev/recycle is stored for later recycling: reads from /dev/recycle will be satisfied from this pool. (When the Trusted Extensions to Solaris are used, there is one recycling depot for each MAC label. Data with a given MAC label can only be read or written by a process at the same label.)
I've done some benchmarking, and compared to using /dev/null, using /dev/recycle will result in huge byte savings: on the order of terabytes per year. Bytes are a finite resource, so it just makes sense to recycle them where possible (software engineers have long appreciated the benefits of recycled--aka reusable--code).
I hear that the Mustang (Java 6) team is planning to replace Java's garbage collector with something that uses /dev/recycle. Given that Java currently performs automatic garbage collection, moving to the practice of of automatic recycling collection leveraging /dev/recycle will result in considerable byte savings, which is a Good Thing.
Please join the eco-device community on www.opensolaris.org for more details.
Looks pretting interesting to me, and I'm looking forward to contributing to this project.