You can try looking at the Upgrade Guide for 11g
One option would be to do an upgrade from 9iR2 to 11g on the Windows box, then migrate the 11g database from Windows to Linux. One complication for that is that 11gR2 isn't available on Windows. Also, I think you'd need to upgrade to the terminal release for 9iR2 (I think 22.214.171.124) before upgrading the database.
Another option is the imp/exp option. You can do a full exp of the source database, but you'd want to do schema level imports into the destination (as you don't want to override built-in objects with 9i versions). You'd need to manually recreate PUBLIC objects (such as public synonyms, directories, database links). DBMS_METADATA.GET_DDL can help extracting the SQL for that.
If the data volumes are small enough, I'd go for the latter option. If they are too large, and the exp/imp takes too long, I'd probably go with the former where you should be able to use cross-platform transportable tablespaces (which came in with 10g) to speed up the data move. That may mean waiting a couple of months for 11gR2 on Windows or moving to 11gR1 on Windows, doing the migration at that level then (optionally) upgrading to 11gR2 on Linux.