CELF Technical Jamboree #15
July, 12, 2007
[original file is 08.カーネル開発の進め方.txt]
[note taken by M. Nishikawa; translated by ikoma]
How to Proceed Kernel Development
(1) Web Resources and Develpment Process
Shibata, NEC
* Self Introduction
- Promoting Linux technology in NEC
- Want engineers in Japan to have more expreiences with Linux
* What steps?
Get information <== here
==> http://jp.kernelnewbies.org [in Japanese]
Get knowledge <== here
- Development processes
==> Development process materials
- Plotted history of Linux releases
==> google calendar
- Development processes
Try anyway ==> try more and more
- Find someone who shares the same interests
- Do further
- Take off
- Find more friends
<== I am talking here today!
* KernelNewbiesJapan
http://jp.kernelnewbies.org/ [in Japanese]
- Japanese version of kernelnewbies
- so that more people join the kernel development!
- It's wiki; anyone can edit it
* webresources
http://jp.kernelnewbies.org/webresources [in Japanese]
- LWN
- Kernel
- Collecting topics on subsystems of the kernel
- Past articles are archived by topics; convenient to retrieve later
- News of the week relating to Linux are also collected
- Status of the kernel development is summarized weekly
==> You can get the fresh information you cannot find on web resources in Japan
- Pages on distributions
- Topics on the latest distributions
- Jonathan said: Please point out if my English is difficult
ChangeLog - KernelNewbies
- You cannot find in any other place more summarized changes of the kernel
- Changes in the past are collected too
- You cannot find in any other place more summarized changes of the kernel
- JF
- httphttp://www.linux.or.jp/JF/ [in Japanese]
- Publishes resources in Japanese
- Translation of important documentation
- "Documentation" of kernel translated into Japanese, etc.
- Documentation on how to develop kernel published
- Coding style, references
- How to post patches
- How to manage projects
- Kernel mentors project
- Consulting site for those who have code but do not know how to do with it
- Easy questions such as "Is this modification OK?"
- Advice on where to send patches
- Advice on coding rules
- Should learn the manner of the community to send mail
- Insert comments between citation
- LinuxHQ
- Collecting the latest kernel status
- Links to the latest kernel patches at the top of page are conveninet
==> These can be a first step to begin kernel develpment
- Try and use these web pages!!
- LKML
- And you are to debut here some day
- Sites above can help you to reach here
- You can not read all messages
- Read with Gmail
- Select by subjects
- Read smart
- Judge by number of comments (you can see on the archive)
- Read when you have free time
- Begin from today skiming through monthly archive etc. -spinics
==> Style with more indents as the thread gets deeper;
- May be rather browsable archive, though too deep threads reach to the right end
* Development Process
- Overview of development process
- When a new Linux kernel is released, a special two weeks time frame, merge window, is fixed
- In this term, maintainers send their patches to Linus
- Usually, these patches have been those in -mm
- -rc1 is released two weeks later
- After then, stability is pursued
- This cycle is repeated for 4-5 weeks, and then get towards the next version
- Development term
- Five versions were released in 2006; a release every 70-90 days
- 100K-220K lines and 300-700 files modified in each release
==> Far beyond the level a single company can update
- Main trees
- 2.6.x kernel that Linux organizes
- Andrew Morton's 2.6.x-mm
- 3000-4000 patches are included as candidates
- Subsystem trees
- Kbuild, ACPI, Block, IA64, libata, network, ...
- Stable kernel
- Trees after bug fixed; 2.6.x.y
* Plotting development history
- Plotted releases on Google calendar
- Plotted release date of major trees
- Colored and checked to see the distribution of -mm, -rc, releases
- With Google calender, you can count how many rc's between releases
- About 7 or 8 rc's have been released between releases
- -mm can also be checked in the same manner
- -mm's have been released about twice a week
==> These data can be useful to estimate the workload to catch up with kernels in your company
- Tracking the status of STABLE kernels tells you status of bug fixes
==> Can see how difficult it is to download a kernel and to keep maintaining the specific version privately
- It is rumored that Linux wants to release on Wednesday
- LWN is said to be updated on Thursday accordingly
- Would like to share this calender at some timing
- Is it possible to plot automatically when a release is notfied?
* Summary
- Keep required manners and etiquette in mind
- Written in the Documentation of Linux kernel
- Translation in Japanese is in JF; Read this
- Written in the Documentation of Linux kernel
- Check the status on LWN
- Learn about kernel development cycles
# Q & A
- Which kernel should I use?
- The latest STABLE is desirable to use;
- check the changelog of the STABLE release and judge if it is necessary
- The latest STABLE is desirable to use;
