Becoming a Linux Kernel Programmer?
Young Grasshoopa asks: "In my 6 years of IT life, I've been a sys admin, perl programmer, and a config. mgmt. engineer. I've recently learned programming in C, and somehow ended up learning a bit of Linux Kernel programming as well. I now have developed a strong motivation to become a Linux kernel developer, but given my background, I am not sure how to approach companies or Open Source Project groups. I ask all those who were in a similar situation - how do you become a full-time kernel developer?"
Start for free. Sure, it sounds odd, but you have to get your foot in two doors. First, the linux kernel proper. Second, a company or position that will pay you for the privilege.
If your code isn't accepted into Linus' kernel, why should they pay you? I'm sure there's a lkml faq that has answers for the first step. Finding an employer who will pay you... I understand Red Hat will have an opening, now that AC is taking a sabbatical:)
Jesus was all right but his disciples were thick and ordinary. -John Lennon
the easiest way would be
to start as a part time kernel developer.
find something wrong.
fix it.
find who's in charge of that code.
send it to them.
if there's not anyone,
contact one of the high mucky-mucks,
and let em know.
maybe the maintainer will be you.
An OS programmer compared to a low-level IT worker? You must be joking.
May we never see th
Well its a strange question to ask, normally one becomes a Kernel Developer, by having a need, usually unsupported hardware, and they write a driver for it... It sounds like you are at this stage already
To me it sounds like Young Grasshoopa wants to be a kernel developer because [s]he would like to be a kernel developer, not because they have a requirement for features no-one else is working on.
In which case I would think the first thing [s]he should do is get themselves a purpose. Or, as others have suggested, become a janitor or documentation writer.
Not that I know what I'm talking about as I'm not a kernel hacker, but I acknowledge that there would be a certain coolness about being one.
Yours Sincerely, Michael.
I think wanting to contribute "just because" is motivation enough ...
;).
At my POE, we are planning to rewrite a lot of stuff real soon now; when we do so, we intend to create a LOT of generic, reusable components a) for our own benefit, naturally and b) so we can contribute (the now not-so-proprietary) code back to the community, because essentially, without Free Software, we would not be able to operate (and trying to convince the boss to give money is futile
My point is, simply wanting to contribute back to the community that many of us have benefitted so much from is motivation enough; why would you suggest that someone only contribute when they have a personal need for a feature set? Isn't that sort of selfish? And so what if someone just wants to contribute for "geek points" or ego, or whatever; their code shouldn't make it into the kernel unless it is up to snuff, so to speak, so who the hell cares what their motivation is?
Make a compilable module for the kernel. It doesn't actually have to be in the kernel-proper code to be useful as lots of companies release 3rd-party kernel-module-source (my fasttrak promise TX2000 pro RAID card, and also the DIGI multiport card for example).
If it's useful and stable enough to be of benefit to the linux users at large, perhaps you could then lobby to have it put in the base kernel. One trick would simply be to find out a new technology or popular device that is coming out and create a decent driver module for it...
I agree 100%. I'm not a kernel programmer but my experience with other programming positions is along the same lines.
I am a coder for a MUD. I started out doing the same thing the parent post talks about. I did grunt work. Small bug fixes, small improvements, minor tweaking of here and there. I took any project that came up, even those that nobody wanted. I had the C skills, but had no name made for myself with them. As time went on, I took on bigger and bigger projects and got promoted up the ranks. Now I'm one of the highest ranking coders (#2 IIRC) and still going strong. Of course, I don't get paid for my code, but I'm happy doing it. It's fun, and I enjoy it. Probably the same as kernel programmers who would do the work even if they didn't get paid.
There are only 10 kinds of people in this world... those who understand binary and those who don't