In the dim, dark days when wireless LANs were new (meaning a few years ago), the state of wireless on Linux was atrocious. It was difficult to find cards that were supported, and some of them didn't support all the features, and some of them needed their own configuration tools. Today, however, the situation has changed, and Linux has some of the best wireless networking support of any operating system. Sure, there still are devices that don't have drivers, and in classic Linux style it is a pain to configure, but it certainly is filled with features. In particular, cards that use Atheros's chipsets have fantastic support in the form of the MadWiFi driver, the development of which has been supported by Atheros itself. Not only does this driver support all of the typical 802.11 features (access point mode, client mode, wireless protected access, etc.), but it also has a "raw" device. This came from the madwifi.stripped driver as part of MIT's Roofnet project. The raw device allows userspace programs to read and write 802.11 packets directly to the hardware (more or less). I'm currently experimenting with this feature, and I'll write more about it when I actually have something to show off.