Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Crawl -> Walk -> Run: A newbie question
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gentoo Chat
View previous topic :: View next topic  
Author Message
gammaleak
n00b
n00b


Joined: 08 Oct 2014
Posts: 3
Location: New Phlan

PostPosted: Wed Oct 08, 2014 9:13 pm    Post subject: Crawl -> Walk -> Run: A newbie question Reply with quote

Hi!

tl;dr: I'm basically still a Linux newbie. Any suggestions for (free) places or ways to learn important, fundamental Linux basics, including "under the hood" stuff? I want to understand what's going on with Gentoo better.

Full explanation version:

I've been using Linux for just over a year now. I started trying out Ubuntu and Linux Mint. After using those for a little while, I decided to stick with the "source" and I installed Debian 7 Wheezy on my laptop. It's been going great... until I started reading about this systemd thing coming to Debian 8 Jessie.

This is not a systemd post (there are other threads on that topic). However, after reading about systemd, I guess I would consider myself a systemd refugee. Thus, my interest in potentially switching to Gentoo. I really liked the MacPorts system when I used to run OS X, and Gentoo reminds me a lot of that.

When I first came over here to Gentoo I just started going through the handbook. However, I've realized that I really have a lot to learn. I get the *NIX concept of "do one thing, do it well, and interact with other programs." But I wouldn't say I have a ton of depth of knowledge on what that means on a practical level. Yes, I know you can pipe a command's output to grep to search it (for example), but I have a feeling there's more to it than that. :) On some things I'm just entering info "cuz the handbook sez so." For example, I get that fstab has something to do with setting up (mounting?) certain directories(?) Linux expects to see at certain points(?). But as you can tell, I don't really understand it.

I have a programming background (though I'm no longer working in that field). So it's possible I have above-average understanding compared to some Linux newbies. But I'd still like to really know what the heck it is I'm doing as I piece together a Gentoo installation and use the Gentoo & Linux going forward. I realize that some of what I need to know is really Linux in general and not Gentoo-specific.

So my question: what's a good, free place or way to get myself educated?

I've tried just reading man pages. That can do the trick for an individual command (e.g., I scripted my own automated backup system with rsync). However, I don't even know what man pages might be useful for understanding some of what's going on under the hood. And I get the feeling that man pages don't always really pull things together and explain them holistically (that's probably "out of scope" for a man page, anyway).

Thanks for being patient with me.
Back to top
View user's profile Send private message
avx
Advocate
Advocate


Joined: 21 Jun 2004
Posts: 2152

PostPosted: Thu Oct 09, 2014 1:03 am    Post subject: Reply with quote

Welcome to the forums and Gentoo in general :)

It all depends on how low level you want to go with your learning experience? When you say you come from a programming background, I guess you have a basic understanding of what a kernel, compiler, toolchain, etc is(I mean the principle and use behind that, not that you need to be able to write your own)?

If you really want to go deep and have a lot of time and will power at hand, maybe it's a good start to give the Linux from Scratch project a try. That basically tells you what the main system components are, which depends on what, how to build and use them, etc.

If that's too much, then I'd either read up on the things you're interested in(start maybe at Wikipedia and follow to the given source links) or think of a project you're interested in and do the usual learning by doing approach.

I'm personally more of an interactive learner, but you might be different, so here goes the hint that there are many videos available on Youtube. Either for specific tools, distros, speeches on principles, etc. There are also free online courses available from various universities, including f.e. MIT.

Quote:
For example, I get that fstab has something to do with setting up (mounting?) certain directories(?) Linux expects to see at certain points(?).


fstab is a configuration file defining which datasource get accessible at which position in the filesystem. Sources can be harddisks, floppy, cds and other usual storage mediums, but also filesystem images and virtual things (like the kernel's /sys and /proc). Output defines where the stuff is to be found. There are the usual setups with /, /boot, /home, etc, but you can of course add more as needed. A very simple and low level comparison would be Windows defining the first harddisk (or it's first partition) as C:

Hope that helps a little. If not, I'm a fan of more specific questions as what you're asking is very wide and could result in a book starting from Linux' beginning up to Poettering's recent outbreak.
_________________
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
Back to top
View user's profile Send private message
Randy Andy
Veteran
Veteran


Joined: 19 Jun 2007
Posts: 1148
Location: /dev/koelsch

PostPosted: Thu Oct 09, 2014 6:32 am    Post subject: Reply with quote

Welcome to Gentoo, gammaleak.

I can absolutely relate to the reasons for your decision and these are well taken, from my perspective.

I have had similar questions of understanding Linux in general and Gentoo in particular, when I moved over completely in 2006, despite a 20 year PC operating system experience then.
Since then I read lots of books and documentation about Gentoo and Linux in general, most of them were either very specific or very common, but I found one, which make the picture of Linux round for me finally.

It was written by one of our Gentoo devs and here you would find it: http://swift.siphos.be/linux_sea/

Happy reading and much success with Gentoo and Linux in general.

Regards, Andy.
_________________
If you want to see a Distro done right, compile it yourself!
Back to top
View user's profile Send private message
steveL
Watchman
Watchman


Joined: 13 Sep 2006
Posts: 5153
Location: The Peanut Gallery

PostPosted: Thu Oct 09, 2014 8:34 am    Post subject: Re: Crawl -> Walk -> Run: A newbie question Reply with quote

gammaleak wrote:
When I first came over here to Gentoo I just started going through the handbook. However, I've realized that I really have a lot to learn. I get the *NIX concept of "do one thing, do it well, and interact with other programs." But I wouldn't say I have a ton of depth of knowledge on what that means on a practical level. Yes, I know you can pipe a command's output to grep to search it (for example), but I have a feeling there's more to it than that. :) On some things I'm just entering info "cuz the handbook sez so." For example, I get that fstab has something to do with setting up (mounting?) certain directories(?) Linux expects to see at certain points(?). But as you can tell, I don't really understand it.

I have a programming background (though I'm no longer working in that field). So it's possible I have above-average understanding compared to some Linux newbies. But I'd still like to really know what the heck it is I'm doing as I piece together a Gentoo installation and use the Gentoo & Linux going forward. I realize that some of what I need to know is really Linux in general and not Gentoo-specific.

So my question: what's a good, free place or way to get myself educated?

Best place is IRC: chat.freenode.net and /join #bash -- they'll teach you an awful lot about Unix and portability, and bash is essential to Gentoo since all ebuilds are written in it. All the stuff you're talking about with respect to pipes and scripting you can learn from them; just lurk for a while, and make sure to read the urls they come out with. The wooledge site is the best resource on the web for BASH scripting; there are an awful lot of crappy ones though, including TLDP/ABS. Avoid that.

For the broader picture of how Unix tools tie together to make an excellent development environment, you should read "The Unix Programming Environment" (Kernighan & Pike) and /join ##workingset which is about the "working-set" of programmers' utilities, like compilers, make, autotools and so on.

For the code side, ##c and ##posix (check the books link) and ofc #friendly-coders

For the linux and gentoo side, you can't beat #gentoo for support, and #gentoo-chat for downtime nuttiness ;)

Once you're on IRC, and have got used to it, you can explore which of the 50000+ channels interest you.

Oh, I collect Gentoo tips here; you should have a read of this post for definite (first on the second page.)

And welcome to Gentoo :-)

HTH,
steveL
Back to top
View user's profile Send private message
gammaleak
n00b
n00b


Joined: 08 Oct 2014
Posts: 3
Location: New Phlan

PostPosted: Fri Oct 10, 2014 11:15 pm    Post subject: Reply with quote

Thanks everyone for some great replies!

avx wrote:

It all depends on how low level you want to go with your learning experience? When you say you come from a programming background, I guess you have a basic understanding of what a kernel, compiler, toolchain, etc is(I mean the principle and use behind that, not that you need to be able to write your own)?

If you really want to go deep and have a lot of time and will power at hand, maybe it's a good start to give the Linux from Scratch project a try. That basically tells you what the main system components are, which depends on what, how to build and use them, etc.


Yes, I'm familiar with the ideas of the kernel, compiler, etc. I did most of my programming before in a Windows environment so I probably have some unlearning to do. :oops: Thankfully, my university was really good about being pretty platform-agnostic, or even with a bent toward UNIX. So I think my fundamentals are pretty good.

Randy Andy wrote:

Since then I read lots of books and documentation about Gentoo and Linux in general, most of them were either very specific or very common, but I found one, which make the picture of Linux round for me finally.

It was written by one of our Gentoo devs and here you would find it: http://swift.siphos.be/linux_sea/


This looks amazing! It may be exactly what I was looking for! Thank you!

steveL wrote:

Best place is IRC: chat.freenode.net and /join #bash -- they'll teach you an awful lot about Unix and portability, and bash is essential to Gentoo since all ebuilds are written in it.


And thank you for all the great links as well. I'm using Pidgin right now to access IRC, but I don't really use an XMPP account. Anything better out there that you would recommend as an IRC app?
Back to top
View user's profile Send private message
steveL
Watchman
Watchman


Joined: 13 Sep 2006
Posts: 5153
Location: The Peanut Gallery

PostPosted: Sat Oct 11, 2014 3:52 am    Post subject: Reply with quote

gammaleak wrote:
Yes, I'm familiar with the ideas of the kernel, compiler, etc. I did most of my programming before in a Windows environment so I probably have some unlearning to do. :oops: Thankfully, my university was really good about being pretty platform-agnostic, or even with a bent toward UNIX. So I think my fundamentals are pretty good.

Trust me, they're not ;) Start with UPE, and K&R if you've not studied it yet. Both are essential, as are the other books linked above from ##posix
Quote:
I'm using Pidgin right now to access IRC, but I don't really use an XMPP account. Anything better out there that you would recommend as an IRC app?

Well I love konversation, but I tend to recommend quassel to more people nowadays, since it runs just about everywhere, including your phone, and is split into two parts, front-end and agent, ie a bouncer that can live anywhere. (Disclaimer: one of the developers is a friend.)

Both are in portage, but just use whatever you're happy with. XChat is quite nice on GTK desktops, from what I've seen on Ubuntu machines.
Code:
ls /usr/portage/net-irc/
Back to top
View user's profile Send private message
gammaleak
n00b
n00b


Joined: 08 Oct 2014
Posts: 3
Location: New Phlan

PostPosted: Sat Oct 11, 2014 4:44 am    Post subject: Reply with quote

steveL wrote:

Trust me, they're not ;)


Heh. Probably true. :) I don't really do a ton of programming anymore these days. I'm changing careers to something totally different and still in school. Maybe when I get this last year of school behind me I'll have more time to do some hobbyist programming.

Mostly, at this point, I just want to understand the philosophy and also how things work at a conceptual level (I don't plan on writing kernel code, ha!). Since my "previous life" was mostly in Windows, I know I've got a ways to go before I "get it."

Still, I've always prided myself on trying to implement things the "right way" rather than the "fast way" or the "convenient way." I still do some web design as a part time job and I occasionally have to tell people, "No. That's hacky. Stop." :D
Back to top
View user's profile Send private message
steveL
Watchman
Watchman


Joined: 13 Sep 2006
Posts: 5153
Location: The Peanut Gallery

PostPosted: Sat Oct 11, 2014 8:16 am    Post subject: Reply with quote

gammaleak wrote:
Mostly, at this point, I just want to understand the philosophy and also how things work at a conceptual level (I don't plan on writing kernel code, ha!). Since my "previous life" was mostly in Windows, I know I've got a ways to go before I "get it."

Best book for that is UPE; "The Unix Programming Environment" (Kernighan & Pike, 1984). It teaches the "Unix philosophy" without even trying; in fact it's considered the exemplar of that philosophy.

It also happens to be worth its weight in gold, afaic and my boss too, so I'm not alone ;-)

Hopefully you've seen TAOUP already. It's good in analysis, not so much in terms of esr's massaging of history to make himself sound like the messiah, or something, and "Open Source" (as markedly opposed to Free software) the holy-grail of computing.
And it buys into the elitist bs that hobbles so many programmers. The "rules" are good to know, and the stories can be amusing; just don't get caught up in the hype.

UPE is what esr wishes he was.
Quote:
Still, I've always prided myself on trying to implement things the "right way" rather than the "fast way" or the "convenient way." I still do some web design as a part time job and I occasionally have to tell people, "No. That's hacky. Stop." :D

Heh good then you'll love Unix; the whole point is clean, elegant code, since it happens to be the easiest to maintain as well as the easiest to optimise.

Keeping it simple and focussed on one job, is just the natural-language description of properly-modular software.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo Chat All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum