Linked by Thom Holwerda on Thu 1st Feb 2007 14:41 UTC, submitted by Oliver
FreeBSD "Linux has a large amount of device drivers for hardware not supported on FreeBSD, especially USB devices. Not rarely, such drivers have been written based on information derived by protocol sniffing, reverse engineering and the like. This makes the code highly undocumented, and renders the porting effort extremely error prone. To help with this task, I decided to start working on an emulation layer that would let us recompile the linux source code on FreeBSD, and provide a sufficiently complete emulation of the kernel APIs so that device drivers (or at least certain classes) could be used without modifications to their source code."
Thread beginning with comment 208270
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: Back on Topic
by Vanders on Fri 2nd Feb 2007 08:03 UTC in reply to "Back on Topic"
Vanders
Member since:
2005-07-06

This looks similiar to the sort of thing we do on Syllable. Providing an API that is "close enough" to Linux has worked very well for us, at least. We can port things like ethernet and USB drivers very quickly, with the minimum amount of changes and maintain similiar levels of hardware compatability as the original driver.

Tracking the ever-changing Linux API hasn't been too bad. It helps if you're only dealing with a limited number of driver classes, because that obviously limits the size of the APIs you need to concern yourself with. The fundemental APIs (E.g. Stuff like kmalloc()) are very stable, so there are generally no problems there.

Reply Parent Score: 2