3:40:46eschatologistI talked to Strandh a while back about looking at Darwin’s IOKit for a model from which to evolve a modern CLOS driver model.
3:41:43eschatologistWhile it uses C++ as its implementation technology, its model is quite sound, and a lot is done via both composition and inheritance (including multiple inheritance) where it makes sense.
3:42:15eschatologistThis means I was able to go from zero to having a working framebuffer driver in an hour or so in 2002, for one example.
3:44:04eschatologistIt also practically means you can write generic drivers and device specific drivers and bus drivers all independently.
3:45:28eschatologistThis means you can do things like use the SCSI abstractions for anything that uses the SCSI command set, independent of the bus or medium it runs over.
3:45:39eschatologistA driver for a PCI device doesn’t care that there are other interconnects in between PCI busses.