요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
Web 자료
8.Conclusion.rst:19-34- LWN.net과 LWN Kernel Index: kernel topic별 기사와 개발 흐름
- KernelNewbies.org: kernel 개발자에게 유용한 입문·추적 자료
- kernel.org: kernel release 정보의 기준 위치
서적
8.Conclusion.rst:36-50- Linux Device Drivers, 3rd Edition · Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
- Linux Kernel Development · Robert Love
- Understanding the Linux Kernel · Daniel Bovet, Marco Cesati
Kernel은 빠르게 바뀌므로 책이 출간될 때 이미 일부 내용이 오래되기 쉽고 위 책들도 상당한 시간이 지났다. 그래도 핵심 개념과 좋은 설명은 여전히 참고할 가치가 있다. 실제 code와 현재 Documentation을 함께 확인해야 한다.
Git의 공식 documentation과 user manual도 kernel.org의 git documentation 경로에서 볼 수 있다.
결론
8.Conclusion.rst:52-74이 문서 전체의 목적은 Linux 커널이 어떻게 개발되고 그 과정에 어떻게 참여하는지 이해시키는 것이다. 마지막에 중요한 것은 실제 참여다. Open-source project는 contributor가 넣은 작업의 합보다 클 수 없으며, Linux 커널은 공통 목표를 향해 일한 매우 큰 개발자 집단 덕분에 빠르고 높은 품질로 발전했다.
커널에는 언제나 할 일이 더 있고 더 넓은 개발자 기반이 도움이 된다. 동시에 Linux ecosystem의 다른 참여자도 커널 기여로 이득을 얻는다.
Code를 mainline에 넣으면 품질을 높이고 유지·배포 비용을 줄이며 개발 방향에 더 큰 영향을 줄 수 있다. 기여자와 사용자 모두에게 이익이 되는 구조이므로 원문은 editor를 열고 community에 참여하라는 말로 끝난다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
.. _development_conclusion:
For more information
====================
There are numerous sources of information on Linux kernel development and
related topics. First among those will always be the Documentation
directory found in the kernel source distribution. Start with the
top-level :ref:`process/howto.rst <process_howto>`; also read
:ref:`process/submitting-patches.rst <submittingpatches>`. Many internal
kernel APIs are documented using the kerneldoc mechanism; "make htmldocs"
or "make pdfdocs" can be used to generate those documents in HTML or PDF
format (though the version of TeX shipped by some distributions runs into
internal limits and fails to process the documents properly).
Various web sites discuss kernel development at all levels of detail. Your
author would like to humbly suggest https://lwn.net/ as a source;
information on many specific kernel topics can be found via the LWN kernel
index at:
https://lwn.net/Kernel/Index/
Beyond that, a valuable resource for kernel developers is:
https://kernelnewbies.org/
And, of course, one should not forget https://kernel.org/, the definitive
location for kernel release information.
There are a number of books on kernel development:
Linux Device Drivers, 3rd Edition (Jonathan Corbet, Alessandro
Rubini, and Greg Kroah-Hartman). Online at
https://lwn.net/Kernel/LDD3/.
Linux Kernel Development (Robert Love).
Understanding the Linux Kernel (Daniel Bovet and Marco Cesati).
All of these books suffer from a common fault, though: they tend to be
somewhat obsolete by the time they hit the shelves, and they have been on
the shelves for a while now. Still, there is quite a bit of good
information to be found there.
Documentation for git can be found at:
https://www.kernel.org/pub/software/scm/git/docs/
https://www.kernel.org/pub/software/scm/git/docs/user-manual.html
Conclusion
==========
Congratulations to anybody who has made it through this long-winded
document. Hopefully it has provided a helpful understanding of how the
Linux kernel is developed and how you can participate in that process.
In the end, it's the participation that matters. Any open source software
project is no more than the sum of what its contributors put into it. The
Linux kernel has progressed as quickly and as well as it has because it has
been helped by an impressively large group of developers, all of whom are
working to make it better. The kernel is a premier example of what can be
done when thousands of people work together toward a common goal.
The kernel can always benefit from a larger developer base, though. There
is always more work to do. But, just as importantly, most other
participants in the Linux ecosystem can benefit through contributing to the
kernel. Getting code into the mainline is the key to higher code quality,
lower maintenance and distribution costs, a higher level of influence over
the direction of kernel development, and more. It is a situation where
everybody involved wins. Fire up your editor and come join us; you will be
more than welcome.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
추가 정보
1-47Linux kernel 개발과 관련 주제에 관한 정보원은 매우 많다. 그중 가장 먼저 볼 곳은 언제나 kernel source distribution의 Documentation directory다. 최상위 process/howto.rst에서 시작하고 process/submitting-patches.rst도 읽어야 한다.
많은 내부 kernel API는 kerneldoc mechanism으로 문서화된다. make htmldocs 또는 make pdfdocs를 실행하면 HTML이나 PDF 형식의 문서를 만들 수 있다. 다만 일부 distribution에 포함된 TeX version은 내부 한계에 걸려 문서를 제대로 처리하지 못할 수 있다.
Kernel 개발을 여러 깊이로 다루는 web site도 있다. LWN과 LWN kernel index, kernelnewbies.org가 유용하며, kernel.org는 kernel release 정보를 확인하는 기준 위치다.
- LWN kernel index: https://lwn.net/Kernel/Index/
- Kernel Newbies: https://kernelnewbies.org/
- Kernel release 정보: https://kernel.org/
- Linux Device Drivers 3판: https://lwn.net/Kernel/LDD3/
- Linux Kernel Development, Robert Love
- Understanding the Linux Kernel, Daniel Bovet와 Marco Cesati
이 책들은 공통적으로 출판될 때쯤이면 어느 정도 오래된 내용이 된다는 문제가 있고, 출판된 지도 이미 오래되었다. 그래도 여전히 유용한 정보가 상당히 많다.
Git 문서는 https://www.kernel.org/pub/software/scm/git/docs/ 와 https://www.kernel.org/pub/software/scm/git/docs/user-manual.html 에서 찾을 수 있다.
결론
49-73이 긴 문서를 끝까지 읽은 독자에게 축하를 전한다. 이 문서가 Linux kernel의 개발 방식과 그 절차에 참여하는 방법을 이해하는 데 도움이 되었기를 바란다.
결국 중요한 것은 참여다. Open source software project는 contributor가 보탠 것의 합 이상도 이하도 아니다. Linux kernel이 지금처럼 빠르고 훌륭하게 발전한 이유는 더 좋은 kernel을 만들기 위해 일하는 매우 큰 개발자 집단의 도움을 받았기 때문이다. Kernel은 수천 명이 공동 목표를 향해 협력할 때 무엇을 이룰 수 있는지를 보여 주는 대표적인 사례다.
Kernel은 더 큰 개발자 기반으로부터 언제나 도움을 받을 수 있고, 할 일도 늘 남아 있다. 동시에 Linux ecosystem의 다른 참여자들도 kernel에 기여함으로써 이익을 얻는다. Code를 mainline에 넣는 것은 code 품질을 높이고 유지보수와 distribution 비용을 줄이며 kernel 개발 방향에 더 큰 영향력을 갖게 하는 핵심이다.
관련된 모두가 이익을 얻는 일이다. Editor를 열고 함께 참여하라. 새로운 참여자는 언제나 환영받는다.
가장 먼저 볼 자료
8.Conclusion.rst:3-17Linux 커널 개발과 관련된 자료는 많지만 가장 먼저 볼 곳은 kernel source distribution의 Documentation directory다. 최상위 process/howto.rst와 process/submitting-patches.rst부터 읽는다.
여러 내부 API는 kerneldoc mechanism으로 source comment에서 문서를 생성한다. make htmldocs 또는 make pdfdocs로 HTML과 PDF를 만들 수 있다. 일부 distribution의 TeX version은 내부 limit 때문에 PDF 생성에 실패할 수 있다.