Should a serious student of *nix choose a distribution that is POSIX-compliant to learn standard features well

distribution-choiceposix

I want to learn Unix or Linux as a serious student, and specifically want to learn the basics well so that I can have proper understanding and so I can move between platforms and distributions without unlearning unusual habits.

What should I be looking for in a standard distribution? Does it really matter? Many distributions seem to be POSIX-compliant – is that the most important consideration?

Best Answer

If I were in your boat, I'd pick something fairly user friendly and probably similar to the OS's you've used in the past. With Linux the top two contenders for desktop users are Fedora and Ubuntu. Fedora is the community edition (essentially) of Red Hat Enterprise Linux which is the most popular distribution used in the enterprise/government. A lot of people say they like Ubuntu though, I haven't used it to much to come to an opinion either way. Just pick something desktop-oriented like that, so that you can live your normal life and just go down to the command line or use some tool when you have a particular self-imposed homework assignment you want to finish.

POSIX is something for software developers and enterprise systems administrators to worry about, not someone just starting out. Most POSIX drafts standardize things like the options command line tools offer and API definitions. Occasionally, a POSIX standard will set some operational requirements for a system, but even then, that's too fine a point to worry about at your level of knowledge. The skills you're learning will be largely transferable outside of Linux (not completely, though). Even with POSIX, by design it only defines a certain subset of OS functionality, there are things (like diagnostic utilities, volume management, log formats and locations, package management, firewall implementations, etc) that exist outside of any POSIX standard that you'll have to interact with on the regular. Even the stuff that is standardized will often have language like "Whether X and Y will be left to implementation." And that's supposing the given vendor hasn't made the conscious choice to deviate from POSIX (as GNU/Linux does from time to time).

No matter what other people may say or how much stock they put in POSIX, all POSIX does is keep certain key features of the OS consistent across vendors. There will always be a substantial learning curve when moving to a different OS. You actually want it that way though. If things didn't change, then vendor solutions would be limited to the exact features that the working group was able to support (given how slow IEEE moves sometimes, that list of features would be small and slow to be filled out). You want vendor choice because having multiple ways of solving the same problem is a good thing.