This paper explores several systems issues regarding the implementation of routing protocols for mobile ad-hoc networks. It proclaims that support for on-demand routing is insufficient in most operating systems and this has hindered ad-hoc network implementation and deployment. To solve this problem, we have developed a general solution for enhancing the operating systems with new system services to support ad-hoc routing, and with a new programming abstraction (API) to facilitate protocol development. We have implemented this approach in Linux and our implementation requires no changes to the standard Linux kernel except a small loadable module. We have tested this approach by porting an existing ad-hoc routing protocol implementation (AODV) to our platform, resulting in a much simpler, cleaner, and faster code than the original implementation.