Andrew Morton: There is a great amount to learn, and you don't learn it by reading the code, or by reading the mailing list. You have to actually get in there and change something. It's only when you try to do the hands-on things that you realize how much you don't know. And to get hands-on, you need a *reason*. Profile the kernel, try to fix a performance bottleneck. Pick a neglected bug report off the kernel list, work it with the originator, see if you can fix it. Pick a neglected device driver or filesystem, try to improve it. There are new block and net driver interfaces coming through in 2.5 - pick a driver for which you have hardware and take care of it. Don't spout off opinions on the kernel mailing list. Ignore what the kernel developers say about C++. If you need to write, say, a net driver then don't! First, take an existing one and make it beautiful, or more correct, or twice as fast, or add a feature. Then take that knowledge to the new driver. One hot tip: if you spot a bug which is being ignored, send a completely botched fix to the mailing list. This causes thousands of kernel developers to rally to the cause. Nobody knows why this happens. (I really have deliberately done this several times. It works). Write a really good filesystem and VM performance measurement suite which models real-world workloads. The existing ones are almost useless for this, and this gap in the toolset makes it much harder to tune filesystems, and to discover performance improvements and regressions. There are many things to do, and Linux doesn't really need thousands of people adding even more code. |