2008-08-23 6 views

답변

12

대학에서 나는 book by Tanenbaum을 사용하는 운영체제 클래스를 사용했습니다. 이 수업에서는 Minix operating system에 장치 드라이버를 구현했습니다. 많은 즐거움이었고 우리는 많은 것을 배웠습니다.

미닉스를 선택하면 학습을 위해 설계되었습니다. 그것은 마이크로 커널이지만 리눅스와 BSD는 모 놀리 식 커널이므로 배운 내용은 리눅스 나 BSD로 작업 할 수있는 100 % 번역이되지 않을 수도 있습니다. 그러나 꽤 많이 처리하지 않아도 많은 것을 얻을 수 있습니다 많은 정보.

부수적으로, Just for Fun을 읽은 Linus는 실제로 Linux를 작성하기 전에 Minix를 사용하고 있었지만 실제로는 충분하지 않았습니다.

7

리눅스 사용자로서 리눅스에는 사람들이 커널에 대해 알기에 좋은 커뮤니티가 있다고 말하고 싶습니다. http://kernelnewbies.org은 질문하고 커널 작동 방식을 배우기 시작할 수있는 좋은 곳입니다. 나는 책을 추천 할 수는 없지만, 일단 커널 뉴스 위의 출발 자료를 읽으면 근원이 잘 기록되어있다.

6

이미 언급 된 좋은 책 (Opeating System Design & 구현이 특히 좋다) 외에도 1.x 릴리즈 Linux 커널을 구해서 VMWare 또는 VirtualBox에로드하고 거기서부터 게임을 시작하십시오.

소스 코드를 탐색하는 데 많은 시간을 할애해야합니다. 이를 위해 찾아보기 가능한 링크 된 소스 버전 인 http://lxr.linux.no/을 확인하면 훨씬 쉽게 작업 할 수 있습니다. Linux (0.01)의 첫 번째 버전은 http://lxr.linux.no/linux-old+v0.01/을 확인하십시오. 재미는 http://lxr.linux.no/linux-old+v0.01/boot/boot.s에서 시작됩니다. 버전별로 진행하면서 ChangeLog를 확인하고 변경된 부분을 파헤쳐 전체 내용을 다시 읽지 않게하십시오.

개념을 익히고 나면 2.0, 2.2 등을 확인하십시오. 프로세스에 많은 시간을 들여 놓을 준비를하십시오.

1

유니 (uni)에있을 때 나는 운영체제를 공부하는 한 학기를 보냈는데, 그 일환으로 Linux에서 RAM 기반 파일 시스템을 구현해야하는 과제가있었습니다.

Linux keurnel의 내부를 이해하고 모든 것이 어떻게 잘 맞는지 파악하는 것은 환상적인 방법이었습니다. 또한 표준 도구와도 상호 작용하는 방식으로 놀면서 즐거웠습니다.

1

코드로 들어가기위한 대용품이 없습니다. 관심있는 드라이버 또는 하위 시스템을 찾아서 시도해보십시오. VMware Workstation 같은 도구를 사용하면 원하는대로 변경하고, VM을 스냅 샷하고, 수정 된 커널을 실행하는 것이 매우 쉽습니다. 부팅 할 때 커널 패닉이 발생한다면 누가 신경 써야할까요? 그냥 스냅 샷으로 돌아가서 문제를 해결하십시오.

도서의 경우 Robert Love의 Linux Kernel Development을 강력히 추천합니다. 그것은 훌륭하게 쓰여진 책입니다 - 많은 정보, 조직 된 건강하고 유머러스 한 ... 전혀 읽지 않는 독서.

0

필자는 직접 시도하지 않았지만 Linux From Scratch로 가서 자신 만의 Linux 배포판을 만들 수 있습니다. 쓸데없는 시간이 걸릴 것으로 보이지만 리눅스 커널과 각 부분이 어떻게 작동하는지에 대해 잘 알고있을 것입니다. 물론 여기 다른 팁을 따라이 학습을 보완 할 수 있습니다.

+2

LFS는 배포판 작성에 대한 자세한 지식을 얻기 위해 고안되었으며 실제로 커널을 이해하는 데 도움이되지 않습니다. – Draemon

4

여기 BSD의 부족을 지적하면서, 나는 칩 거라고 생각에서 :

본인은 코스를 직접 택하지는 않았지만 마샬 커크 맥 쿠식 (Marshall Kirk McKusick)이 다른 경우에 말을하는 것을 들었습니다. 그는 그가하는 일에 정말 능숙합니다.

그리고 당연히 BSD 맨 페이지는 평범한 리눅스 맨 페이지보다 훨씬 우수한 수준으로 유지 관리되기 때문에 훌륭한 자료입니다. 예를 들어 uvm(9) 매뉴얼 페이지를 살펴보면 OpenBSD의 가상 메모리 인터페이스를 설명합니다.

아직 관련이 없지만 유닉스 역사 및 문화의 BSD 부분뿐만 아니라 많은 유쾌한 anectodes를 다시 소개 할 때 비디오 History of the Berkeley Software Distributions을 추천합니다.

1

Mike Stone의 조언을 듣고 Minix로 시작하십시오. 그것이 리누스가 한 일입니다! 교과서는 정말 잘 쓰여졌고, Tannenbaum은 다양한 기능이 실제 시스템에서 어떻게 구현되는지를 보여주는 훌륭한 일을합니다.

1

코드 위주의 BSD가 훨씬 더 깨끗하고 일관성이 있다고 언급 한 사람은 아무도 없습니다. 문서화의 방법도 (이미 언급 한 바와 같이) 더 좋습니다. 그러나 당신이 선택하는 어떤 시스템을 사용 하느냐에 관해서는 너무 많은 비웃음이 있기 때문에 - 나는 당신이 자주 사용하는 것을 고를 것입니다.

3

BSD 커널을 권장합니다! BSD 커널은 해커가 훨씬 적어 진화를 따르는 것이 더 쉽습니다. BSD와 리눅스 커널은 해커가 많지만, BSD가 명성을 낮추면 초보자를 걸러 낼 수 있다고 주장하는 사람들이 있습니다. 또한 소스가 하루에 100 번 업데이트되지 않을 때 디자인 결정을 내리는 것이 더 쉽습니다.

BSD 선택 중에서 가장 좋아하는 것은 NetBSD입니다. 그것은 당신이 당신의 데스크탑을 위해 원하는 pain-free 선택이 아닐지도 모르지만, 휴대성에 중점을두기 때문에 품질은 아주 좋습니다. 나는이 부분이 모든 말을 생각 :

일부 시스템 "이 작동하는 경우, 그것은 바로"의 철학을 갖고있는 것 같다.그 빛에 NetBSD의의 철학은 당신이 충분히 작동 된 경우

를, "맞지 않으면 작동하지 않습니다"당신이 NetBSD의 좋은 코딩을 배우기위한 아주 기쁨임을 알이라고 할 수있다. 전문적으로 리눅스에서 더 많은 기회를 찾으실 수 있습니다.

어느 쪽을 선택 하시든 메일 목록에 가입하고 토론을 따르십시오. 패치를 공부하고 마침내 버그 수정을 시도하십시오. 책에 관해서는 Diomidis Spinellis 기사 및 his book을 찾으십시오. 정확하게 커널 책은 아니지만 NetBSD 예제를 가지고 있으며 커다란 소프트웨어를 다루는데 많은 도움이됩니다.

1

Linux와 Minix는 재미 있습니다. 최신 마이크로 커널 운영 체제가 어떻게 생겼는지 알고 싶다면 QNX를 살펴보십시오. 전체 문서는 온라인에서 볼 수 있으며 매우 유용합니다. 예 : this 온라인 설명서.

관련 문제