Want to get into the inner "core" of Linux, where to start

Red Squirrel

No Lifer
May 24, 2003
67,936
12,384
126
www.anyf.ca
I've been using Linux for quite a long time, mostly experienced with the server side but been using it on the desktop for about a year now, fighting lot of issues related to my hardware but that's another story... just realized, I've never really gotten into the deep inner workings of it. I've never recompiled a kernel or done any of that stuff. I'd like to learn more in depth how everything comes together. Basically where to go to view/change the source, and compile it etc... Mostly just for educational purposes. What's a good place to start so I can learn this stuff? Thinking either a good website with tutorials, or a book.

I'm also thinking if I can learn more about the inner workings it may even help me get better at troubleshooting stuff. It's open source, the code is there, I may as well take advantage of that and actually learn it better.
 

Jodell88

Diamond Member
Jan 29, 2007
9,491
42
91
Before you go all the way to linux from scratch, I'll suggest Arch Linux or Gentoo.
 

theevilsharpie

Platinum Member
Nov 2, 2009
2,322
14
81
I'll play the contrarian today.

Arch and Gentoo are not going to help you learn the inner workings of Linux more than any other distribution. All these distributions do is give you some automated distro compilation tools and instructions on how to use them, and then you just watch text scroll by forever.

LFS can really help understand how a Linux distribution is put together, but that doesn't necessarily translate into how your Linux distribution is put together.

If you really want to get into the inner-workings of your distribution, pick a software subsystem that interests you (the kernel, X11, an application, whatever), and then
a) find the web site for the software itself that gives you all of the nitty-gritty details about the software,
b) find out how your specific distribution packages that software, including any patches and configuration tweaks they may be applying,
c) find the documentation that your distribution has on the use of this software (if any), and,
d) join whatever communication medium the software developers are using to collaborate on the software.

Make it your mission in life to learn this software backwards, forwards, and sideways. If your distro's documentation for the software is lacking, help to spruce it up. If you're willing to dedicate some type to actual development, assist your distro/the upstream software's dev team in squashing bugs, testing new versions, and maintaining packages. When you get bored, repeat this process with another software package.
 

Red Squirrel

No Lifer
May 24, 2003
67,936
12,384
126
www.anyf.ca
Yeah understanding stuff like X11 and stuff is one of the things I'd like to do as well. Think I'll start with LFS and go from there. I need to build myself a VM server as there's lot of stuff I've been wanting to do such as also get myself up to date with the latest version of windows/server products. My current server with 8GB of ram just aint cutting it if I want to start making more complex lab environments.
 

MrColin

Platinum Member
May 21, 2003
2,403
3
81
Learn C if you haven't already and read the code, LFS will probably teach you about building the code.
 

bobross419

Golden Member
Oct 25, 2007
1,981
1
0
From a functional point of view, you'd probably benefit more from system tuning than anything else. Do some digging into the sysctl settings and figure out what effects changes to them have. In addition to tuning up the performance, do your best to break the system. During the process you'll probably refer to the kernel documentation and possibly even diving some kernel source. The end result should be a better understanding of how the Linux kernel functions... you can then use this base to built up knowledge of how the GNU part of Linux/GNU functions and the rest of the LAMP stack.

LFS gives you a pretty broad and shallow view of how everything is tied together. You'll get to see some packages that you might not have known about before, but it doesn't really help to understand how Linux works.

With that said, as Net suggested... just compile the kernel from source. Go through and change some settings. Try to compiling without support for things you don't need (token rings? lol) and without relying on modules. Its not the most efficient way to build a kernel, but reading through the descriptions of the various settings and researching what might be needing gives a pretty good understanding of things too.
 

Red Squirrel

No Lifer
May 24, 2003
67,936
12,384
126
www.anyf.ca
Thanks for the tips everyone. Once I'm caught up with all my other projects think I'll start messing with this stuff, something to do during night shifts as well. I will be doing this in VMs that way I wont have to worry about how long it takes me to fix stuff.
 

Fallen Kell

Diamond Member
Oct 9, 1999
6,063
437
126
you can start by upgrading your kernel from source. find the directions for your distribution, for example http://www.cyberciti.biz/tips/compiling-linux-kernel-26.html

before you reboot to test your newly installed kernel be prepared by having either a live cd or a recovery disk in case something goes wrong.

Or simply setup grub properly and leave the old kernel installed on the system as a secondary boot option....
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |