From mboxrd@z Thu Jan 1 00:00:00 1970 From: Valdis.Kletnieks@vt.edu (Valdis.Kletnieks at vt.edu) Date: Tue, 25 Oct 2016 11:42:33 -0400 Subject: What subsystem!? In-Reply-To: References: Message-ID: <65708.1477410153@turing-police.cc.vt.edu> To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org On Tue, 25 Oct 2016 10:33:47 -0200, "Daniel." said: > I've been studying linux for some time now. I still see my self as an > begginer, but that's not a bad thing. I struggling to decide what > subsystem to focus right know. I've said it before, and I'll say it again: If you have to ask others which part of the kernel you should study, maybe you shouldn't be doing kernel work. It's like a beginning author asking other people if they should write a mystery or a western. If you're only writing a murder mystery because somebody suggested it, it's probably not going to be very good. Note that for most systems all the *real* magic (and hard work) aren't in the kernel, they're in userspace. Let's look at the Internet of Things as an example. Yes, networking is going to be important - but the kernel just gives userspace (for instance) TCP over IPv6. All the code to actually *do* something with it is out in userspace. Just the other day, a large part of the Internet fell apart because of a DDoS attack on some important DNS servers. The root cause? Default passwords and other userspace security issues on a lot of DVRs and security cameras. A userspace issue. I'm looking at buying some LED-based light bulbs that can change color on command. Kernel support for the networking? Get a packet, send a packet. All the code that says "during early evening, use a 5K color temperature, and slowly roll it back to 3.2K around midnight, but an hour later in the kitchen"? Userspace. You mention database tuning. Another case where you *really* need to understand what userspace is doing before you can do much in the kernel. Linux kernel hacking for tuning our Oracle servers? Zip. Zero. None. We just create yet another VM with X amount of RAM and Y amount of disk on a fiberchannel-connected EMC VNX storage unit. However, our DBAs spend a *lot* of time tweaking Oracle parameters in userspace, and my co-worker who administers that storage keeps busy tuning it - but he has a nice userspace GUI that handles all the hard work so he can concentrate on higher-level issues like proper tiering of a high-activity disk. My current job is building petabyte-scale file systems for HPC clusters - and although I end up tweaking kernel parameters a fair amount, there's actually not much kernel hacking involved. What *is* needed is the ability to talk to the computational scientists, and find out things like what blocksize their software wants to use, whether it's sequential or random access, what degree of parallelism is needed, and so on... You hopefully notice a pattern here... Find an application that *you* think is interesting - and first learn the userspace end of it. You may not need to know very much about the kernel at all - and if you *do*, you'll have a better idea of which part of the kernel and what you need to know.... -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 484 bytes Desc: not available Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20161025/1b45188f/attachment.bin