The thing that gives you the right to use the GPL’d code in the first place requires you to make the source public if you release a modified version. The BSD and MIT licenses do not have that requirement in them, only a requirement that you acknowledge the use of the source.
So if you created an embedded router operating system based on Linux, and sold routers, you’d need to make the source code to your operating system public, because Linux is released under the GPL and you’re releasing a derivative work.
But if you created an embedded router operating system based on OpenBSD, and sold routers, you would not need to make the source code to your operating system public, because OpenBSD is released under the BSD license and you can use the code freely for whatever purpose you like.
This is why Mac OS X is based on an amalgam of the BSDs, and not on Linux.