Partial answer to exercise 2: wireless is moving towards having _two_ midlayers, cfg80211 and mac80211, and additionally has library functions. Just to give one example, this shields drivers from details like wireless extensions. And this is a good thing.