If you write software for the Mac, you must obey Apple’s rules. Period. End of statement. If you write software for Windows, you have more lee-way, but Microsoft pretty much calls the shots. If you write software for Linux though you can pretty much do whatever you want, except, of course, you shouldn’t. Because if you do re-invent the wheel every time you write for Linux, we end up with software that doesn’t work or play well with other Linux software. That’s where the LSB (Linux Standard Base) comes in.
The LSB is a set of guidelines on how you should program for Linux. You don’t have to obey its rules. It’s just a really good idea if you do.
This isn’t just a truism. Thanks to Unix, we know exactly what happens when everyone does things their own way on the same system: utter chaos. Even if you were on the same hardware and used the same basic Unix you ended up with a mess. For example, UHC, Consensys, Interactive, and Dell (yes, the Dell you’re thinking about), briefly all had their own versions of Unix SVR4 (System V Release 4) on i386 processors. You could no more run a program designed for UHC Unix on Dell’s Unix than you could run a Toyota Prius on diesel fuel.