New to Kernel Work - Need Direction
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello,
I'm really new to kernel work. I've spent some time looking at the kernel sources and things, and decided that it'd be a good idea to try and do some work with Kernel Janitors rather than try and jump in and code up something new.
First I need something to do. I looked at the current to-do list and decided that convincing the XFS folks to use negative error codes couldn't be terribly difficult. I'm thinking of making the modifications to the code myself (assuming I'm correct in thinking that the XFS code is in fs/xfs in the source directory).
My second question is about development environments. I like KDevelop, and wish to use it to work on the kernel. Does anyone have any tips or suggestions for a good graphical way to work with the Kernel? I'd rather not try and bludgeon my way through it with KATE and writing makefiles and caveman debugging and the likes of that, however, the kernel is a gigantic code base, and I'm not sure how to approach organizing it in a manner which is good for the total and complete newbie (me).
Thanks for your time, and please tell me if this isn't the appropriate place to start with getting to know and work on the kernel.
- -- Lord Sauron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
iD8DBQFE4ktMHcNVi48i054RAtsgAKCyKPp41+DpxE2RXh5YJwmwdh7vIACfQDSy In9l67dL5gw/9fWg5Hm8dOg=
=Qox9
-----END PGP SIGNATURE-----
_______________________________________________
Kernel-janitors mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/kernel-janitors
Quoted 9 lines · Lord Sauron
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1Hello,
I'm really new to kernel work. I've spent some time looking at the kernel sources and things, and decided that it'd be a good idea to try and do some work with Kernel Janitors rather than try and jump in and code up something new.
Welcome.
Quoted 5 lines
First I need something to do. I looked at the current to-do list and decided that convincing the XFS folks to use negative error codes couldn't be terribly difficult. I'm thinking of making the modifications to the code myself (assuming I'm correct in thinking that the XFS code is in fs/xfs in the source directory).
The XFS folks can be hard to work with :) Sometimes. It may be worth trying to update their code again, but check the archives to see if anyone has tried before and been summarily rejected (there may be a legitimate reason I don't know of).
The XFS code is in fs/xfs, you are correct.
Quoted 4 lines
My second question is about development environments. I like KDevelop, and wish to use it to work on the kernel. Does anyone have any tips or suggestions for a good graphical way to work with the Kernel?
Don't? :) I mostly use $text_editor (vim, emacs, etc.) and that's it. cscope and lxr are good code reference tools, as is grep (or cgvg, if you prefer a bit more organized grep experienced).
I'm not sure you *need* a graphical way to work with the kernel, even if that's what you're used to.
Quoted 5 lines
I'd rather not try and bludgeon my way through it with KATE and writing makefiles and caveman debugging and the likes of that, however, the kernel is a gigantic code base, and I'm not sure how to approach organizing it in a manner which is good for the total and complete newbie (me).
Uhh, if you end up needing to write a Makefile for janitorial work, you're probably doing something wrong :) Not sure what "caveman debugging" exactly is, but most janitor stuff is cleanup, not bugfixing, although sometimes they are closely related. If you want to fix bugs, get an account at bugzilla.kernel.org and help out :) In that case, though, expertise is useful, more often than not.
I'm not sure what you need to be organizing in the code base. It's already *highly* organized...
Quoted 2 lines
Thanks for your time, and please tell me if this isn't the appropriate place to start with getting to know and work on the kernel.
While it may not be explicitly be the former, it certainly covers the latter. I also recommend sitting on #kernelnewbies and/or #kerneljanitor on OFTC.
Thanks,
Nish
Quoted 1 line
- -- Lord Sauron
P.S. A *big* part of kernel development is trust. Trust starts with using your real name :)
Signature · 6 lines
Nishanth Aravamudan <[email protected]> IBM Linux Technology Center _______________________________________________ Kernel-janitors mailing list [email protected] https://lists.osdl.org/mailman/listinfo/kernel-janitors
Also, never trim the Cc, without saying you have done so at the top, it's bad etiquette :)
Quoted 119 lines · Nishanth Aravamudan
Quoted 8 lines · Lord Sauron
Quoted 7 lines · you
Quoted 5 lines · Lord Sauron
First I need something to do. I looked at the current to-do list and decided that convincing the XFS folks to use negative error codes couldn't be terribly difficult. I'm thinking of making the modifications to the code myself (assuming I'm correct in thinking that the XFS code is in fs/xfs in the source directory).
Quoted 7 lines
Quoted 4 lines
The XFS folks can be hard to work with :) Sometimes. It may be worth trying to update their code again, but check the archives to see if anyone has tried before and been summarily rejected (there may be a legitimate reason I don't know of).
Sounds like a good idea. Couldn't hurt though (learning experiences are what I'm looking for, not the fame and fortune of a good hack).
Then you're at the right place. Maintainers can often be harsh when a patch comes through that isn't wanted :)
Quoted 7 lines
Quoted 7 lines
The XFS code is in fs/xfs, you are correct.
Quoted 4 lines
My second question is about development environments. I like KDevelop, and wish to use it to work on the kernel. Does anyone have any tips or suggestions for a good graphical way to work with the Kernel?
Quoted 7 lines
Quoted 3 lines
Don't? :) I mostly use $text_editor (vim, emacs, etc.) and that's it. cscope and lxr are good code reference tools, as is grep (or cgvg, if you prefer a bit more organized grep experienced).
The best I've ever come into contact with is nano. I'm not terribly command-line literate, though I switched my laptop to Gentoo in order to force myself down that path.
You'll want to become more so, if you're seriously interested in being a kernel developer/hacker. nano is fine, although some of the more advanced features in vim and emacs can help make you more efficient. Switching distros isn't necessary to being more CLI literate, btw, and Gentoo might be considered by some (myself included) a bit of an extreme step :) You just need to familiarize yourself with the necessary tools.
Quoted 6 lines
Quoted 2 lines
I'm not sure you *need* a graphical way to work with the kernel, even if that's what you're used to.
You don't really ever need a graphical way (though my friend, a Apple developer, will rant for days about why you really do *need* XCode). I just find it easier, that's all.
Right, that's what I figured. I don't know of anyone off the top of my head, who uses any graphical tools for developing on the kernel (IDE like, or whatever).
Oh, and by the way, depending on what mail client you use, make sure you set it up right for submitting patches (preserve tabs, no HTML, no attachments, etc) :)
Quoted 13 lines
Quoted 6 lines
Quoted 5 lines
I'd rather not try and bludgeon my way through it with KATE and writing makefiles and caveman debugging and the likes of that, however, the kernel is a gigantic code base, and I'm not sure how to approach organizing it in a manner which is good for the total and complete newbie (me).
Quoted 6 lines
Uhh, if you end up needing to write a
Makefilefor janitorial work, you're probably doing something wrong :) Not sure what "caveman debugging" exactly is, but most janitor stuff is cleanup, not bugfixing, although sometimes they are closely related. If you want to fix bugs, get an account at bugzilla.kernel.org and help out :) In that case, though, expertise is useful, more often than not.Quoted 8 lines
Caveman debugging... if you've ever written something like this:
| cout << "x = " << x << endl;
you might have been a caveman debugger at some time of your life. It's the art of trying to figure out what went on inside the black box by looking at what came out the other end. It's *very* time consuming and requires frequent rebuilds.
Ah, well, yes, that you'll end up doing down the road whether you want to or not. It's called "printk debugging" in the kernel world. Hopefully not "frequent" rebuilds, but in this case will require reboots (unless you use UML or an emulation layer). You won't really be doing much debugging when it comes to janitorial work; mostly build- and boot-testing and passing patches on to the appropriate Maintainers. If it's a serious bug, then it's probably not janitor-material.
Quoted 9 lines
Quoted 2 lines
I'm not sure what you need to be organizing in the code base. It's already *highly* organized...
Yes, it is.
Quoted 4 lines
Quoted 3 lines
Thanks for your time, and please tell me if this isn't the appropriate place to start with getting to know and work on the kernel.
Quoted 6 lines
Quoted 3 lines
While it may not be explicitly be the former, it certainly covers the latter. I also recommend sitting on #kernelnewbies and/or #kerneljanitor on OFTC.
I don't like IRC that much. Call me archaic or weird or whatever, but I still think email is the hottest thing.
There is also a kernelnewbies mailing list. You may want to read the archives first and start Googlin' around, as you'll find more and more responses to FAQs as "Check the archive". There is also a wiki at www.kernelnewbies.org.
I would seriously reconsider your stance on IRC, btw, it's a very useful means of communication / forum to ask questions in. To each either own.
Quoted 8 lines
Quoted 7 lines
Thanks,
NishQuoted 1 line
- -- Lord Sauron
P.S. A *big* part of kernel development is trust. Trust starts with using your real name :)
Quoted 7 lines
Quoted 3 lines
And punch through this gigantic aura I've built around myself? Sure. I use the Lord Sauron alias to sidestep cyberbullies. They usually leave when I pull the "I'll spam you to death" line on them.
I find that treating kernel development like one big company -- a very very informal one -- is useful when thinking abou this. You wouldn't use a pseudonym when sending e-mail to a co-worker, I don't think.
<snip personal information, resend if you want>
Thanks,
Nish
Signature · 6 lines
Nishanth Aravamudan <[email protected]> IBM Linux Technology Center _______________________________________________ Kernel-janitors mailing list [email protected] https://lists.osdl.org/mailman/listinfo/kernel-janitors