But, if and this is a mighty big if, you contribute anything to Linux won't you have to share it with the public?
Not necessarily...
If you use GPL code in your code, then basically yes..
But if you write a teriffic driver from scratch for say ... a video capture card, you can release it as binary only and you don't have to share the code with anyone.
Now, binary releases are problematic and you won't garner friends in the community, but you can do it. GPL doesn't mean everything is for everyone..
desiv