⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 howto

📁 linux 内核源代码
💻
📖 第 1 页 / 共 3 页
字号:
동작하는지 이해하고 있어야 한다. 코드를 분석하기 위하여 특정한 툴의도움을 빌려서라도 코드를 직접 읽는 것보다 좋은 것은 없다(대부분의자잘한 부분들은 잘 코멘트되어 있다). 그런 툴들 중에 특히 추천할만한것은 Linux Cross-Reference project이며 그것은 자기 참조 방식이며소스코드를 인덱스된 웹 페이지들의 형태로 보여준다. 최신의 멋진 커널코드 저장소는 다음을 통하여 참조할 수 있다.      http://users.sosdg.org/~qiyong/lxr/개발 프로세스-------------리눅스 커널 개발 프로세스는 현재 몇몇 다른 메인 커널 "브랜치들"과서브시스템에 특화된 커널 브랜치들로 구성된다. 몇몇 다른 메인브랜치들은 다음과 같다.  - main 2.6.x 커널 트리  - 2.6.x.y - 안정된 커널 트리  - 2.6.x -git 커널 패치들  - 2.6.x -mm 커널 패치들  - 서브시스템을 위한 커널 트리들과 패치들2.6.x 커널 트리---------------2.6.x 커널들은 Linux Torvalds가 관리하며 kernel.org의 pub/linux/kernel/v2.6/디렉토리에서 참조될 수 있다.개발 프로세스는 다음과 같다.  - 새로운 커널이 배포되자마자 2주의 시간이 주어진다. 이 기간동은    메인테이너들은 큰 diff들을 Linus에게 제출할 수 있다. 대개 이 패치들은    몇 주 동안 -mm 커널내에 이미 있었던 것들이다. 큰 변경들을 제출하는 데    선호되는 방법은  git(커널의 소스 관리 툴, 더 많은 정보들은 http://git.or.cz/    에서 참조할 수 있다)를 사용하는 것이지만 순수한 패치파일의 형식으로 보내는    것도 무관하다.  - 2주 후에 -rc1 커널이 배포되며 지금부터는 전체 커널의 안정성에 영향을    미칠수 있는 새로운 기능들을 포함하지 않는 패치들만이 추가될 수 있다.    완전히 새로운 드라이버(혹은 파일시스템)는 -rc1 이후에만 받아들여진다는    것을 기억해라. 왜냐하면 변경이 자체내에서만 발생하고 추가된 코드가    드라이버 외부의 다른 부분에는 영향을 주지 않으므로 그런 변경은    회귀(역자주: 이전에는 존재하지 않았지만 새로운 기능추가나 변경으로 인해		생겨난 버그)를 일으킬 만한 위험을 가지고 있지 않기 때문이다. -rc1이    배포된 이후에 git를 사용하여 패치들을 Linus에게 보낼수 있지만 패치들은    공식적인 메일링 리스트로 보내서 검토를 받을 필요가 있다.  - 새로운 -rc는 Linus가 현재 git tree가 테스트 하기에 충분히 안정된 상태에    있다고 판단될 때마다 배포된다. 목표는 새로운 -rc 커널을 매주 배포하는    것이다.  - 이러한 프로세스는 커널이 "준비(ready)"되었다고 여겨질때까지 계속된다.    프로세스는 대체로 6주간 지속된다.  - 각 -rc 배포에 있는 알려진 회귀의 목록들은 다음 URI에 남겨진다.    http://kernelnewbies.org/known_regressions커널 배포에 있어서 언급할만한 가치가 있는 리눅스 커널 메일링 리스트의Andrew Morton의 글이 있다.        "커널이 언제 배포될지는 아무도 모른다. 왜냐하면 배포는 알려진         버그의 상황에 따라 배포되는 것이지 미리정해 놓은 시간에 따라         배포되는 것은 아니기 때문이다."2.6.x.y - 안정 커널 트리------------------------4 자리 숫자로 이루어진 버젼의 커널들은 -stable 커널들이다. 그것들은 2.6.x커널에서 발견된 큰 회귀들이나 보안 문제들 중 비교적 작고 중요한 수정들을포함한다.이것은 가장 최근의 안정적인 커널을 원하는 사용자에게 추천되는 브랜치이며,개발/실험적 버젼을 테스트하는 것을 돕고자 하는 사용자들과는 별로 관련이 없다.어떤 2.6.x.y 커널도 사용할 수 없다면 그때는 가장 높은 숫자의 2.6.x커널이 현재의 안정 커널이다.2.6.x.y는 "stable" 팀<stable@kernel.org>에 의해 관리되며 거의 매번 격주로배포된다.커널 트리 문서들 내에 Documentation/stable_kernel_rules.txt 파일은 어떤종류의 변경들이 -stable 트리로 들어왔는지와 배포 프로세스가 어떻게진행되는지를 설명한다.2.6.x -git 패치들------------------git 저장소(그러므로 -git이라는 이름이 붙음)에는 날마다 관리되는 Linus의커널 트리의 snapshot 들이 있다. 이 패치들은 일반적으로 날마다 배포되며Linus의 트리의 현재 상태를 나타낸다. 이 패치들은 정상적인지 조금도살펴보지 않고 자동적으로 생성된 것이므로 -rc 커널들 보다도 더 실험적이다.2.6.x -mm 커널 패치들---------------------Andrew Morton에 의해 배포된 실험적인 커널 패치들이다. Andrew는 모든 다른서브시스템 커널 트리와 패치들을 가져와서 리눅스 커널 메일링 리스트로온 많은 패치들과 한데 묶는다. 이 트리는 새로운 기능들과 패치들을 위한장소를 제공하는 역할을 한다. 하나의 패치가 -mm에 한동안 있으면서 그 가치가증명되게 되면 Andrew나 서브시스템 메인테이너는 그것을 메인라인에 포함시키기위하여 Linus에게 보낸다.커널 트리에 포함하고 싶은 모든 새로운 패치들은 Linus에게 보내지기 전에-mm 트리에서 테스트를 하는 것을 적극 추천한다.이 커널들은 안정되게 사용할 시스템에서에 실행하는 것은 적합하지 않으며다른 브랜치들의 어떤 것들보다 위험하다.여러분이 커널 개발 프로세스를 돕길 원한다면 이 커널 배포들을 사용하고테스트한 후 어떤 문제를 발견하거나 또는 모든 것이 잘 동작한다면 리눅스커널 메일링 리스트로 피드백을 해달라.이 커널들은 일반적으로 모든 다른 실험적인 패치들과 배포될 당시의사용가능한 메인라인 -git 커널들의 몇몇 변경을 포함한다.-mm 커널들은 정해진 일정대로 배포되지 않는다. 하지만 대개 몇몇 -mm 커널들은각 -rc 커널(1부터 3이 흔함) 사이에서 배포된다.서브시스템 커널 트리들과 패치들-------------------------------많은 다른 커널 서브시스템 개발자들은 커널의 다른 부분들에서 무슨 일이일어나고 있는지를 볼수 있도록 그들의 개발 트리를 공개한다. 이 트리들은위에서 설명하였던 것 처럼 -mm 커널 배포들로 합쳐진다.다음은  활용가능한 커널 트리들을 나열한다.  git trees:    - Kbuild development tree, Sam Ravnborg < sam@ravnborg.org>    git.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild.git    - ACPI development tree, Len Brown <len.brown@intel.com >    git.kernel.org:/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git    - Block development tree, Jens Axboe <jens.axboe@oracle.com>    git.kernel.org:/pub/scm/linux/kernel/git/axboe/linux-2.6-block.git    - DRM development tree, Dave Airlie <airlied@linux.ie>    git.kernel.org:/pub/scm/linux/kernel/git/airlied/drm-2.6.git    - ia64 development tree, Tony Luck < tony.luck@intel.com>    git.kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6.git    - infiniband, Roland Dreier <rolandd@cisco.com >    git.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git    - libata, Jeff Garzik <jgarzik@pobox.com>    git.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git    - network drivers, Jeff Garzik <jgarzik@pobox.com>    git.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git    - pcmcia, Dominik Brodowski < linux@dominikbrodowski.net>    git.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git    - SCSI, James Bottomley < James.Bottomley@SteelEye.com>    git.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git  quilt trees:    - USB, PCI, Driver Core, and I2C, Greg Kroah-Hartman < gregkh@suse.de>    kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/    - x86-64, partly i386, Andi Kleen < ak@suse.de>        ftp.firstfloor.org:/pub/ak/x86_64/quilt/  다른 커널 트리들은 http://kernel.org/git와 MAINTAINERS 파일에서 참조할 수  있다.버그 보고---------bugzilla.kernel.org는 리눅스 커널 개발자들이 커널의 버그를 추적하는 곳이다.사용자들은 발견한 모든 버그들을 보고하기 위하여 이 툴을 사용할 것을 권장한다.kernel bugzilla를 사용하는 자세한 방법은 다음을 참조하라.    http://test.kernel.org/bugzilla/faq.html메인 커널 소스 디렉토리에 있는 REPORTING-BUGS 파일은 커널 버그라고 생각되는것을 보고하는 방법에 관한 좋은 템플릿이며 문제를 추적하기 위해서 커널개발자들이 필요로 하는 정보가 무엇들인지를 상세히 설명하고 있다.버그 리포트들의 관리--------------------여러분의 해킹 기술을 연습하는 가장 좋은 방법 중의 하는 다른 사람들이보고한 버그들을 수정하는 것이다. 여러분은 커널을 더욱 안정화시키는데도움을 줄 뿐만이 아니라 실제있는 문제들을 수정하는 법을 배우게 되고그와 함께 여러분들의 기술은 향상될 것이며 다른 개발자들이 여러분의존재에 대해 알게 될 것이다. 버그를 수정하는 것은 개발자들  사이에서점수를 얻을 수 있는 가장 좋은 방법중의 하나이다. 왜냐하면 많은 사람들은다른 사람들의 버그들을 수정하기 위하여 시간을 낭비하지 않기 때문이다.이미 보고된 버그 리포트들을 가지고 작업하기 위해서 http://bugzilla.kernel.org를참조하라. 여러분이 앞으로 생겨날 버그 리포트들의 조언자가 되길 원한다면bugme-new 메일링 리스트나(새로운 버그 리포트들만이 이곳에서 메일로 전해진다)bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메일로 전해진다)에 등록하면 된다.      http://lists.osdl.org/mailman/listinfo/bugme-new      http://lists.osdl.org/mailman/listinfo/bugme-janitors메일링 리스트들---------------위의 몇몇 문서들이 설명하였지만 핵심 커널 개발자들의 대다수는리눅스 커널 메일링 리스트에 참여하고 있다. 리스트에 등록하고 해지하는방법에 관한 자세한 사항은 다음에서 참조할 수 있다.    http://vger.kernel.org/vger-lists.html#linux-kernel웹상의 많은 다른 곳에도 메일링 리스트의 아카이브들이 있다.이러한 아카이브들을 찾으려면 검색 엔진을 사용하라. 예를 들어:      http://dir.gmane.org/gmane.linux.kernel여러분이 새로운 문제에 관해 리스트에 올리기 전에 말하고 싶은 주제에 관한것을 아카이브에서 먼저 찾아보기를 강력히 권장한다. 이미 상세하게 토론된 많은것들이 메일링 리스트의 아카이브에 기록되어 있다.각각의 커널 서브시스템들의 대부분은 자신들의 개발에 관한 노력들로 이루어진분리된 메일링 리스트를 따로 가지고 있다. 다른 그룹들이 무슨 리스트를 가지고있는지는 MAINTAINERS 파일을 참조하라.많은 리스트들은 kernel.org에서 호스트되고 있다. 그 정보들은 다음에서 참조될 수 있다.         http://vger.kernel.org/vger-lists.html

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -