Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Linux is so vast and interrelated that a lack of understanding in one area really affects my ability to work in another. I was just wondering if there are top-down as well as bottom-up paths of learning that can be recommended.
I'm currently learning C, so I'm thinking maybe I should start familiarizing myself with the structure of the kernel. But what are some other foundational components I should be aware of?
That really depends what you mean by "to learn linux". If you are referring to linux as in the kernel, then learning C is a very good start, after which I would recommend the kernel janitor project. If you just mean how to use linux, you can find any overview of the file system hierarchy and of file permissions, then start up Gnome or KDE and use it just like you did windows. If you mean you want to sysadmin, frankly I wouldn't even know where to begin - just figure things out as they arise.
What exactly is your end goal here? Linux development?
If you are just trying to get a good handle on Linux to be a better user then you certainly don't need to know how to program in C/C++, let alone kernel structure.
Not that I would persuade anyone from going out and learning more, but you could spend your time on some more relevant information; like how to configure and compile the kernel, rather than studying how it is designed.
To clarify I'm not completely new to Linux(although I'm not even sure if I could call my self a solid intermediate). I've been playing with Linux on and off since I was 12. My problem is I feel like my knowledge and experience are a mile wide and an inch deep. I think it's about time I truly took a dive in.
I'm going more towards the side of administration and development(not neccasarily kernel development).
Well in that case, the C is a good step. A general knowledge of the various Linux libraries is also important, as is a good handle on writing portable code.
For administration, you want to read up on the various daemon configurations. Sendmail, Samba, etc. Going a little farther, a good knowledge of the runlevels and boot processes of the various distributions (at least the ones you are planning on using) is very helpful.
Well, then try to learn LFS (yay my favorite quote)...
You might wanne get some C/C++ for development under linux...
Oracle is also a good (proprietary) software for database and MySQL/PostgreSQL/Firebird is a good choice for open source database...
Hope this helps
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.