문제

나는 운영 체제 내부에 대해 더 나은 지식을 얻고 싶습니다.프로세스 관리, 메모리 관리 등이 있습니다.
저는 리눅스나 BSD 커널 중 하나를 알아가면서 공부할 생각이었습니다.
학습 목적으로 어느 커널이 더 좋나요?
시작하기 가장 좋은 곳은 어디입니까?
좋은 책 추천해주실 수 있나요?

도움이 되었습니까?

해결책

대학에서 저는 운영 체제 수업을 들었는데, 여기서는 타넨바움의 책.수업에서는 장치 드라이버를 구현했습니다. 미닉스 운영체제.정말 즐거웠고, 우리는 많은 것을 배웠습니다.

하지만 한 가지 주목할 점은 Minix를 선택한다면 학습용으로 설계되었다는 것입니다.이는 마이크로커널이고 Linux와 BSD는 모놀리식 커널이므로 배운 내용이 Linux나 BSD에서 작동하도록 100% 번역 가능하지 않을 수 있지만 상당한 처리 과정을 거치지 않고도 여전히 많은 것을 얻을 수 있습니다. 정보만큼.

참고로, 읽어보셨다면 재미로, Linus는 실제로 Linux를 작성하기 전에 Minix를 사용했지만 그의 목적에는 충분하지 않았습니다.

다른 팁

Linux 사용자로서 나는 Linux에 사람들이 커널에 대해 배울 수 있는 훌륭한 커뮤니티가 있다고 말하고 싶습니다. http://kernelnewbies.org 커널이 어떻게 작동하는지 질문하고 배우기에 좋은 곳입니다.나는 책을 추천할 수는 없지만 일단 kernelnewbies의 시작 자료를 읽고 나면 소스가 매우 잘 문서화되어 있습니다.

이미 언급한 좋은 책들 외에도(Opeating System Design & Implementing이 특히 좋습니다) 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.버전을 거듭하면서 변경 로그를 확인하고 변경된 부분을 파헤쳐 전체 내용을 다시 읽지 않도록 하세요.

개념을 파악한 후에는 2.0, 2.2 등을 살펴보세요.프로세스에 많은 시간을 할애할 준비를 하십시오.

나는 이전에 같은 목적으로 추천을 받아 이 책들을 구입했지만 직접 공부할 수는 없었으므로 간접적인 조언으로만 받아들입니다.

여기에 BSD가 없다는 점을 지적하면서 나는 다음과 같이 생각했습니다.

나는 어떤 강좌도 직접 수강한 적이 없지만 Marshall Kirk McKusick이 다른 경우에 강연하는 것을 들었는데 그는 자신이 하는 일을 정말 잘합니다.

물론 BSD 매뉴얼 페이지는 일반적인 Linux 맨페이지보다 훨씬 더 많이 유지 관리되므로 훌륭한 리소스입니다.예를 들어 UVM(9) OpenBSD의 가상 메모리 인터페이스를 설명하는 맨페이지입니다.

별로 관련은 없지만 영상도 추천할게요 버클리 소프트웨어 배포판의 역사 UNIX 역사와 문화의 BSD 부분에 대한 훌륭한 소개뿐만 아니라 과거의 많은 재미있는 일화를 제공하기 때문입니다.

BSD 커널을 추천합니다!BSD 커널에는 해커 수가 훨씬 적으므로 진화를 따르는 것이 더 쉽습니다.BSD와 Linux 커널에는 훌륭한 해커가 있지만 일부 사람들은 BSD의 낮은 명성이 초보자 커널을 걸러낸다고 주장합니다.또한 소스가 하루에 100번 업데이트되지 않으면 디자인 결정을 내리는 것이 더 쉽습니다.

BSD 선택 중에서 제가 가장 좋아하는 것은 NetBSD입니다.데스크탑에 원하는 고통 없는 선택이 아닐 수도 있지만 휴대성에 중점을 두었기 때문에 품질이 꽤 좋습니다.나는 이 부분이 모든 것을 말해준다고 생각한다:

일부 시스템에는 “작동하면 옳다”는 철학이 있는 것 같습니다.그런 관점에서 NetBSD의 철학은 "옳지 않으면 작동하지 않는다"라고 설명할 수 있습니다.

오랫동안 작업해 왔다면 NetBSD가 좋은 코딩을 배우는 데 큰 즐거움을 준다는 것을 알게 될 것입니다.전문적으로 Linux를 사용하면 더 많은 기회를 찾을 수 있지만

어떤 선택을 하든 메일 목록에 가입하고 토론을 따르세요.몇 가지 패치를 연구하고 마지막으로 버그 수정을 시도해 보세요.책에 관해서는 Diomidis Spinellis 기사를 검색하고 그의 책.정확히 커널 책은 아니지만 NetBSD 예제가 포함되어 있으며 대규모 소프트웨어를 다루는 데 많은 도움이 됩니다.

코드를 자세히 살펴보는 것을 대체할 수 있는 방법은 없습니다.관심 있는 드라이버나 하위 시스템을 찾아서 살펴보십시오.다음과 같은 도구를 사용하여 VMware 워크스테이션 원하는 대로 변경하고, VM의 스냅샷을 만들고, 수정된 커널을 실행하는 것은 매우 쉽습니다.부팅 시 커널 패닉이 발생하면 누가 신경쓰나요?스냅샷으로 돌아가서 문제를 해결하세요.

책으로는 강력히 추천합니다 리눅스 커널 개발 로버트 러브 지음.많은 정보를 담고 있고, 체계적으로 정리되어 있고, 유머러스하게 쓰여진 훌륭하게 쓰여진 책입니다.전혀 건조하게 읽히지 않습니다.

Mike Stone의 조언을 듣고 Minix로 시작해 보세요.리누스가 그랬어요!교과서는 정말 잘 작성되었으며 Tannenbaum은 다양한 기능이 실제 시스템에서 어떻게 구현되는지 보여주는 훌륭한 작업을 수행합니다.

코드 측면의 BSD가 훨씬 더 깨끗하고 일관성이 있다고 언급한 사람은 아무도 없는 것 같습니다.문서도 훨씬 더 좋습니다(이미 언급했듯이).하지만 어떤 시스템을 선택하든 조작할 부분이 많기 때문에 저는 더 자주 사용하는 시스템을 선택하겠습니다.

Linux와 Minix는 배우기 재미있습니다.최신 마이크로 커널 운영 체제가 어떻게 생겼는지 배우고 싶다면 QNX를 살펴보세요.전체 문서는 온라인으로 제공되며 접근성이 매우 높습니다.예를 들어, 이것 온라인 책.

저는 대학에 다닐 때 한 학기 동안 운영 체제를 공부했고, 그 일환으로 Linux에서 RAM 기반 파일 시스템을 구현해야 하는 과제를 받았습니다.

이는 Linux 커널의 내부를 이해하고 모든 것이 어떻게 조화를 이루는지 이해할 수 있는 환상적인 방법이었습니다. 그리고 그것이 표준 도구와 어떻게 상호 작용하는지 시험해 보는 것도 정말 즐거웠습니다.

직접 시도하지는 않았지만 Linux From Scratch로 이동하여 자신만의 Linux 배포판을 구축할 수 있습니다.시간이 많이 걸리는 것처럼 들리지만 Linux 커널의 내부와 각 부분의 작동 방식에 대한 친밀한 지식을 얻을 수 있습니다.물론 여기에 있는 다른 팁을 따르면 이 학습 내용을 보완할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top