본문 바로가기

Kernel64

[Linux Kernel] 리눅스 커널 개발 가이드: Getting the code right 4. Getting the code right — The Linux Kernel documentation 4.1.1. Coding style The kernel has long had a standard coding style, described in Linux kernel coding style. For much of that time, the policies described in that file were taken as being, at most, advisory. As a result, there is a substantial amount of co www.kernel.org 커뮤니티와 함께 설계를 하는 것도 할 이야기가 많지만, 모든 커널 개발 프로젝트의 증명은 결과적으로 코드가 한다. 다른 .. 2021. 8. 30.
[Linux Kernel] 리눅스 커널 개발 가이드: Early-stage planning 3. Early-stage planning — The Linux Kernel documentation When contemplating a Linux kernel development project, it can be tempting to jump right in and start coding. As with any significant project, though, much of the groundwork for success is best laid before the first line of code is written. Some time spent www.kernel.org 리눅스 커널 개발을 할때, 바로 코딩부터 시작하려는 욕심이 들 수도 있다. 하지만 대부분의 중요한 프로젝트가 그렇듯, 프로젝트.. 2021. 8. 27.
[Linux Kernel] 리눅스 커널 개발 가이드: How the development process works 2. How the development process works — The Linux Kernel documentation Linux kernel development in the early 1990’s was a pretty loose affair, with relatively small numbers of users and developers involved. With a user base in the millions and with some 2,000 developers involved over the course of one year, the kernel has s www.kernel.org 1990년대 초반의 리눅스 커널 개발은 꽤 느슨했고, 상대적으로 적은 수의 사용자와 개발자만이 참여했다... 2021. 8. 26.
[Linux Kernel] 리눅스 커널 개발 가이드: Introduction A guide to the Kernel Development Process — The Linux Kernel documentation © Copyright The kernel development community. www.kernel.org Introduction 이 문서는 커널 개발 프로세스와 개발자나, 고용주들이 개발에 참여하면서 겪는 좌절에 대해 다룬다. 커널 코드가 “mainline”에 머지되어야 할 이유는 많다. 코드가 mainline에 머지되어야 사용자들이 편하게 사용할 수 있고, 기여한 코드가 커뮤니티로부터 유지보수 받고, 커널 개발의 방향에 영향을 줄 수 있다. 리눅스 커널에 기여된 코드는 반드시 GPL 호환 라이선스여야 한다. 1.1 Executive summary (링크는 번역 후 추.. 2021. 8. 26.
mutt 이메일 클라이언트 사용법 정리 이 글은 필자가 공부하는대로 부족한 부분을 업데이트 하고 있습니다. mutt에 관하여 좋은 내용을 알고계시다면 알려주세요! mutt란 mutt는 터미널에서 사용하는 이메일 클라이언트다. 리눅스 커널은 이메일을 통해 대부분의 토론과 패치로 소통한다. 그러다보니 참여하려면 이메일을 정말 많이 봐야한다. 보통 이메일을 쓸 땐 웹 기반 이메일 서비스를 사용하지만, 리눅스 커널 메일링 리스트처럼 하루에도 수백개의 메일을 수신해야 하는 환경에는 적합하지 않다. 텍스트 기반인 mutt를 애용하자. 패치를 몇개 보내면서 이메일 클라이언트 때문에 삽질을 좀 했다. 인라인 패치가 아니라 첨부파일로 보낸다던가, 어떤 메일에 대한 답장으로 인라인 패치를 보내고 싶은데 방법을 모른다던가.. 그런걸 여기서 글로 정리해보려고 한다.. 2021. 8. 20.
[Linux Kernel] 주소와 메모리 공간 이 글은 LDD3을 공부하면서 정리하였고 필요한 내용을 그때그때 추가했다. 사용자 프로세스 관점에서 바라보는 주소 공간과 커널 관점에서 바라보는 것은 매우 다르기 때문에 이를 이해할 필요가 있다. 이 글을 읽으려면 페이징, 가상 파일 시스템, 그리고 Memory-Mapped IO를 어느 정도 이해하고 있어야 한다. 처음엔 커널에서 왜 무작정 userspace의 주소에 접근하면 안되는지 이해하지 못했고, 왜 그러면 안되는지도 몰랐는데 이걸 공부하고 나니까 이해가 됐다. 역시 Greg 아저씨 짱짱맨... ㄹㅇ... 발끝이라도 따라가고 싶다. 이 글에선 커널과 사용자 프로세스의 관점에서 주소와 메모리 공간이 어떻게 이루어져있는지 살펴볼 것이다. 다음 글에선 이번 글에서 다룬 내용을 바탕으로 디바이스 드라이버에.. 2021. 5. 15.