본문 바로가기
Kernel/Documentation

[Linux Kernel] 리눅스 커널 개발 가이드: For more information

by hyeyoo 2021. 9. 16.
※ 이 블로그의 글은 글쓴이가 공부하면서 정리하여 쓴 글입니다.
※ 최대한 내용을 검토하면서 글을 쓰지만 틀린 내용이 있을 수 있습니다.
※ 만약 틀린 부분이 있다면 댓글로 알려주세요.
 

8. For more information — The Linux Kernel documentation

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).

www.kernel.org

For more information

 

For more information

 

커널 개발 관련 주제를 다룬 문서는 많다. 그 중 첫번째는 커널 소스에 포함된 Documentation 디렉토리이다. 처음에는 process/howto.rst에서 시작하는 게 제일 좋다. process/submitting-patches.rstprocess/submitting-drivers.rst도 모든 커널 개발자들이 읽어볼 법 하다. 많은 커널 내부 API는 kerneldoc 메커니즘에 따라 "make htmldocs"나 "make pdfdocs"로 HTML/PDF 형식으로 문서화할 수 있다. (종종 배포판 내의 TeX 버전 때문에 문서 생성에 실패하는 경우도 있지만)

 

많은 웹사이트가 커널 개발에 관해 다양한 수준으로 다룬다. 이 글의 저자(Jonathan Corbet)는 https://lwn.net을 추천한다. 커널의 각 세부 주제를 다루는 글을 아래 링크에서 찾을 수 있다.

 

 

Kernel index [LWN.net]

 

lwn.net

 

그 외에도 커널 개발자에게 가치있는 리소스는 kernelnewbies가 있다.

 

Linux_Kernel_Newbies - Linux Kernel Newbies

KernelNewbies: Linux_Kernel_Newbies (2019-07-18 14:45:48에 RikvanRiel가(이) 마지막으로 수정)

kernelnewbies.org

 

kernel.org에서는 릴리즈 관련 정보를 확인할 수 있다.

 

The Linux Kernel Archives

 

www.kernel.org

 

커널 개발과 관련된 책들도 있다.

 

- Linux Device Drivers, 3rd Edition (Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman).

https://lwn.net/Kernel/LDD3/ 에서 무료로 제공한다.

- Linux Kernel Development (Robert Love).

- Understanding the Linux Kernel (Daniel Bovet and Marco Cesati).

 

하지만 이 책들은 공통적인 단점이 있다. 책들이 나올 때 쯤에는 책이 구식이 되는 경향이 있다. 하지만 그럼에도 이 책들을 통해 꽤 많은 정보를 얻을 수 있다.

 

git 관련 문서는 아래 링크에서 볼 수 있다.

 

Git User Manual

Many of the higher-level commands were originally implemented as shell scripts using a smaller core of low-level Git commands. These can still be useful when doing unusual things with Git, or just as a way to understand its inner workings. High-level opera

mirrors.edge.kernel.org

Conclusion

이 장황한 문서를 모두 읽은 여러분에게 축하드린다. 이 문서가 커널 개발이 어떻게 진행되고, 여기에 어떻게 참여하는지 이해하는 데에 도움이 되었으면 한다.

 

결국 중요한 것은 프로젝트에 참여하는 것이다. 오픈소스 프로젝트는 기여자들의 합에 지나지 않는다. 리눅스 커널은 수많은 개발자들에 의해 도움을 받았기 때문에 빠르게 발전할 수 있었다. 리눅스 커널은 수천명의 개발자가 공동의 목표를 갖고 일하는 가장 좋은 예시이다.

 

그러나 커널은 항상 더 많은 개발자가 참여할수록 좋다. 커널에는 항상 해야 할 일들이 많다. 하지만 마찬가지로 중요한 것은 리눅스 생태계의 대부분의 참여자들이 리눅스 커널에 기여함으로써 이익을 얻을 수 있다는 것이다. 코드를 메인라인에 포함시키는 것은 코드의 품질을 높이고, 유지보수와 배포의 비용을 줄이며, 커널의 개발 방향에 더 많은 영향을 미치는 것이다. 따라서 참여하는 모두에게 좋은 상황이다. 따라서 함께 참여하자. 여러분은 커뮤니티에서 환영받을 것이다.

 

마무리하며

드디어 A guide to the Kernel Development Process의 문서들을 모두 번역했다. 내 말투와 설명 방법에 맞게 고쳐 썼기 때문에 사실 번역이라기보단 2차 창작에 가깝다. 아무튼간에 자연스럽게 써보려고 노력했지만 어색한 부분이 존재한다. 혹시 누군가 '이렇게 개선했으면 좋겠다'라는 내용이 있으면 댓글로 달아준다면 개선해보겠다.

 

이 문서는 누군가 볼 거라고 생각하고 번역한 건 아니다. (다행히 예상대로 아직 보는 사람이 딱히 없는 것 같다.) 내가 다시 읽을 때 편하게 읽기 위해서 번역을 했다. 아마 도움이 되는 문서 몇 개 정도만 더 번역하고 기술적인 내용을 다시 분석해서 올릴 것 같다.

 

번역할지 생각 중인 문서들:

 

- Submitting patches: the essential guide to getting your code into the kernel

- Linux Kernel patch submission checklist 

- Submitting Drivers For The Linux Kernel

- HOWTO do Linux kernel development

... 등등 ...

 

댓글