* Introducing Myself, Looking to Learn [not found] <SNT146-W615B5F3B1F38B082C8AB4DC8310@phx.gbl> @ 2013-09-03 19:29 ` Varad Gautam 2013-09-03 20:22 ` Valdis.Kletnieks at vt.edu ` (2 more replies) 0 siblings, 3 replies; 17+ messages in thread From: Varad Gautam @ 2013-09-03 19:29 UTC (permalink / raw) To: kernelnewbies Hi! I want to start working on the Linux kernel but am an absolute beginner. I am currently on my way through Robert Love's Linux Kernel Development and need help with finding something I can work on to get a hang of what it's like. I have also subscribed to the LKML, but find it completely incomprehensible! As a beginner, would it be better to work with the kernel of a specific OS (I'm running Ubuntu), or work on the upstream kernel? Thanks. Varad ^ permalink raw reply [flat|nested] 17+ messages in thread
* Introducing Myself, Looking to Learn 2013-09-03 19:29 ` Introducing Myself, Looking to Learn Varad Gautam @ 2013-09-03 20:22 ` Valdis.Kletnieks at vt.edu 2013-09-03 20:35 ` Varad Gautam 2013-09-04 1:00 ` Augusto Mecking Caringi 2013-09-04 1:33 ` Arlie Stephens 2 siblings, 1 reply; 17+ messages in thread From: Valdis.Kletnieks at vt.edu @ 2013-09-03 20:22 UTC (permalink / raw) To: kernelnewbies On Wed, 04 Sep 2013 00:59:03 +0530, Varad Gautam said: > I have also subscribed to the LKML, but find it completely incomprehensible! > As a beginner, would it be better to work with the kernel of a specific OS (I'm > running Ubuntu), or work on the upstream kernel? Depends what you're trying to do. But please note that if you're finding it *completely* incomprehensible, you're probably not going to be able to make any real code contributions until you get up to speed. Yes, there's some threads on lkml that there's only a dozen people who will actually understand - but most discussion threads on lkml are ones that anybody who's able to do kernel hackind should be able to at least follow and figure out what's going on. Yes, the ability level needed to hack on the kernel and get code upstreamed *has* gone up in the last 5 years or so. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 865 bytes Desc: not available Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130903/2f0fe32c/attachment.bin ^ permalink raw reply [flat|nested] 17+ messages in thread
* Introducing Myself, Looking to Learn 2013-09-03 20:22 ` Valdis.Kletnieks at vt.edu @ 2013-09-03 20:35 ` Varad Gautam 2013-09-03 21:24 ` Valdis.Kletnieks at vt.edu 0 siblings, 1 reply; 17+ messages in thread From: Varad Gautam @ 2013-09-03 20:35 UTC (permalink / raw) To: kernelnewbies ---------------------------------------- > But please note that if you're > finding it *completely* incomprehensible, you're probably not going to > be able to make any real code contributions until you get up to speed. Hi Vladis! Thanks for replying. I think I would be fine with writing real code once I figure out what goes where. Is there something I should start with, which would help me bring myself at par? Thanks. Varad ^ permalink raw reply [flat|nested] 17+ messages in thread
* Introducing Myself, Looking to Learn 2013-09-03 20:35 ` Varad Gautam @ 2013-09-03 21:24 ` Valdis.Kletnieks at vt.edu 2013-09-03 21:44 ` Robert P. J. Day 0 siblings, 1 reply; 17+ messages in thread From: Valdis.Kletnieks at vt.edu @ 2013-09-03 21:24 UTC (permalink / raw) To: kernelnewbies On Wed, 04 Sep 2013 02:05:42 +0530, Varad Gautam said: > Hi Vladis! Thanks for replying. I think I would be fine with writing real > code once I figure out what goes where. Well, assuming you have a background as a professional or very serious amateur programmer, *and* you have a *particular* drive to do something specific. There's still a lot of code being added by amateurs who have some weird USB device that doesn't have a driver and so on - but there's less and less room for beginners that just want to hack code and don't care where. Data structures and algorithms have gotten more complex, the locking is more fine-grained and subtle - gone are the days you could just take the Big Kernel Lock and not worry, now you ofteh have to understand stuff like RCU locking. So you might want to stop and ask yourself *why* you want to write code for the kernel. :) (Hint - we probably need more testers than we need more coders. Every single person that runs linux-next kernels and does QA and reports issues is a help) -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 865 bytes Desc: not available Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130903/08657462/attachment.bin ^ permalink raw reply [flat|nested] 17+ messages in thread
* Introducing Myself, Looking to Learn 2013-09-03 21:24 ` Valdis.Kletnieks at vt.edu @ 2013-09-03 21:44 ` Robert P. J. Day 2013-09-04 5:22 ` michi1 at michaelblizek.twilightparadox.com ` (2 more replies) 0 siblings, 3 replies; 17+ messages in thread From: Robert P. J. Day @ 2013-09-03 21:44 UTC (permalink / raw) To: kernelnewbies On Tue, 3 Sep 2013, Valdis.Kletnieks at vt.edu wrote: > On Wed, 04 Sep 2013 02:05:42 +0530, Varad Gautam said: > > Hi Vladis! Thanks for replying. I think I would be fine with > > writing real code once I figure out what goes where. > > Well, assuming you have a background as a professional or very > serious amateur programmer, *and* you have a *particular* drive to > do something specific. There's still a lot of code being added by > amateurs who have some weird USB device that doesn't have a driver > and so on - but there's less and less room for beginners that just > want to hack code and don't care where. Data structures and > algorithms have gotten more complex, the locking is more > fine-grained and subtle - gone are the days you could just take the > Big Kernel Lock and not worry, now you ofteh have to understand > stuff like RCU locking. > > So you might want to stop and ask yourself *why* you want to write > code for the kernel. :) i'm going to jump in here since i see this question annoyingly frequently -- "i'm new to the kernel and i want to get involved and write code; how do i start?" to be blunt, if that's your starting point, you're not ready to write code for the kernel. period. as vladis quite correctly points out, gone are the days when there was piles of simple coding to be done. most of the kernel is well established, solid and stable, and ongoing development is *very* advanced. in other words, there's less and less room for enthusiastic beginners. but there's more. at the very least, you should have an idea of what part of the kernel interests you most. if you can't even identify which major subsystem -- networking, USB, video, etc. -- you want to work on, you aren't even *remotely* ready to start writing code. it's somewhat absurd to say you want to get involved in kernel development, then ask *others* where you should start. it's like saying, "i really want to write a book, but i have no idea what i should write about. can you give me some ideas for a plot? and characters? and possibly an ending?" yes, it's that silly. if you're a beginner, then the obvious starting point is to start reading. and read. and read. and when you're done reading, read some more. and slowly, you'll figure out what interests you most. and that's where you then spend your time. rday -- ======================================================================== Robert P. J. Day Ottawa, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ======================================================================== ^ permalink raw reply [flat|nested] 17+ messages in thread
* Introducing Myself, Looking to Learn 2013-09-03 21:44 ` Robert P. J. Day @ 2013-09-04 5:22 ` michi1 at michaelblizek.twilightparadox.com 2013-09-04 13:41 ` Valdis.Kletnieks at vt.edu 2013-09-04 13:55 ` Valdis.Kletnieks at vt.edu 2013-10-28 10:40 ` Matthias Brugger 2 siblings, 1 reply; 17+ messages in thread From: michi1 at michaelblizek.twilightparadox.com @ 2013-09-04 5:22 UTC (permalink / raw) To: kernelnewbies Hi! On 17:44 Tue 03 Sep , Robert P. J. Day wrote: ... > it's somewhat absurd to say you want to get involved in kernel > development, then ask *others* where you should start. I guess it sounds absurd because he missed how open source development works: 1) Find something you do not like. 2) Try to understand what is going on. 3) Try to think of ways to solve it. 4) Ask for opinions. 5) Implement your solution. 6) Post it. Depending on how others react you might decide to redo parts or even start from scratch (or maybe even abandoning it). It could also happen that somebody else takes your idea and solves it in a different way. Bad things could happen as well, like everybody ignoring you because they do not care about your problem. This is in contrast to school/work environments where others tell you what you have to do. > it's like > saying, "i really want to write a book, but i have no idea what i > should write about. can you give me some ideas for a plot? and > characters? and possibly an ending?" yes, it's that silly. Isn't this called "writer's block"? To me this does not sound like a silly thing to say at all. -Michi -- programing a layer 3+4 network protocol for mesh networks see http://michaelblizek.twilightparadox.com ^ permalink raw reply [flat|nested] 17+ messages in thread
* Introducing Myself, Looking to Learn 2013-09-04 5:22 ` michi1 at michaelblizek.twilightparadox.com @ 2013-09-04 13:41 ` Valdis.Kletnieks at vt.edu 2013-09-05 10:06 ` María Soler Heredia 0 siblings, 1 reply; 17+ messages in thread From: Valdis.Kletnieks at vt.edu @ 2013-09-04 13:41 UTC (permalink / raw) To: kernelnewbies On Wed, 04 Sep 2013 07:22:14 +0200, michi1 at michaelblizek.twilightparadox.com said: > 1) Find something you do not like. Exactly. This is the point a lot of people miss. Personally, I mostly stick to "badly written Kconfig entries" and "stuff in linux-next that makes my Dell laptop misbehave", because that's stuff I can actually test/report/fix, and stuff that ticks me off. ;) > > it's like > > saying, "i really want to write a book, but i have no idea what i > > should write about. can you give me some ideas for a plot? and > > characters? and possibly an ending?" yes, it's that silly. > > Isn't this called "writer's block"? To me this does not sound like a silly > thing to say at all. Writer's block is when you can't find a rhyme for the 23rd line, or can't figure out how to make your villain drop out in chapter 5 so he can re-appear in chapter 9. If you need ideas for plot, characters, and ending, you're not a writer. Horror writer Steven King was once asked "Why do you write such dark scary stuff?". He replied "What makes you think I have any choice in the matter?" Now that dude is a *writer*. And quite frankly, unless somebody have similar feelings about coding, they probably shouldn't be hacking the kernel. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 865 bytes Desc: not available Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130904/2aab0075/attachment.bin ^ permalink raw reply [flat|nested] 17+ messages in thread
* Introducing Myself, Looking to Learn 2013-09-04 13:41 ` Valdis.Kletnieks at vt.edu @ 2013-09-05 10:06 ` María Soler Heredia 0 siblings, 0 replies; 17+ messages in thread From: María Soler Heredia @ 2013-09-05 10:06 UTC (permalink / raw) To: kernelnewbies Hello all, I am also a newbie that intends to get her way into kernel development. Something about me: I have some experience as software tester. My question is: do you thing that systematically testing the kernel may be the way to go for me to get into the Linux kernel? Maybe joining the Linux Test Project? I am mainly (but not only) interested in virtualization because I am somewhat familiar with it and I find it necessary and interesting. I know I have a lot to learn, and I noted all the advice you gave Varad. If you have any further advice of any kind, I will really thank you for it. Mar?a. On 4 September 2013 15:41, <Valdis.Kletnieks@vt.edu> wrote: > On Wed, 04 Sep 2013 07:22:14 +0200, > michi1 at michaelblizek.twilightparadox.com said: > > > 1) Find something you do not like. > > Exactly. This is the point a lot of people miss. > > Personally, I mostly stick to "badly written Kconfig entries" and > "stuff in linux-next that makes my Dell laptop misbehave", because > that's stuff I can actually test/report/fix, and stuff that ticks me off. > ;) > > > > it's like > > > saying, "i really want to write a book, but i have no idea what i > > > should write about. can you give me some ideas for a plot? and > > > characters? and possibly an ending?" yes, it's that silly. > > > > Isn't this called "writer's block"? To me this does not sound like a > silly > > thing to say at all. > > Writer's block is when you can't find a rhyme for the 23rd line, or can't > figure out how to make your villain drop out in chapter 5 so he can > re-appear > in chapter 9. If you need ideas for plot, characters, and ending, you're > not a writer. > > Horror writer Steven King was once asked "Why do you write such dark scary > stuff?". He replied "What makes you think I have any choice in the > matter?" > > Now that dude is a *writer*. > > And quite frankly, unless somebody have similar feelings about coding, they > probably shouldn't be hacking the kernel. > > > _______________________________________________ > Kernelnewbies mailing list > Kernelnewbies at kernelnewbies.org > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130905/e3bb59e4/attachment.html ^ permalink raw reply [flat|nested] 17+ messages in thread
* Introducing Myself, Looking to Learn 2013-09-03 21:44 ` Robert P. J. Day 2013-09-04 5:22 ` michi1 at michaelblizek.twilightparadox.com @ 2013-09-04 13:55 ` Valdis.Kletnieks at vt.edu 2013-10-28 10:40 ` Matthias Brugger 2 siblings, 0 replies; 17+ messages in thread From: Valdis.Kletnieks at vt.edu @ 2013-09-04 13:55 UTC (permalink / raw) To: kernelnewbies On Tue, 03 Sep 2013 17:44:30 -0400, "Robert P. J. Day" said: > if you're a beginner, then the obvious starting point is to start > reading. and read. and read. and when you're done reading, read some > more. and slowly, you'll figure out what interests you most. and > that's where you then spend your time. If they want to be productive right up front, they should learn how to get a copy of the linux-next tree, how to update it, and build/run kernels from it. We can always use more testers of code before it gets released - it makes Greg KH's work with stable kernels a lot easier if we catch the bugs before they are officially released. Oh, and if people want to learn the kernel, "figure out what in linux-next broke *this* time" is a good way to do it - I never seem to hit 2 bugs in the same secion of the kernel in a row. Oh, and build those kernels with lockdep testing enabled - it finds a lot of bugs, and figuring out why a given lockdep report is a problem (or a false positive) is *great* training for understanding locking. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 865 bytes Desc: not available Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130904/edca5566/attachment.bin ^ permalink raw reply [flat|nested] 17+ messages in thread
* Introducing Myself, Looking to Learn 2013-09-03 21:44 ` Robert P. J. Day 2013-09-04 5:22 ` michi1 at michaelblizek.twilightparadox.com 2013-09-04 13:55 ` Valdis.Kletnieks at vt.edu @ 2013-10-28 10:40 ` Matthias Brugger 2013-11-14 3:50 ` Anand Moon 2 siblings, 1 reply; 17+ messages in thread From: Matthias Brugger @ 2013-10-28 10:40 UTC (permalink / raw) To: kernelnewbies 2013/9/3 Robert P. J. Day <rpjday@crashcourse.ca>: > On Tue, 3 Sep 2013, Valdis.Kletnieks at vt.edu wrote: > >> On Wed, 04 Sep 2013 02:05:42 +0530, Varad Gautam said: >> > Hi Vladis! Thanks for replying. I think I would be fine with >> > writing real code once I figure out what goes where. >> >> Well, assuming you have a background as a professional or very >> serious amateur programmer, *and* you have a *particular* drive to >> do something specific. There's still a lot of code being added by >> amateurs who have some weird USB device that doesn't have a driver >> and so on - but there's less and less room for beginners that just >> want to hack code and don't care where. Data structures and >> algorithms have gotten more complex, the locking is more >> fine-grained and subtle - gone are the days you could just take the >> Big Kernel Lock and not worry, now you ofteh have to understand >> stuff like RCU locking. >> >> So you might want to stop and ask yourself *why* you want to write >> code for the kernel. :) > > i'm going to jump in here since i see this question annoyingly > frequently -- "i'm new to the kernel and i want to get involved and > write code; how do i start?" to be blunt, if that's your starting > point, you're not ready to write code for the kernel. period. > > as vladis quite correctly points out, gone are the days when there > was piles of simple coding to be done. most of the kernel is well > established, solid and stable, and ongoing development is *very* > advanced. in other words, there's less and less room for enthusiastic > beginners. but there's more. > > at the very least, you should have an idea of what part of the kernel > interests you most. if you can't even identify which major subsystem > -- networking, USB, video, etc. -- you want to work on, you aren't > even *remotely* ready to start writing code. > > it's somewhat absurd to say you want to get involved in kernel > development, then ask *others* where you should start. it's like > saying, "i really want to write a book, but i have no idea what i > should write about. can you give me some ideas for a plot? and > characters? and possibly an ending?" yes, it's that silly. > > if you're a beginner, then the obvious starting point is to start > reading. and read. and read. and when you're done reading, read some > more. and slowly, you'll figure out what interests you most. and > that's where you then spend your time. Basically my answer to this kind of questions is, to start reading LDD3 [1] try to figure out what have changed and try to get the source code examples work with a newer kernel [2]. [1] http://lwn.net/Kernel/LDD3/ [2] https://github.com/martinezjavier/ldd3 Cheers, Matthias > > rday > > -- > > ======================================================================== > Robert P. J. Day Ottawa, Ontario, CANADA > http://crashcourse.ca > > Twitter: http://twitter.com/rpjday > LinkedIn: http://ca.linkedin.com/in/rpjday > ======================================================================== > > > _______________________________________________ > Kernelnewbies mailing list > Kernelnewbies at kernelnewbies.org > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies -- motzblog.wordpress.com ^ permalink raw reply [flat|nested] 17+ messages in thread
* Introducing Myself, Looking to Learn 2013-10-28 10:40 ` Matthias Brugger @ 2013-11-14 3:50 ` Anand Moon 0 siblings, 0 replies; 17+ messages in thread From: Anand Moon @ 2013-11-14 3:50 UTC (permalink / raw) To: kernelnewbies Hi All, It's good to start with LDD3 for beginner, But we end up just compiling the modules from the examples. Most of us don't now how to test these modules. But we can get learn the basic of module programming. Real challenge are in the kernel source tree. For example if we have a wireless/Ethernet?card?in laptop, you can go thought the changes that are happing with your driver with respect to old kernel. Also try to understand the patches that are been currently discuss in the mailing list. Understand the discussion that take?place in mail chains, these will help clearing you concepts.? Understand the protocol used by the driver and how new support can be added to it. Integrating with the original developer will give you new thought. Also user space is very good area to explore and very important one. If you just load the driver but don't configure it correctly It will not work to it's potential. How we configure?you driver, where are the configuration files. Try to so all the configuration chances manually, this?will help a lot. Try to trace the functionality from the user space IOCtl call to driver, modparams etc. We always try to use?the configuration that's available in the internet. We do not go beyond that configuration and try to experiment on new values, May be we should do that and see how it works or behaves. One more thing getting to compile a custom configured?kernel for you PC is important step. Having knowledge of GIT is must now a days. And?you will become you own mentor for that driver. -Anand Moon On Monday, October 28, 2013 4:11 PM, Matthias Brugger <matthias.bgg@gmail.com> wrote: 2013/9/3 Robert P. J. Day <rpjday@crashcourse.ca>: > On Tue, 3 Sep 2013, Valdis.Kletnieks at vt.edu wrote: > >> On Wed, 04 Sep 2013 02:05:42 +0530, Varad Gautam said: >> > Hi Vladis! Thanks for replying. I think I would be fine with >> > writing real code once I figure out what goes where. >> >> Well, assuming you have a background as a professional or very >> serious amateur programmer, *and* you have a *particular* drive to >> do something specific.? There's still a lot of code being added by >> amateurs who have some weird USB device that doesn't have a driver >> and so on - but there's less and less room for beginners that just >> want to hack code and don't care where.? Data structures and >> algorithms have gotten more complex, the locking is more >> fine-grained and subtle - gone are the days you could just take the >> Big Kernel Lock and not worry, now you ofteh have to understand >> stuff like RCU locking. >> >> So you might want to stop and ask yourself *why* you want to write >> code for the kernel. :) > >? i'm going to jump in here since i see this question annoyingly > frequently -- "i'm new to the kernel and i want to get involved and > write code; how do i start?"? to be blunt, if that's your starting > point, you're not ready to write code for the kernel. period. > >? as vladis quite correctly points out, gone are the days when there > was piles of simple coding to be done. most of the kernel is well > established, solid and stable, and ongoing development is *very* > advanced. in other words, there's less and less room for enthusiastic > beginners. but there's more. > >? at the very least, you should have an idea of what part of the kernel > interests you most. if you can't even identify which major subsystem > -- networking, USB, video, etc. -- you want to work on, you aren't > even *remotely* ready to start writing code. > >? it's somewhat absurd to say you want to get involved in kernel > development, then ask *others* where you should start. it's like > saying, "i really want to write a book, but i have no idea what i > should write about. can you give me some ideas for a plot? and > characters? and possibly an ending?" yes, it's that silly. > >? if you're a beginner, then the obvious starting point is to start > reading. and read. and read. and when you're done reading, read some > more. and slowly, you'll figure out what interests you most. and > that's where you then spend your time. Basically my answer to this kind of questions is, to start reading LDD3 [1] try to figure out what have changed and try to get the source code examples work with a newer kernel [2]. [1] http://lwn.net/Kernel/LDD3/ [2] https://github.com/martinezjavier/ldd3 Cheers, Matthias > > rday > > -- > > ======================================================================== > Robert P. J. Day? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Ottawa, Ontario, CANADA >? ? ? ? ? ? ? ? ? ? ? ? http://crashcourse.ca/ > > Twitter:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? http://twitter.com/rpjday > LinkedIn:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? http://ca.linkedin.com/in/rpjday > ======================================================================== > > > _______________________________________________ > Kernelnewbies mailing list > Kernelnewbies at kernelnewbies.org > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies -- motzblog.wordpress.com _______________________________________________ Kernelnewbies mailing list Kernelnewbies at kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20131113/77c95560/attachment-0001.html ^ permalink raw reply [flat|nested] 17+ messages in thread
* Introducing Myself, Looking to Learn 2013-09-03 19:29 ` Introducing Myself, Looking to Learn Varad Gautam 2013-09-03 20:22 ` Valdis.Kletnieks at vt.edu @ 2013-09-04 1:00 ` Augusto Mecking Caringi 2013-09-04 1:33 ` Arlie Stephens 2 siblings, 0 replies; 17+ messages in thread From: Augusto Mecking Caringi @ 2013-09-04 1:00 UTC (permalink / raw) To: kernelnewbies On Tue, Sep 3, 2013 at 4:29 PM, Varad Gautam <varadgautam@live.com> wrote: > Hi! > I want to start working on the Linux kernel but am an absolute beginner. I > am currently on my way through Robert Love's Linux Kernel Development and > need help with finding something I can work on to get a hang of what it's > like. > > I have also subscribed to the LKML, but find it completely > incomprehensible! As a beginner, would it be better to work with the kernel > of a specific OS (I'm running Ubuntu), or work on the upstream kernel? > Hi, If you are an absolute beginner, I recommend you to start studying and hacking a small O.S., like the xv6: http://pdos.csail.mit.edu/6.828/2012/xv6.html http://pdos.csail.mit.edu/6.828/2012/xv6/book-rev7.pdf If you need a background on the "low level", I suggest you to read this: http://download.savannah.gnu.org/releases/pgubook/ProgrammingGroundUp-1-0-booksize.pdf -- Augusto Mecking Caringi -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130903/c9e98f8d/attachment.html ^ permalink raw reply [flat|nested] 17+ messages in thread
* Introducing Myself, Looking to Learn 2013-09-03 19:29 ` Introducing Myself, Looking to Learn Varad Gautam 2013-09-03 20:22 ` Valdis.Kletnieks at vt.edu 2013-09-04 1:00 ` Augusto Mecking Caringi @ 2013-09-04 1:33 ` Arlie Stephens 2 siblings, 0 replies; 17+ messages in thread From: Arlie Stephens @ 2013-09-04 1:33 UTC (permalink / raw) To: kernelnewbies Hi Varad, On Sep 04 2013, Varad Gautam wrote: > > Hi! > I want to start working on the Linux kernel but am an absolute > beginner. I am currently on my way through Robert Love's Linux > Kernel Development and need help with finding something I can work > on to get a hang of what it's like. How much of a beginner are you? In particular, how much do you know about operating system kernels in general? And how much multi-threaded programming have you done, in situations where you have to manage your own locking? If you don't have good practical understanding of concurrency, you might want to do yourself a favour and do some work with a large multi-threaded program until you've got practical experience with race conditions, lock contention, and deadlocks. Linux is a fairly mature monster. This means that the simple outlines of what all OSes do tend to be obscured by layers of complexity. That's one some folks use BSD for their OS-kernel classes. You'll be doing more digging in linux. Will you be comfortable with that? > I have also subscribed to the LKML, but find it completely > incomprehensible! My question would be "incomprehensible how?" There's a lot of shared context, which you won't have, and diffs aren't the best way to learn what's in a piece of code. That level of "incomprehensible" makes sense to me. Beyond that, there's learning you need to do. > As a beginner, would it be better to work with the > kernel of a specific OS (I'm running Ubuntu), or work on the > upstream kernel? Pick one that you actually run - that way you're set up to try out the results of your experiments, and more likely to encounter some problem that motivates you to attack it. Personally I'd prefer not to be testing on my development system [hate it when that's unstable], but if you aren't playing with hardware, VMs make great test environments. Beyond that, my advice would be to do something trivial. How about a kernel module that prints "Hello world"? It's useless, but you'll start internalizing the build system. Then do something else trivial, that let's you poke the kernel somewhere else. Eventually either it'll start making sense, and your ambitions will increase - or you'll decide you aren't having fun and try somethign else. -- Arlie (Arlie Stephens arlie at worldash.org) ^ permalink raw reply [flat|nested] 17+ messages in thread
* Introducing Myself, Looking to Learn @ 2013-09-04 2:28 Rakesh Ganimineni 2013-09-04 2:44 ` Greg Freemyer 2013-09-04 13:06 ` Varad Gautam 0 siblings, 2 replies; 17+ messages in thread From: Rakesh Ganimineni @ 2013-09-04 2:28 UTC (permalink / raw) To: kernelnewbies I would suggest you to fix on a module and start following what are the bugs in it and see if you can fix it or try understand what others fix. From: Arlie Stephens Sent: 4/9/2013 7:08 To: Varad Gautam Cc: kernelnewbies at kernelnewbies.org Subject: Re: Introducing Myself, Looking to Learn Hi Varad, On Sep 04 2013, Varad Gautam wrote: > > Hi! > I want to start working on the Linux kernel but am an absolute > beginner. I am currently on my way through Robert Love's Linux > Kernel Development and need help with finding something I can work > on to get a hang of what it's like. How much of a beginner are you? In particular, how much do you know about operating system kernels in general? And how much multi-threaded programming have you done, in situations where you have to manage your own locking? If you don't have good practical understanding of concurrency, you might want to do yourself a favour and do some work with a large multi-threaded program until you've got practical experience with race conditions, lock contention, and deadlocks. Linux is a fairly mature monster. This means that the simple outlines of what all OSes do tend to be obscured by layers of complexity. That's one some folks use BSD for their OS-kernel classes. You'll be doing more digging in linux. Will you be comfortable with that? > I have also subscribed to the LKML, but find it completely > incomprehensible! My question would be "incomprehensible how?" There's a lot of shared context, which you won't have, and diffs aren't the best way to learn what's in a piece of code. That level of "incomprehensible" makes sense to me. Beyond that, there's learning you need to do. > As a beginner, would it be better to work with the > kernel of a specific OS (I'm running Ubuntu), or work on the > upstream kernel? Pick one that you actually run - that way you're set up to try out the results of your experiments, and more likely to encounter some problem that motivates you to attack it. Personally I'd prefer not to be testing on my development system [hate it when that's unstable], but if you aren't playing with hardware, VMs make great test environments. Beyond that, my advice would be to do something trivial. How about a kernel module that prints "Hello world"? It's useless, but you'll start internalizing the build system. Then do something else trivial, that let's you poke the kernel somewhere else. Eventually either it'll start making sense, and your ambitions will increase - or you'll decide you aren't having fun and try somethign else. -- Arlie (Arlie Stephens arlie at worldash.org) _______________________________________________ Kernelnewbies mailing list Kernelnewbies at kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies ^ permalink raw reply [flat|nested] 17+ messages in thread
* Introducing Myself, Looking to Learn 2013-09-04 2:28 Rakesh Ganimineni @ 2013-09-04 2:44 ` Greg Freemyer 2013-09-04 13:11 ` Varad Gautam 2013-09-04 13:06 ` Varad Gautam 1 sibling, 1 reply; 17+ messages in thread From: Greg Freemyer @ 2013-09-04 2:44 UTC (permalink / raw) To: kernelnewbies Varad, I have external sata to usb3 adapter that is not supported by the kernel. I'm willing to buy one for someone willing to get the kernel support done. This is my second offer. No takers the first time. Fyi: I expect no true code is needed, just updating a pid / vid table somewhere. I don't know the usb driver stack so I have no idea where said table is. Fyi2: I tend to focus on filesystems recently so diving into usb is not a goal of mine. Greg Rakesh Ganimineni <everfriendlyrakesh@gmail.com> wrote: >I would suggest you to fix on a module and start following what are the >bugs in it and see if you can fix it or try understand what others fix. >From: Arlie Stephens >Sent: 4/9/2013 7:08 >To: Varad Gautam >Cc: kernelnewbies at kernelnewbies.org >Subject: Re: Introducing Myself, Looking to Learn >Hi Varad, > >On Sep 04 2013, Varad Gautam wrote: >> >> Hi! >> I want to start working on the Linux kernel but am an absolute >> beginner. I am currently on my way through Robert Love's Linux >> Kernel Development and need help with finding something I can work >> on to get a hang of what it's like. > >How much of a beginner are you? In particular, how much do you know >about operating system kernels in general? And how much >multi-threaded programming have you done, in situations where you have >to manage your own locking? > >If you don't have good practical understanding of concurrency, you >might want to do yourself a favour and do some work with a large >multi-threaded program until you've got practical experience with race >conditions, lock contention, and deadlocks. > >Linux is a fairly mature monster. This means that the simple outlines >of what all OSes do tend to be obscured by layers of complexity. >That's one some folks use BSD for their OS-kernel classes. You'll be >doing more digging in linux. Will you be comfortable with that? > > >> I have also subscribed to the LKML, but find it completely >> incomprehensible! > >My question would be "incomprehensible how?" There's a lot of shared >context, which you won't have, and diffs aren't the best way to learn >what's in a piece of code. That level of "incomprehensible" makes >sense to me. > >Beyond that, there's learning you need to do. > >> As a beginner, would it be better to work with the >> kernel of a specific OS (I'm running Ubuntu), or work on the >> upstream kernel? > >Pick one that you actually run - that way you're set up to try out the >results of your experiments, and more likely to encounter some problem >that motivates you to attack it. Personally I'd prefer not to be >testing on my development system [hate it when that's unstable], but >if you aren't playing with hardware, VMs make great test >environments. > >Beyond that, my advice would be to do something trivial. How about a >kernel module that prints "Hello world"? It's useless, but you'll >start internalizing the build system. Then do something else trivial, >that let's you poke the kernel somewhere else. Eventually either it'll >start making sense, and your ambitions will increase - or you'll >decide you aren't having fun and try somethign else. > >-- >Arlie > >(Arlie Stephens arlie at worldash.org) > > > >_______________________________________________ >Kernelnewbies mailing list >Kernelnewbies at kernelnewbies.org >http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > >_______________________________________________ >Kernelnewbies mailing list >Kernelnewbies at kernelnewbies.org >http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies -- Sent from my Android phone with K-9 Mail. Please excuse my brevity. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130903/189952a1/attachment-0001.html ^ permalink raw reply [flat|nested] 17+ messages in thread
* Introducing Myself, Looking to Learn 2013-09-04 2:44 ` Greg Freemyer @ 2013-09-04 13:11 ` Varad Gautam 0 siblings, 0 replies; 17+ messages in thread From: Varad Gautam @ 2013-09-04 13:11 UTC (permalink / raw) To: kernelnewbies > I have external sata to usb3 adapter that is not supported by the > kernel. I'm willing to buy one for someone willing to get the kernel > support done. > - > This is my second offer. No takers the first time. > > Fyi: I expect no true code is needed, just updating a pid / vid table > somewhere. I don't know the usb driver stack so I have no idea where > said table is. > > Fyi2: I tend to focus on filesystems recently so diving into usb is not > a goal of mine. > > Greg Hi Greg, thanks for the offer. I'd be happy to. I shall let you know once I catch some speed, and then I'll start. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Introducing Myself, Looking to Learn 2013-09-04 2:28 Rakesh Ganimineni 2013-09-04 2:44 ` Greg Freemyer @ 2013-09-04 13:06 ` Varad Gautam 1 sibling, 0 replies; 17+ messages in thread From: Varad Gautam @ 2013-09-04 13:06 UTC (permalink / raw) To: kernelnewbies > How much of a beginner are you? In particular, how much do you know > about operating system kernels in general? And how much > multi-threaded programming have you done, in situations where you have > to manage your own locking? Here's a little something about myself, I'm fairly good with C, Python and Java and have programmed using threads with Python. I've been using Linux via the command line for a long time now. As for the OS and kernel level stuff, I don't have a lot of experience, but am enthusiastic to learn, and am working on it. > Linux is a fairly mature monster. This means that the simple outlines > of what all OSes do tend to be obscured by layers of complexity. > That's one some folks use BSD for their OS-kernel classes. You'll be > doing more digging in linux. Will you be comfortable with that? I do realize that contributing to the kernel would not be an easy task, and I must know a lot before I can contribute actual code. But still, I would be happy to. > My question would be "incomprehensible how?" There's a lot of shared > context, which you won't have, and diffs aren't the best way to learn > what's in a piece of code. That level of "incomprehensible" makes > sense to me. I should be able to minimize the "incomprehensible" part soon, there's a lot to catch up with... Thanks for the advice. Varad ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2013-11-14 3:50 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <SNT146-W615B5F3B1F38B082C8AB4DC8310@phx.gbl>
2013-09-03 19:29 ` Introducing Myself, Looking to Learn Varad Gautam
2013-09-03 20:22 ` Valdis.Kletnieks at vt.edu
2013-09-03 20:35 ` Varad Gautam
2013-09-03 21:24 ` Valdis.Kletnieks at vt.edu
2013-09-03 21:44 ` Robert P. J. Day
2013-09-04 5:22 ` michi1 at michaelblizek.twilightparadox.com
2013-09-04 13:41 ` Valdis.Kletnieks at vt.edu
2013-09-05 10:06 ` María Soler Heredia
2013-09-04 13:55 ` Valdis.Kletnieks at vt.edu
2013-10-28 10:40 ` Matthias Brugger
2013-11-14 3:50 ` Anand Moon
2013-09-04 1:00 ` Augusto Mecking Caringi
2013-09-04 1:33 ` Arlie Stephens
2013-09-04 2:28 Rakesh Ganimineni
2013-09-04 2:44 ` Greg Freemyer
2013-09-04 13:11 ` Varad Gautam
2013-09-04 13:06 ` Varad Gautam
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).