Beginning linux programming

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.


Might be a good start. How much experience do you have with linux? Which distro do you use most/most comfortable with?
Thanks, I'll have a look at that.

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?

I went with linux mint(a decision I'm already beginning to regret)
Long time Debian user here. Highly recommend it.
... , common directories for libraries and include files
It's more complicated than it used to be, but here's the proposed directory layout.

Linux distributions are diverging; different directory structures, packages managers, ...

There's also a sniff of sheepish stupidity settling too, such as mass move to systemd. You're left with the feeling that it's under construction--always.

If you want a stable environment to learn and really understand, I recommend Debian GNU/Linux.

If you want something that tracks the latest stuff (latest compilers, packages ...), I recommend Arch Linux.

But in all honesty, I don't understand why anyone uses Linux when FreeBSD exists.
Last edited on
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.
Topic archived. No new replies allowed.