Best Advanced Linux Kernel Training?
hdxia writes "Can anybody recommend a good Linux kernel training course? I have had some Linux kernel hacking experience, but would like to further harden and improve my understanding of the kernel. I expect the course would be advanced. You may say that the best method would be to dig into the kernel myself, but I really want to have a chance to discuss and learn all aspects of the kernel with an experienced instructor."
RTFM
there, now everybody should feel at home
seriously though, it would be cool if this was offered at major universities. but you'd need knowledgable instructors and they'd be hard to come by.
Sorry to say, but experience is very often the best teacher. Experience being mistakes with time.
Freedom is strength, Ignorance is peace, War is slavery.
Truly "advanced" courses are hard to come by, because of limited appeal and other factors. The further you go into something the more inevitable specialization becomes, so it's not just a matter of offering one course for the tenth-of-a-percent of the market who's even heard of the Linux Kernel, but in all likelihood offering half a dozen ranging from security to device drivers to assembler optimization and so on. (and I'm just guessing here, knowing next to nothing about the kernel myself)
My suggestion would be to find someone who's pretty savvy in the area you're aimed at, and hire him or her (OK, let's face it, "him"...) for some lessons. Keep in mind that a good programmer is not the same as a good teacher, but if you find someone who can explain things the way you need to hear them then you won't need that many lessons to make a lot of progress - the cost could very well end up in the same league as a commercially-vended course.
I'm just guessing that finding a kernel guru willing to give up a month of Saturday afternoons at $300 a session will be easier than finding "Linux Kernel for Experts" at the downtown Learning Annex.
Perfectly Normal Industries
We don't get training. Unless it is in how to use revision control systems or avoid sexual harassment lawsuits.
Compare this with, say, a DBA or a network engineer. They get training which is actually relevant to their job.
How we know is more important than what we know.
Hello all, please give me, a foreign consultant with no work experience but an H1B visa, all your knowledge and a step by step instruction on how to do your job, so that I can displace you in yours, since your boss only looks at buzzwords on a resume anyways.
I await your full attention to this matter,
Samir Nagheenanajar
I want to delete my account but Slashdot doesn't allow it.
Just start implementing in the stable kernel and as each of your inputs is rejected, you'll learn. I hope you've had - at least - an operating systems design class (or equiv experience), and you don't try to implement something in kernel space that should be in user space.
e volutionary/dp/0066620732 It appears someone else had more time for fun than I.
BTW, I'm not qualified beyond hacking the IP stack a few years ago with a search/replace, use your imagination for what text was removed/replaced. all this, Just for Fun http://www.amazon.com/Just-Fun-Story-Accidental-R
Well, good luck. Have you ever heard the saying, "Those who can, do; those who can't, teach" ? I don't agree with it , but there is a kernel of truth. You've probably had a professor who was a genius, and and expert in their field, but couldn't teach worth a damn. You've probably also learned from someone who was a good teacher, but didn't know their stuff, or didn't have the resources to teach it properly.
Finding someone who is an expert in the linux kernel, *and* who can teach, and has the time and willingness to teach you one-on-one, will be a rare find indeed. ( Are you willing to pay them what they're worth for their background and ability? )
That person has probably already written a book.
Computers are useless. They can only give you answers.
-- Pablo Picasso
Precisely!
--
Wi-Fizzle Fo' Shizzle Dizzle
Censorship is obscene. Patriotism is bigotry. Faith is a vice. Slashdot 2.0 sucks.
Teaching is the best way to learn. I was a computer science tutor up at Berkeley and I learned FAR MORE from tutoring than I did from the classes. Find someone who is interested in the linux kernel and teach them. If they're smart they'll ask you questions you've never thought about asking, which in turn will end up solidifying your knowledge.
Read the LKML archive?
First of all, it's GNU/Linux kernel not Linux kernel... I remember reading something about this and why getting the name right is important but can't find the link anymore. Cheers!
(Please browse at -1 to read this comment.)
The very best course I have found is a ~32 hour DVD course on the FreeBSD kernel internals and: Advanced FreeBSD Kernel Code Walkthrough Videos I've never found anything more thorough.
Failure comes wrapped in many packages. I'd hate to think my desire to have someone who could handle setbacks and failures would cause me to overlook a person who had failed in other careers, been kicked to the curb in other disciplines, and finally found their place in the sun, so to speak.
Every sorcerer was once an apprentice. Every wizard was once a n00b. Even Linus, Bill, and Steve.
Out here on the left coast the extension programs at the various University Of California campuses have some Linux Kernel classes. These tend to be developed and taught by engineers in the industry with a real working knowledge of the subject.
UC Santa Cruz Extension, http://www.ucsc-extension.edu/ has an "Linux Kernel Architecture and Programming" which looks like an intro course. You can take it online or as two Saturdays. There is also a Linux device drivers class which a once a week class and an Advanced Device Drivers class which is 4 Saturdays.
I checked the other campuses but they all seem to be summer schedule with a limited set of classes.
Red Hat also has a one week Kernel internals class which is a "hands on" which to me means a trade off of less information for some finger programing of the brain.
All of these courses seem to have an introductory flavor to them. But I suspect that you will learn a lot about all of the various areas of the kernel and how the different parts hang together. My experience as kernel hacker is that I have learned a lot about the parts I am interested in, but that there are many big areas of the kernel that I only have a superficial understanding of.
Hope this helps
RLH
...this made the front page? The course is called "Operating Systems," and it's taught at major universities, as someone previously mentioned. In many of these courses, the semester-long project is to develop your own distribution of Linux (as a class or group).
I may be a little biased since I've taught the courses... but...
If what you're looking for is the typical corporate 1 week training course, then IMHO you can't do much better. But! Let's be honest here, what can you get out of a one week course? If it's a serious course, like these are, you're going to get so much information that you'll have trouble staying afloat. You're not going to master these skills in a week. Depending on your programming skills and operating systems background you're looking at months to years before you're comfortable kernel hacking. What these courses can give you is a lot of solid coding examples to build your skills. But don't take my word for it, the code samples are available at ftp://axian.com/pub/RHD_SOLUTIONS. Oh, and of course the Red Hat info: http://www.redhat.com/training/developer/courses/
If you're not in the typical corporate time crunch mode, I'd definitely recommend college courses. Get some general background in OS design while you're at it if you don't already have it. Oh, and LUGs, lots of lugs have groups doing kernel hacking, not a bad place to start there either, plus LUGs don't cost anything!
I doubt your target for course is correct. Having been trough after-studies Operating Systems course like 20 years ago, centering on RSX-11, I still feel solid in concepts of today's OSes - Linux, too.
For good professional background, I would recommend you to get also good books. On OS principles themselves, and on Linux Kernel. I have been printing and binding myself freely distributable online David Rusling book "The Linux Kernel" (that over 10 years ago). It mentions even Alpha processor view of things - very good for broader understanding. Love this book, very special. Also in my library sits book of Linux kernel anatomy: too lazy to go upstairs for exact title, but it must have been published by SAMS, and is book analyzing specifically code, that makes Linux Kernel, there are sources of very first versions of kernel included too, which should help to understand evolution of kernel as final touch. And plenty of code and discussion of it. Author might be not available for classes, but book is serious alternative for such.
Good luck! OS things deserve your attention.
Servant of karma
i second the good books notion and thanks for the reference to Rusling's book - I haven't heard of that one.
I can say that Robert Love's book, Linux Kernel Development (2004) is very well written and easy to read and understand. (print only)
There is also Greg Kroah-Harman's Linux Kernel in a nutshell at http://www.kroah.com/lkn/ - free PDF download.