Linux

Yearning for the days of rolling your own kernel


It used to be, you know - back in the day, that you almost always had to roll your own Linux kernel. Inevitably, there was a feature you needed or a bit of hardware unsupported in the standard kernel. Be it a specific networking card, sound card, wireless...you name it...we were all compiling kernels. In fact, it became a sort of right of passage in order to join the ranks of the Linux elite. I would be among the crowds at the Linux conventions (back when they were smaller and mostly attended by developers and fanboys), and you'd hear various attendees bragging on their kernel compiling prowess.

When I first started with Linux I didn't dare attempt to compile a kernel. That was for the big boys. It wasn't until I was years into the system that I would start rolling my own. It started with the need to get a Web cam working. From there it went to specializing this and/or that. I was compiling new kernels left and right. And I was proud of it. I felt myself among an elite crowd that could manipulate the very underpinnings of the Linux operating system. I could change Linux itself.

And I did so with most every release of whatever distribution I was using. That is, until recent years. It seems the Linux kernel developers have caught up with everyone. Now a released kernel almost always fulfills my every need. So much so that I haven't had to roll my own kernel in years (almost five, I believe). I would be hard pressed to undertake the adventure without a little bit of research (I'm forty years old - my memory isn't what it used to be.)

And this makes me yearn for the days when you had to prove your Linux worth  in order to get your particular system up and running 100 percent. I no longer feel as deeply connected to my systems as I once was. Sure I'm still protective of them (I have a 13 year-old in the house after all) but I don't KNOW it as well as I did when I was having to "create" the very foundation of the system.

This makes me wonder, how much of the Linux-using IT industry is still having to compile kernels in order to get their systems fully functioning?  Have the Linux kernel developers come that far? Are they that good that they have made obsolete the administrator-space compilation of the kernel? Is Linux kernel compilation really only for the developers these days?

So while I sit here reminiscing  about the days when I was up until 4 a.m. learning to compile kernels, I am proud to know the Linux kernel developers have made that ritual a thing of the past for many of us.

Linux - especially the kernel - has come a long way. Even though I yearn for the days of rolling my own kernel, I'm happy to say I no longer have to.

About

Jack Wallen is an award-winning writer for TechRepublic and Linux.com. He’s an avid promoter of open source and the voice of The Android Expert. For more news about Jack Wallen, visit his website getjackd.net.

17 comments
erikmidtskogen
erikmidtskogen

I guess if I really wanted to fine-tune a machine for some high-demand task, I might compile the kernel so that the performance-critical elements are statically linked. For example, if I were setting up a file server that, for some strange reason, was going to get pounded, I'd compile the kernel with the network card driver statically linked. It wouldn't make a huge difference, but if I could squeeze a little more out of it, I'd do it. It's not as if it's a lot of trouble, after all. Also, if I were going to use a Linux firewall, I'd probably clean out anything other than exactly what was needed to do the job.

TheGooch1
TheGooch1

I couldn't pass this up. If a kernel is all that you need, then you need to get out more...Please. On a more serious note, why would you yearn for a time that you had to do more work to get the same result? A feeling of ownership? Its just a program, after all.

CharlieSpencer
CharlieSpencer

You forgot the part about having to walk three miles uphill in the snow. I'm rarely nostalgic for days when things were less advanced and more difficult. I don't miss manual transmissions, hand-cranked ice cream churns, slide rules, punch cards, or backing my PC up to my cassette recorder. However, you have rekindled my appreciation for Plug-n-Play.

Tig2
Tig2

Jack, a great post that proves to me again that my fat, aging, tail is, and has been behind the curve. I am moving slowly to Linux and trying to keep the end users I support with me. I don't know nearly enough. 4 a.m.? I get up at 3:30 a.m. When is it time to sleep?

albert
albert

Compiling a kernel by passing the make file a few parameters is not much to brag about. "Hey, look at me! I just optimized the kernel for my Pentium III by telling the compiler I actually have a Pentium III!" Big deal. Even lowly old me have done that much. But, the real action is in modifying the kernel code itself which is beyond my skills at the moment. Then again, so many are involved with kernel development, you might want to consider the uberchallenge of writing device drivers. Not only is that a tremendous challenge in itself, you have to deal with manufacturers keeping all the hardware secrets close to their vests. If you want to really impress me, tell me you just written a device driver for Ubuntu that will let me use all of my satellite speakers on my Fortissimo III sound card. Hercules has, as far as I know, shown no interest whatsoever in investing too much into linux driver development. Certainly not for their old cards anyway.

songteksten32
songteksten32

edited Message was edited by: beth.blakely@...

apotheon
apotheon

Thanks to the greater ease of configuring and compiling a custom kernel with FreeBSD than with any Linux distribution I've used, I prefer to compile a custom kernel for every machine these days. The machines don't tend to need a custom kernel (as with Linux, FreeBSD pretty much just does everything I need without such low-level system configuration gymnastics), but it's so incredibly easy to configure a custom kernel with FreeBSD that I do so to remove the hardware support and kernel features that I'm not using, thus shrinking the kernel and improving performance somewhat.

nedvis
nedvis

My answer to the question was "No!" but I do something that might be considered kernel compilation on fly. I do not compile my kernels but quite often, actually, every time I boot my Linux box I use to run rmmod to unload kernel modules that I don't really need. On my main Linux machine I've even made executable shell script which is launched via rc.local so all unneeded and superfluous loadable kernel modules are deactivated at system start. Is that kernel compilation too? I don't know, but it works better for me than digging deep in "real" kernel compilaion.

rkuhn040172
rkuhn040172

The days of not having a microwave. Don't think I could survive without one today. Of course, when they first came out we were all going to get cancer from cooking our food in it.

john.wright
john.wright

I see where the author is coming from, making it "easy" for everyone does not force people to learn some of the traditional skills such as compiling your own software or rolling custom kernels (not particulary difficult as such but for a newbie it can be pretty daunting). I have been using Linux since about 1999, and nowadays I also feel a bit disconnected from it (I am a fan of Ubuntu which makes life fairly easy). You learn a lot about the OS by having to get under the hood a bit, and it was good for developing problem-solving skills. However one poster commented about using tape machines, I can honestly say I don't miss using one with the Commodore 64 (those load errors at about 98% were killers!). Linux from Scratch is a good way for Linux learners to acquire some of the more arcane skills, and even on your normal modern distro you can turn off the GUI for a while and find your way around the command line - lynx anyone? A good example of how these skills come in handy is I wished to use the video software cinelerra, the deb package I got from a repository didn't really work too well (slow and buggy), so I downloaded the cvs version and spent 1 1/2 hours fighting my way through dependency hell, but the end result was a fully operational and very quick video editing package. Cheers, good article!

jk2001
jk2001

It used to be that Linux drivers were a bit behind windows. Today, they aren't all the way caught up, but, basic hardware mostly works out of the box, and for some things, you just need to buy slightly older hardware. Old drivers don't need updates too often, and weird drivers to do interesting things already exist. To top it off, the boot process has gotten more complicated. So there's more stuff to learn. Another impediment to building a new kernel.

erikmidtskogen
erikmidtskogen

I love microwaves. You put your food in, it explodes, and then you wipe it all off the insides with paper towels. Hey, what's not to love about that?

Neon Samurai
Neon Samurai

Those dang Microwave ovens are going to give us all cancer. Those dang TVs are going to give us all cancer. Those dang Radios are going to give us all cancer. Those dang printing presses are going to give us all cancer. I know, I know, TVs and Radios where going to rot kids brains and the printing press was going to empower the previously uneducated and illiterate commoners. Some things never change; each generation will tell the next generation how the new technology they don't understand will destroy society. In the case of Microwaves, it does destroy some of the nutritional value of the food but it?s not like they turn fresh food into the nutritional value of a Twinkie (I?ve chef friends who won?t have a Microwave in there house).

nighthawk808
nighthawk808

I miss the days of bashing out 6502 assembler because interpreted BASIC on a 1.02MHz processor was too slow. Visual Studio, Java, and other things like that take all the fun out of looking at a tangled jumble of mov, lda, and jmp opcodes (real programmers had the hex memorized; mnemonics were for wussies) and finally getting it to move a sprite an inch to the left. That was sweet pain, but it was also a very valuable learning experience. Kids today know very little about what goes on under the hood because they never had to arm-wrestle a slow, resource-limited CPU into submission. As far as they know, Windows has always existed, hard drives have always been around, and processor speeds have always been measured in gigahertz.

erikmidtskogen
erikmidtskogen

Linux beats Windows in out-of-the-box compatibility for older hardware. On even not-so-old hardware, I've had to download and install drivers for Windows for network and video cards that a fresh Linux install recognizes without missing a beat. I've found several perfectly good, classic 10/100Mbps Ethernet cards that simply can't be used at all on Windows past Win2K. I guess the Windows philosophy dictates that anything more than five years old can't possibly still have any useful purpose.

Editor's Picks