Can you guys recommend any books or tutorials that give a good overview of the linux environment from a programmers perspective. I'd like to know how libraries work and how to build them, common directories for libraries and include files, how to install new libraries manually, how to find dependencies, which command-line tools are most useful for building applications. Those sorts of things.
I have a fair bit of experience with linux though I've only been using it for a few weeks. I went with linux mint(a decision I'm already beginning to regret). I know my way around the command-line well enough. Some things still confuse me, like why are some programs installed in /home and some in /usr and some in /usr/share and what are all these hundreds of files under various directories for?
You're left with the feeling that it's under construction--always.
Honestly I get this impression of linux in general. I have tried Mandriva in the past and both that and mint have these minor bugs that just keep stacking. Maybe they're just not good distros as I've been led to believe. I'm really interested in FreeBSD now.
The thing is, Linux is just a kernel. A Linux distribution is the Linux kernel and a varying set of packages from the FSF, hence the term GNU/Linux. Each distro has its own divergent goals, which accounts for increasingly differing distributions us poor users have to deal with.
FreeBSD (the BSDs in general) is a complete system: both kernel and system utilites. Further more, there's convergence rather than divergence with the different BSDs. If you're capable of learning to read shell scripts and C, everything you need is there, in plain sight, for you to really understand how it works. There's plenty of documentation and an intelligent community behind it.
Well I went ahead and installed PC-BSD. It had a few little quirks but so far I like it much more than mint. The only thing I'm not sure about is the software manager. It seems to download every dependency for each package no matter what, so a program that by itself is only 4MB is actually a 200MB download.