You must keep the source open, and any work derived from the code, however, if you use the Kernel, write your own application stack on top of this (pretty much ALL GNU stuff), then you don't need to open it.
The GPL says that the "derivative" works ... so if you are writing new code, rather than extending it, then that is fine. In fact, you could even, for example, use the GNU toolchain, the Linux kernel, and then have your own system on top of this (or just DE), which is closed source.
This is when you modify / extract from something that you must keep it open!
source share